1、起因opencv自有cv::threshold阈值分割不能解决我的问题,我想要的是可以取上下限两个值,而cv::threshold只能取一个值分割,要么取上面,要么取下面,没办法取到中间值。
2、上原图,临时原图可能不匹配
分割后的图
根据上下限分割后的图片应该是中间空的,使用上下限值来进行调整白色区域面积,因为我的应用主要是取面积和轮廓所以结果是一个二值化的图像,可以根据自己需要输出图像
3、源代码
void thrLH(cv::Mat src, cv::Mat& dst,uchar low,uchar hig)
{
dst=src;
for(int i=0;i(i, j)>=low&&src.at(i, j)<=hig)
{
dst.at(i, j)=255; //也可以等于原值
}
else
{
dst.at(i, j)=0;
}
}
}



