我有两张图片:
使用不同的分辨率,但这不是重点。在左边,由于相机反射,我有一个“大”斑点。我想摆脱那个blob,所以关闭blob。但是在右边我有更小的blob,这是我需要保留的有价值的信息。 这两个图像都需要经历相同的算法。 如果我使用一个简单的开口,那么较小的斑点也会消失。有没有一种简单的方法可以在Python中使用skimage或/和PIL实现它?
在一个完美的世界中,左图像应该只创建一个白色圆圈,右图像应该在白色圆圈内有黑点。可以改变右图像上黑点的大小。
描述图像问题的图像答案 0 :(得分:1)
确定。所以在我回答之前。我必须告诉你,这是一种hackish方式,没有科学背景。
from skimage import io, measure
import numpy as np
img = io.imread('img.png', as_grey=True)
img = np.invert(img>0)
labeled_img = measure.label(img)
labels = np.unique(labeled_img)
newimg = np.zeros((img.shape[0],img.shape[1]))
for label in labels:
if np.sum(labeled_img==label) < 250:
newimg = newimg + (labeled_img==label)
io.imshow(newimg)
io.show()
由于这是一种hackish方式,我知道我应该评论相当回答,但我没有足够的评论点。