双阈值法二值化操作

3.1.4双阈值法二值化操作
利用OpenCV的threshold函数实现双阈值法二值化操作的源码!
SourceCode:https://blog.csdn.net/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;
}

你可能感兴趣的:(OPENCV)