原理
从输入图像中选取灰度值g满足以下条件的像素: minGray < g < maxGray
一、Halcon函数原型
threshold(Image : Region : MinGray, MaxGray : )
参数说明: Image :HImage类型,输入图像,即待分割图像。 Region :HRegion类型,输出区域,即分割后的区域。 MinGray :输入灰度低阈值,0~255。 MaxGray :输入灰度高阈值,0~255,需大于MinGray 。
二、C++实现
void Threshold(cv::Mat &src, cv::Mat &dst, int lowThresh, int highThresh)
{
if(src.empty())
{
std::cout<<"src is empty"<<std::endl;
return;
}
dst = cv::Mat::zeros(src.size(), src.type());
double t = (double)cv::getTickCount();
for(int i = 0; i < src.rows; i++)
{
uchar *srcPt = (uchar*)src.data + i * src.step;
uchar *dstPt = (uchar*)dst.data + i * dst.step;
for(int j = 0; j < src.cols; j++)
{
uchar pixel = *srcPt++;
if(pixel > lowThresh && pixel < highThresh)
*dstPt = 255;
dstPt++;
}
}
t = ((double)cv::getTickCount() - t) / cv::getTickFrequency()*1000;
cout <<"耗时:"<< t<<"ms"<<endl;
}
# 三、C++实现效果
原图:
![在这里插入图片描述](https:
C++实现效果:
![在这里插入图片描述](https:
|