赞
踩
OpenCV中的自适应阈值分割(Adaptive Thresholding)可以根据局部图像的灰度值自适应地确定阈值,从而得到更好的二值化效果。该算法主要包括以下步骤:
- #include <opencv2/imgproc.hpp>
- #include <opencv2/highgui.hpp>
- #include <iostream>
-
- using namespace cv;
- using namespace std;
-
- int main()
- {
- // 读入图像
- Mat src = imread("test.jpg", IMREAD_GRAYSCALE);
- if (src.empty())
- {
- cout << "Cannot load image!" << endl;
- return -1;
- }
-
- // 自适应阈值分割
- Mat dst;
- adaptiveThreshold(src, dst, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 11, 2);
-
- // 显示结果
- imshow("Source Image", src);
- imshow("Adaptive Thresholding", dst);
- waitKey();
-
- return 0;
- }
其中,adaptiveThreshold
函数的参数含义如下:
src
:输入图像。dst
:输出图像,即二值化后的图像。255
:输出图像的最大值,即白色像素的值。ADAPTIVE_THRESH_GAUSSIAN_C
:局部阈值计算方法,表示使用高斯加权平均值计算局部阈值。THRESH_BINARY
:二值化方法,表示将小于局部阈值的像素置为黑色,大于等于局部阈值的像素置为白色。11
:图像块大小,表示局部阈值计算时考虑的像素范围。2
:局部阈值计算时减去的常数,用于调整阈值大小。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。