【发布时间】:2018-02-08 09:03:03
【问题描述】:
我正在使用 OpenCV 和 Python 处理图像。我需要去除图像中的点/噪点。
我尝试了膨胀,使点变小,但是文本被损坏了。我还尝试了两次循环膨胀和一次腐蚀。但这并没有给出令人满意的结果。
还有其他方法可以实现吗?
谢谢你:)
编辑:
我是图像处理的新手。我目前的代码如下
image = cv2.imread(file)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
kernel = np.ones((2, 2), np.uint8)
gray = cv2.GaussianBlur(gray, (5, 5), 0)
gray = cv2.GaussianBlur(gray, (5, 5), 0)
gray = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
gray = cv2.erode(gray, kernel, iterations=1)
gray = cv2.dilate(gray, kernel, iterations=1)
cv2.imwrite(file.split('.'[0]+"_process.TIF", gray))
编辑 2:
我尝试了中值模糊。它已经解决了 90% 的问题。我一直在使用 gaussianBlurring。
谢谢
【问题讨论】:
-
也许是中值过滤器?
-
@api55 该死。这带来了巨大的变化! (虽然还有一点点)。我一直在使用 gaussianBlurring。谢谢!
-
中值滤波器通常适用于这种周围像素为白色的噪声(椒盐噪声)。小噪音,可能你必须用其他方式过滤,比如腐蚀膨胀,只要记住模糊(用高斯)可能会使点变大,效果不好,还会模糊字母
-
也许你应该读一本关于图像处理基础的书......至少前几章......否则你只是浪费时间试图以错误的方式解决问题
-
@Piglet 可以。!????
标签: python image opencv image-processing