c++ adaptivethreshold用法
adaptivethreshold 是 OpenCV 库中用于自适应阈值化的函数。
函数原型:
```
void cv::adaptiveThreshold(
cv::InputArray src,
cv::OutputArray dst,
double maxValue,
int adaptiveMethod,
int thresholdType,
adaptive int blockSize,
double C
);
```
函数参数:
- src:原始灰度图像。
- dst:阈值化后的二值图像。
- maxValue:二值图像中的最大值,通常为 255。
- adaptiveMethod:自适应阈值计算方法,包括:
- ADAPTIVE_THRESH_MEAN_C:根据领域内的均值计算阈值。
- ADAPTIVE_THRESH_GAUSSIAN_C:根据领域内的高斯加权均值计算阈值。
- thresholdType:阈值类型,包括:
- THRESH_BINARY:逐像素阈值化二值化。
- THRESH_BINARY_INV:逐像素倒置阈值化二值化。
- blockSize:领域大小,必须为奇数。
- C:根据自适应方法计算的阈值调整参数。
示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat src = imread("input.jpg", IMREAD_GRAYSCALE);
imshow("src", src);
Mat dst_mean;
adaptiveThreshold(src, dst_mean, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 11, 2);
imshow("dst_mean", dst_mean);
Mat dst_gaussian;
adaptiveThreshold(src, dst_gaussian, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY_INV, 11, 3);
imshow("dst_gaussian", dst_gaussian);
waitKey(0);
return 0;
}
```
这段代码读取一张灰度图像,使用 `adaptiveThreshold` 分别进行均值和高斯自适应阈值化,并将结果显示出来。请注意两种计算方法的不同效果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论