如何消除这张照片中的噪点?

时间:2018-07-08 18:43:50

标签: python opencv image-processing

我已对此图像应用了一些滤镜,但它总是非常嘈杂,我如何才能去除噪点并仅保留字符? 这是我的代码:

import cv2    
import numpy as np

img = cv2.imread('12.jpg',0)    
img1=cv2.pyrDown(img)    
im=cv2.pyrDown(img1)    
final = cv2.medianBlur(im,5)    
cv2.imshow('image',final)    
cv2.waitKey(0)    
th2 = cv2.adaptiveThreshold(final,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
            cv2.THRESH_BINARY_INV,11,2)    
cv2.imshow('image1',th2)    
cv2.waitKey(0)    
laplacian = cv2.Laplacian(im,cv2.CV_64F)    
cv2.imshow('image2',laplacian)    
cv2.waitKey(0)

原始图片:

original image

image 1

image2

1 个答案:

答案 0 :(得分:0)

我有一些可以帮助您入门的信息。您可以纳入difference of Gaussians (DoG)的概念。

此处,您在具有两种不同内核尺寸的图像上执行高斯模糊,然后减去两者的结果。此方法突出显示边缘,并用于边缘检测。

注意:请记住,这只是为了帮助您入门。您将需要调整过滤器的参数以获得更好的结果。

代码:

import cv2    
import numpy as np

img = cv2.imread(r'C:\Users\Jackson\Desktop\text.jpg',0)    
img1 = cv2.pyrDown(img)
img1 = cv2.medianBlur(img1, 11)

b1 = 69
b2 = 39
g1 = cv2.GaussianBlur(img1, (b1, b1), 0) 
g2 = cv2.GaussianBlur(img1, (b2, b2), 0)  
cv2.imshow('DoG', g1 - g2)

cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

enter image description here