////3.1.4双阈值法二值化操作
////利用OpenCV的threshold函数实现双阈值法二值化操作的源码!
////SourceCode:https://blog.youkuaiyun.com/wenhao_ir/article/details/51566817
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
int main()
{
// 图像读取及判断
cv::Mat srcImage = cv::imread("D:\\0604.png");
if (!srcImage.data)
return 1;
// 灰度转换
cv::Mat srcGray;
cv::cvtColor(srcImage, srcGray, CV_RGB2GRAY);
cv::imshow("srcGray", srcGray);
// 初始化阈值参数
const int maxVal = 255;
int low_threshold = 150;
int high_threshold = 210;
cv::Mat dstTempImage1, dstTempImage2, dstImage;
// 小阈值对源灰度图像进行阈值化操作
cv::threshold(srcGray, dstTempImage1,
low_threshold, maxVal, cv::THRESH_BINARY);
// 大阈值对源灰度图像进行阈值化操作
cv::threshold(srcGray, dstTempImage2,
high_threshold, maxVal, cv::THRESH_BINARY_INV);//要特别注意这里的最后一个参数是INV哦
// 矩阵与运算得到二值化结果
cv::bitwise_and(dstTempImage1,
dstTempImage2, dstImage);
cv::imshow("dstImage", dstImage);
cv::waitKey(0);
return 0;
}
双阈值法二值化操作
最新推荐文章于 2024-03-18 09:30:42 发布