这可以概括为:如何从图像中删除看起来与另一个区域相似的区域?
大图像呈灰度。我的沙子很多,我需要检测特征。
沙粒是多个像素大。我知道照片中的沙子在哪里。
看起来像这样:
我有这种沙子(还没有灰度):
我想要实现的是,所有的沙都变成从0.0到1.0的单个值,或者几乎没有变化的一个值;
这样,我将能够轻松检测到这些功能。
基本上就是这样:将看起来与图像中某些区域 相似的所有内容从图像中移除。
我以为也许可以做些什么:
噪音+噪音=噪音;看起来和以前一样。
噪音+功能=噪音;看起来比以前更吵
(这实际上可能是解决方案,尽管我仍然想问你们)
哪种算法合适,您建议什么?
答案 0 :(得分:1)
我建议您尝试模板匹配。
(在进一步变换之前先用均值或高斯滤波器对源图像进行模糊处理是有道理的,但一定不能对特征造成太大影响)。
过滤均值和偏差接近噪声的区域(对于沙子区域,估计该值)。在这种情况下,过滤器尺寸不应太大,比搜索到的特征小2倍以上。
更复杂的方法是模板匹配。这是模板区域(砂)与图像区域的像素间比较。如果结果低于(或更高,取决于所使用的方法)比某个阈值模板匹配。但我认为,在您的情况下,它可能比上述基本过滤器更糟糕。
您也可以尝试使用Sobel运算符或其他一些图像衍生形式。为了在图像上找到边缘(您的特征似乎只有一个,而沙子则没有)。
P.S。稍后将尝试使用描述的方法将几张照片添加到您的示例图片中。
答案 1 :(得分:0)
对于那些偶然发现此问题的人。 最后,我决定进行可训练的WEKA细分。我使用斐济(ImageJ)进行了尝试。它比其他所有方法都好得多。噪声总是不同的,因此不幸的是模板匹配不能很好地工作。 另一个看起来很有希望的是我在斐济的“插件”>“细分”下发现的“统计区域合并”。 但是WEKA给出了最好的结果。
但我确实希望最终能更快找到一些东西。