删除包含小于(N)的像素的点

wil*_*ibi 8 python numpy image-processing filter scipy

我尝试了几乎所有过滤器PIL,但都失败了.是否有任何功能在scipy numpy去除噪音?像Matlab()中的Bwareaopen()一样?

例如:

在此输入图像描述

PS:如果有办法将字母填入黑色,我将不胜感激

Jun*_*uxx 14

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

请参阅scipy.ndimage.morphology,其中包含binary_opening()Matlab的等效内容bwareaopen().

  • Binary_opening似乎是结构性的开口,这与bwareaopen的区域开口不同。 (2认同)

pra*_*nsg 9

我不认为这是你想要的,但这是有效的(使用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)
Run Code Online (Sandbox Code Playgroud)

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

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


fmo*_*lia 9

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)
Run Code Online (Sandbox Code Playgroud)

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