运用opencv做图片识别,进行分割图片,需要对图片进行二值化处理,代码如下:
import cv2
import numpy as np
if __name__ == "__main__":
image = cv2.imread("2.png",1)
gray=cv2.cvtColor(image, cv2.COLOR_BAYER_BG2GRAY)
binary=cv2.adaptiveThreshold(~gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,35,-5)
cv2.imshow("show image", binary)
cv2.waitKey(0)
出现的错误如下:
Traceback (most recent call last):
File "D:/python/Projects/test2/test.py", line 6, in <module>
gray=cv2.cvtColor(image, cv2.COLOR_BAYER_BG2GRAY)
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\demosaicing.cpp:1699: error: (-215:Assertion failed) scn == 1 && dcn == 1 in function 'cv::demosaicing'
这是因为做二值化处理时,需要将图片上的像素点的灰度值调成0或255,很多人容易忽视或者粗心出现这个错误
修改后如下:
image = cv2.imread("2.png",0)
运行成功,结果如下: