我正在使用opencv对图像进行图像处理。
我只想将图像转换成黑白图像,但是我想去除一些灰色(噪点)
这是我的照片:
我想以白色和黑色显示图像,以便清楚地显示文字:
” 参与-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)
答案 0 :(得分:2)
我认为您的意思是消除图像的噪点。为此,您可以选择一个较低的阈值。我使用ret,thresh = cv2.threshold(img,64,255,cv2.THRESH_BINARY)
选择64,结果如下:
但这不是很清楚,字母很细,因此我们使用cv2.erode
。给出:
现在我们在原始图像和侵蚀图像之间执行cv2.bitwise_or
,以获得无噪点图像。
使用的完整代码是
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文档说图像必须是灰度而不是彩色的。即使您的图像是灰色的,它仍然是彩色图像。不确定具有灰色色彩空间的彩色图像是否与灰度图像相同。
这实际上是:-
的副本