【问题标题】:How can I remove noise from this picture?如何去除这张图片中的噪点?
【发布时间】:2018-07-08 18:43:50
【问题描述】:

我已经对这张图片应用了一些过滤器,但它总是很嘈杂,我怎样才能去除噪音并只留下字符? 这是我的代码:

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)

原图:

【问题讨论】:

  • “一些过滤器”。请分享您尝试过的内容。如果我们不尝试重复您失败的尝试,寻找解决方案会容易得多。发布您的代码肯定会帮助您在这里得到答案。

标签: python opencv image-processing


【解决方案1】:

我有一些东西可以让你开始。您可以合并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()

结果:

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2013-08-08
    • 2023-04-10
    • 1970-01-01
    • 2014-12-29
    • 2016-12-05
    相关资源
    最近更新 更多