Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何去噪图像_Python_Opencv_Ocr - Fatal编程技术网

Python 如何去噪图像

Python 如何去噪图像,python,opencv,ocr,Python,Opencv,Ocr,我正在构建一个应用程序来识别一些图片。下面是一个例子: 下面是我用来转换图片的代码: img = cv2.imread('9jxs.png', 0) ret1, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) ret2, th2 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) plt.figure() plt.subplot(221), plt.imsho

我正在构建一个应用程序来识别一些图片。下面是一个例子:

下面是我用来转换图片的代码:

img = cv2.imread('9jxs.png', 0)
ret1, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
ret2, th2 = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
plt.figure()
plt.subplot(221), plt.imshow(img, 'gray')
plt.show()

显然,图片的结果是“9JXS”,我的问题是如何删除噪声像素,清理图片,然后我可以使用OCR组件识别这种特殊类型的图片,与图片的其余部分相比,线条似乎要暗得多。我会找到图片的
min()。
您可以尝试手动调整范围选择的参数,并结合一些侵蚀,但我想对于一般情况,这将很难自动化

import cv2 as cv
import numpy as np

def on_lb_trackbar(val):
    global lb
    lb = val
    cv.imshow(title, cv.erode(cv.inRange(img,lb,ub),erosion_kernel))

def on_ub_trackbar(val):
    global ub
    ub = val
    cv.imshow(title, cv.erode(cv.inRange(img,lb,ub),erosion_kernel))

img = cv.imread(r'udilN.png',cv.IMREAD_GRAYSCALE)

lb = 0
ub = 255
title = 'Range selection'
erosion_kernel = np.ones((5,3), np.uint8)

cv.namedWindow(title)
cv.createTrackbar('from', title , lb, 255, on_lb_trackbar)
cv.createTrackbar('to', title , ub, 255, on_ub_trackbar)

on_lb_trackbar(0)

这是一个聪明的方法。如果不进行测试,我担心这会使X难以辨认ocr@MadPhysicist“不要害怕!”(c)=)也许可以制作一个图像的直方图,然后放弃所有内容,但中间的peakI认为这个问题太笼统了。有很多选择可以实现你所需要的。作为第一种方法:您可以尝试更改此行中的阈值
ret1,th1=cv2.threshold(img,127255,cv2.THRESH\u BINARY)
以将其调整为文本/噪声值。虽然每次可能都会有不同的声音。如果它们总是较暗,您可以检测它们,计算轮廓,然后将其从原始图像中删除。可能重复Hi,Stef,谢谢您的回复!图片非常接近最终结果,我尝试了数字57和198,但无法得到相同的结果,我们使用的图片是相同的吗?是的,这是您在问题中发布的图片,我只是手动剪切它以删除轴并将其重新保存到原始png文件中。是裁剪前的原始版本。