我尝试使用形态细化,输出有一些噪音。我在用python。第一个图像是原始图像。你知道吗
这是我尝试细化的代码(部分取自OpenCV Python Tutorials):
from skimage import morphology
import cv2
import numpy as np
img = cv2.imread('m.png',0);
size = np.size(img)
skel = np.zeros(img.shape, np.uint8)
ret, img = cv2.threshold(img, 220, 255, cv2.THRESH_BINARY_INV);
element = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3))
done = False
while (not done):
eroded = cv2.erode(img, element)
temp = cv2.dilate(eroded, element)
temp = cv2.subtract(img, temp)
skel = cv2.bitwise_or(skel, temp)
img = eroded.copy()
zeros = size - cv2.countNonZero(img)
if zeros == size:
done = True
'cleaned = morphology.remove_small_objects(skel, min_size=64, connectivity=2) I tried to use this function to remove the noise but it gave the same output'
这是输出图像。你知道吗
这就是我把结构元素改为:
element = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
期望的输出是得到一个没有任何噪声的细化图像。谁能帮我去掉这些小点(噪音)吗?你知道吗
应用一个高斯滤波器应该可以做到这一点。你知道吗
Documentation,Theory + Examples
除了过滤,您还可以使用打开操作:
Documentation见第3点
我的结果:证明它是有效的
它也会从输入图像中带走一些东西,但这是因为分辨率很小。可以进一步调整参数。你知道吗
相关问题 更多 >
编程相关推荐