当前位置:   article > 正文

OpenCV阈值分割(六)——自适应阈值_opencv c++ 阈值 adaptive_thresh_gaussian_c

opencv c++ 阈值 adaptive_thresh_gaussian_c

OpenCV中的自适应阈值分割(Adaptive Thresholding)可以根据局部图像的灰度值自适应地确定阈值,从而得到更好的二值化效果。该算法主要包括以下步骤:

  1. 定义图像块大小和计算方法,即对于每个像素,都会在其周围的图像块内计算一个局部阈值。
  2. 对于每个像素,计算其所在图像块内像素灰度值的平均值(或高斯加权平均值),并将该值作为局部阈值。
  3. 将局部阈值与该像素的灰度值进行比较,若大于局部阈值则将其置为白色,否则将其置为黑色。
  1. #include <opencv2/imgproc.hpp>
  2. #include <opencv2/highgui.hpp>
  3. #include <iostream>
  4. using namespace cv;
  5. using namespace std;
  6. int main()
  7. {
  8. // 读入图像
  9. Mat src = imread("test.jpg", IMREAD_GRAYSCALE);
  10. if (src.empty())
  11. {
  12. cout << "Cannot load image!" << endl;
  13. return -1;
  14. }
  15. // 自适应阈值分割
  16. Mat dst;
  17. adaptiveThreshold(src, dst, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 11, 2);
  18. // 显示结果
  19. imshow("Source Image", src);
  20. imshow("Adaptive Thresholding", dst);
  21. waitKey();
  22. return 0;
  23. }

其中,adaptiveThreshold函数的参数含义如下:

  • src:输入图像。
  • dst:输出图像,即二值化后的图像。
  • 255:输出图像的最大值,即白色像素的值。
  • ADAPTIVE_THRESH_GAUSSIAN_C:局部阈值计算方法,表示使用高斯加权平均值计算局部阈值。
  • THRESH_BINARY:二值化方法,表示将小于局部阈值的像素置为黑色,大于等于局部阈值的像素置为白色。
  • 11:图像块大小,表示局部阈值计算时考虑的像素范围。
  • 2:局部阈值计算时减去的常数,用于调整阈值大小。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/481172
推荐阅读
相关标签
  

闽ICP备14008679号