去除显微镜拍摄的图像中的条纹图案

时间:2018-08-16 05:25:26

标签: opencv image-processing noise-reduction

这张照片是用显微镜拍摄的。

original image

我想去除上面的条纹。我已经尝试过DFT,但似乎这些条纹在频谱域上并不清晰。

spectrum domain

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

答案1:直接从FFT中删除条带

当我计算FFT时,我们得到以下图像,在该图像中我们可以看到条纹签名(我将其包围为黑色)。

FFT

如果我用手将其移除,我将得到:

without strip

我们最好只去除基数正弦中每个最大值的频率。

答案2:分段条纹

处理:FFT->选择条带频率-> iFFT->阈值 生成的蒙版包含您的条纹。您可以从原始图像中减去它们,填充它们,等等... 仅带条纹的FFT:

FFT with only stripe

生成的掩码:

The mask

答案3:变更捕获过程

该条纹似乎来自显微镜载玻片和盖玻片之间的干扰。您可能可以通过更改流程将其删除。

答案 1 :(得分:0)

解决方案1:

由于图像中只有3种主要颜色,并且条纹颜色与其他对象颜色不同,因此使用对象颜色并基于该颜色进行分割(例如使用kmeans与k = 3,然后用最亮簇的平均值替换属于最暗簇的所有像素。

解决方案2:

使用轮廓线检测图像中的线条, 找到图像中最浅的颜色, 画出最浅的颜色的线。

两种解决方案都可以在OpenCV中实现。

祝你好运!

答案 2 :(得分:0)

感谢上述所有帮助!经过一些实验,我实现了一种我认为效果很好的方法。

首先使用傅立叶,而不是对幅值图像应用一个名为tophat的滤镜。将选择亮点。从频域中将其删除后,与反fft相比,将去除条纹。然后需要对图像进行滤波我使用高斯滤波器,但效果并不理想。似乎存在一些结构抽取滤波器,例如相对总方差,我不确定,如果有人有更好的主意请告诉我。 图像是这样的After ifft

再次感谢@Erwan和@ Dr.Haimovitz的所有帮助。