我使用“graythresh()”来阈值并在我做了一些处理之后清理图片,这个功能完美无缺,但有时候没有数据达到阈值就像整个图像几乎为零(黑色)并且在图像中没有明确的阈值对象,这个功能使得垃圾过程就像在整个图像上传播白点并提供无用的数据。 那么我怎样才能解决这个问题,或者至少在传入此方法之前测试图像,看看它是否有明确的阈值对象?
x = graythresh(resaultImage);
b = im2bw(resaultImage,x);
答案 0 :(得分:0)
graythresh函数使用Otsu方法,该方法选择阈值以最小化黑白像素的类内方差。 这意味着在每个图像中,graythresh都会获得“常规”阈值。
您可以设置固定的阈值
b = im2bw(resaultImage,x);
0<x<1
的{{1}}
您还可以对图像中的已连接组件进行计数,如果连接组件的数量为0,则采用固定阈值,如果连接组件的数量大于或等于1,则使用graythresh函数获取阈值