OpenCV threhold()函数的主要用途是将灰度图转换为二值图像,实现灰度图的二值化,在机器视觉中使用频度较高,如尺寸量测,物体识别等。其原型如下:
函数参数:
src 输入数组(多通道、8 位或 32 位浮点)。
dst 与 src 具有相同大小和类型以及相同通道数的输出数组。
thresh 阈值。
maxval 与 THRESH_BINARY 和 THRESH_BINARY_INV 阈值类型一起使用的最大值。
type 阈值类型,有以下类型:
对应的效果如下:
用法示例:
新建一个控制台应用程序,其源码如下:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("1.webp");
if (src.empty())
{
cout << "Cann't open image!" << endl;
return -1;
}
imshow("src", src);
Mat dst;
cvtColor(src, src, COLOR_BGR2GRAY);
threshold(src, dst, 235, 255, THRESH_BINARY_INV);
imshow("Source", dst);
waitKey(0);
return 0;
}
试运行,结果如下: