【发布时间】:2013-03-07 23:57:59
【问题描述】:
我尝试了PIL 中的几乎所有过滤器,但都失败了。
scipy 的 numpy 中是否有任何功能可以消除噪音?
像 Matlab() 中的 Bwareaopen() 吗?
例如:
PS:如果有办法把字母填成黑色,我将不胜感激
【问题讨论】:
标签: python image-processing numpy filter scipy
我尝试了PIL 中的几乎所有过滤器,但都失败了。
scipy 的 numpy 中是否有任何功能可以消除噪音?
像 Matlab() 中的 Bwareaopen() 吗?
例如:
PS:如果有办法把字母填成黑色,我将不胜感激
【问题讨论】:
标签: python image-processing numpy filter scipy
Numpy/Scipy 可以像 Matlab 一样进行形态学运算。
参见scipy.ndimage.morphology,其中包含binary_opening(),相当于Matlab 的bwareaopen()。
【讨论】:
binary_opening 好像做了一个结构性开口,和bwareaopen 做的一个区域开口不一样。
Numpy/Scipy 解决方案:scipy.ndimage.morphology.binary_opening。更强大的解决方案:使用 scikits-image。
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)
输出(窗口中的图像):
您可以使用cv2.imwrite保存图像
【讨论】: