美文网首页
OpenCV 教程 10 : 阈值化

OpenCV 教程 10 : 阈值化

作者: wjundong | 来源:发表于2020-02-24 09:57 被阅读0次

固定阈值

OpenCV 中提供了阈值化函数 threshold,该函数有 5 种阈值化类型参数:

  • THRESH_BINARY 二进制阈值化
    将灰度值大于 thresh 的设置为 maxval,不大于 thresh 设置为 0
  • THRESH_BINARY_INV 反二进制阈值化
    将灰度值大于 thresh 的设置为 0,不大于 thresh 设置为 maxval
  • THRESH_TRUNC 截断阈值化
    将灰度值大于 thresh 的设置为 threshold,不大于 thresh 的灰度值不变
  • THRESH_TOZERO 阈值化为 0
    将灰度值大于 thresh 的不变,不大于 thresh 的灰度值设置为 0
  • THRESH_TOZERO_INV 反阈值化为 0
    将灰度值大于 thresh 的不变,不大于 thresh 的灰度值设置为 0

阈值化前需先转化为单通道图

#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char const *argv[])
{
    Mat image = imread("1.jpg"), gray, out;
    cvtColor(image, gray, COLOR_RGB2GRAY);
    imshow("原图", image);

    // 创建滑块
    namedWindow("效果");
    createTrackbar("类型", "效果", 0, 5, 0);
    createTrackbar("阈值", "效果", 0, 255, 0);
    
    while(waitKey(100) != 27) {
        int value = getTrackbarPos("阈值", "效果");
        int type = getTrackbarPos("类型", "效果");
        threshold(gray, out, value, 255, type);
        imshow("效果", out);
    }

    return 0;
}
原图.png 效果图.png

自适应阈值

相关文章

网友评论

      本文标题:OpenCV 教程 10 : 阈值化

      本文链接:https://www.haomeiwen.com/subject/uphmqhtx.html