删除像素小于(N)的点

2024-03-29 01:41:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了PIL中的几乎所有过滤器,但都失败了。 有没有什么功能可以消除噪音? 像Matlab()中的Bwareaopen()一样?

例如:

enter image description here

附言:如果有办法把这些信填成黑色,我将不胜感激


Tags: 功能过滤器pil黑色matlab噪音办法bwareaopen
3条回答

纽比/希比溶液:scipy.ndimage.morphology.binary_opening。更强大的解决方案:使用scikits映像。

from skimage import morphology
cleaned = morphology.remove_small_objects(YOUR_IMAGE, min_size=64, connectivity=2)

http://scikit-image.org/docs/0.9.x/api/skimage.morphology.html#remove-small-objects

我不认为这是你想要的,但这是可行的(使用Opencv(使用Numpy)):

import cv2

# load image
fname = 'Myimage.jpg'
im = cv2.imread(fname,cv2.COLOR_RGB2GRAY)
# blur image
im = cv2.blur(im,(4,4))
# apply a threshold
im = cv2.threshold(im, 175 , 250, cv2.THRESH_BINARY)
im = im[1]
# show image
cv2.imshow('',im)
cv2.waitKey(0)

输出(窗口中的图像):
Output image

您可以使用cv2.imwrite保存图像

Numpy/Scipy可以像Matlab一样进行形态学操作。

请参见scipy.ndimage.morphology,其中包含^{},相当于Matlab的bwareaopen()

相关问题 更多 >