我已对此图像应用了一些滤镜,但它总是非常嘈杂,我如何才能去除噪点并仅保留字符? 这是我的代码:
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)
原始图片:
答案 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()
结果: