C++ openCV自适应阈值与大津阈值。投资回报率

C++ openCV自适应阈值与大津阈值。投资回报率,c++,opencv,threshold,roi,adaptive-threshold,C++,Opencv,Threshold,Roi,Adaptive Threshold,我尝试使用这两种方法,但自适应阈值似乎能提供更好的结果。我曾经 cvSmooth( temp, dst,CV_GAUSSIAN,9,9, 0); 在原始图像上,只有我使用了阈值 有什么我可以调整与大津方法,使图像更好地像自适应阈值?还有一件事,旁边有一些不需要的指纹残留物,你知道我如何处理它们吗 我从一本杂志上读到,通过比较自定义正方形中白色像素的百分比,我可以得到ROI。然而,这种方法要求我有一个阈值,可以使用大津方法找到,但我不太确定自适应阈值 cvAdaptiveThreshold(

我尝试使用这两种方法,但自适应阈值似乎能提供更好的结果。我曾经

 cvSmooth( temp, dst,CV_GAUSSIAN,9,9, 0);
在原始图像上,只有我使用了阈值

有什么我可以调整与大津方法,使图像更好地像自适应阈值?还有一件事,旁边有一些不需要的指纹残留物,你知道我如何处理它们吗

我从一本杂志上读到,通过比较自定义正方形中白色像素的百分比,我可以得到ROI。然而,这种方法要求我有一个阈值,可以使用大津方法找到,但我不太确定自适应阈值

cvAdaptiveThreshold( temp, dst, 255,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,13, 1 );
结果:

cvThreshold(temp, dst, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);


尝试将图像划分为ROI并单独应用otsu,然后将它们合并回来。分割策略可以是静态的,也可以是动态的,具体取决于最大照度。

要去除不需要的背景,可以执行简单的遮罩操作。Otsu threshold函数提供一个阈值,用于从背景中剪切前景图像。通过迭代整个输入图像,检查当前像素值是否大于阈值,如果为真,则将其设置为1,如果为假,则将其设置为0,从而使用该阈值创建二进制掩码


然后,您可以通过简单的矩阵乘法运算或按位移位运算将二值掩码应用于原始图像以去除背景

使用形态学操作符去除边界处的噪声。