图像处理以去除图像中的噪点

时间:2019-05-10 13:49:27

标签: python-3.x opencv image-processing

我正在使用opencv对图像进行图像处理。

我只想将图像转换成黑白图像,但是我想去除一些灰色(噪点)

这是我的照片:

click here

我想以白色和黑色显示图像,以便清楚地显示文字:

” 参与-3.93 C Redevance Patronale -1.92摄氏度 “

我试图用OpenCV更改图像的阈值,但没有成功

#grayscale
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#binary
ret,thresh = cv2.threshold(gray,175,255,cv2.THRESH_BINARY_INV)

2 个答案:

答案 0 :(得分:2)

我认为您的意思是消除图像的噪点。为此,您可以选择一个较低的阈值。我使用ret,thresh = cv2.threshold(img,64,255,cv2.THRESH_BINARY)选择64,结果如下:

thresholded image

但这不是很清楚,字母很细,因此我们使用cv2.erode。给出:

eroded image

现在我们在原始图像和侵蚀图像之间执行cv2.bitwise_or,以获得无噪点图像。

result

使用的完整代码是

img = cv2.imread('grayed.png', 0)
ret,thresh = cv2.threshold(img,64,255,cv2.THRESH_BINARY)
kernel = np.ones((5, 5), np.uint8)
erode = cv2.erode(thresh, kernel, iterations = 1)
result = cv2.bitwise_or(img, erode)

答案 1 :(得分:0)

您的颜色转换将转换为带有灰色的RGB图像(根据GIMP,它仍然是RGB图像)。 opencv文档说图像必须是灰度而不是彩色的。即使您的图像是灰色的,它仍然是彩色图像。不确定具有灰色色彩空间的彩色图像是否与灰度图像相同。

这实际上是:-

的副本

Converting an OpenCV Image to Black and White