【发布时间】:2016-06-18 23:21:54
【问题描述】:
【问题讨论】:
-
您可以尝试使用某种边缘检测算法来找到白色区域的轮廓,然后将其填充为白色。看起来图像在边界附近有黑色噪点,这将使从这些区域的背景中区分噪点本质上变得更加困难。
-
有趣。我会试一试!拉普拉斯算子可能会很好地检测边缘。
标签: python opencv numpy image-processing
【问题讨论】:
标签: python opencv numpy image-processing
如果黑色区域真的像看起来那样干净,您可能想尝试选择大的黑色区域,例如使用洪水填充,并将反转设置为白色。
【讨论】:
您的问题不清楚什么是“噪音”。在我看来,椭圆形内的黑色东西看起来不像纯粹的噪音。
无论如何:
您提到保留边界边缘。在保留边缘的同时从图像中去除脉冲噪声的首选滤波器是中值滤波器。 这是一些对您的图像执行此操作的python
from matplotlib import pyplot as plt
from skimage.io import imread
from scipy.ndimage.filters import median_filter
img = imread("your-image.jpg")
filtered = median_filter(img, size=20)
plt.figure()
plt.imshow(img)
plt.figure()
plt.imshow(filtered)
plt.show()
20 是一个异常大的过滤器尺寸(执行需要一段时间),我选择它是为了夸大对图像的影响。去除微小的斑点,用灰色代替极值(黑色或白色)。锋利的边缘被保留。不过这次手术后还有很多非白色的东西。
【讨论】: