将图像处理为灰度图和二值化图
在OpenCV目录下新建文件,命名为gray_binary.py,在PyCharm中编写代码,将RGB图像转换为灰度图和二值化图并显示。
import cv2
img = cv2.imread('pic.jpg', cv2.IMREAD_COLOR)
cv2.imshow('img', img)
cv2.waitKey(0)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('gray', gray)
cv2.waitKey(0)
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv2.imshow('binary', binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
将彩色RGB图像加载进来,需要注意的是,在OpenCV读取图片后,图像并非RGB顺序,而是采用BGR的顺序。使用cv2.cvtColor()函数将原始图像转换为灰度图。在灰度图中,像素值为0~255之间的某一个值,包含0和255。二值化后,图像中的像素值为0或255,cv2.THRESH_BINARY参数表示如果当前像素点的值大于阈值,则将输出图像的对应位置像素值置为255,否则为0,CV_THRESH_BINARY_INV参数功能正好相反。除了设置阈值二值化外还有自适应二值化等,本书不做详细介绍。图像的灰度图、二值化图如图所示。