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<src.rows;i++)
for(int j=0;j<src.cols;j++)
{
if(src.at<uchar>(i, j)>=low&&src.at<uchar>(i, j)<=hig)
{
dst.at<uchar>(i, j)=255; //也可以等于原值
}
else
{
dst.at<uchar>(i, j)=0;
}
}
}