1、cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255
需要特别注意的是图片读出来的格式是BGR,不是我们最常见的RGB格式,颜色肯定有区别。
2、cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。
cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
通过我做的实验和在网上看别人实验的结果,发现转换后并不是通常意义上的黑白图片。根据我问别人后的结果,他说,灰度图片并不是指常规意义上的黑白图片,只用看是不是无符号八位整型(unit8),单通道即可判断。
以下是代码,各位大神若觉得我的理解有问题,欢迎留言沟通。
import matplotlib.pyplot as plt import cv2 # cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255,通道格式为(W,H,C) img_BGR = cv2.imread('D:/Desktop/lena.jpg') plt.subplot(2,2,1) plt.imshow(img_BGR) plt.axis('off') plt.title('BGR') img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB) plt.subplot(2,2,2) plt.imshow(img_RGB) plt.axis('off') plt.title('RGB') img_GRAY = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2GRAY) print(img_BGR.shape) print(img_GRAY.shape) print(type(img_GRAY)) print(img_GRAY.astype) print(img_GRAY.dtype.name, img_BGR .dtype.name) from skimage import io,data img=data.chelsea() print(img.dtype.name) plt.subplot(2,2,3); plt.imshow(img_GRAY);plt.axis('off');plt.title('GRAY') img_HSV = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2HSV) plt.subplot(2,2,4); plt.imshow(img_HSV);plt.axis('off');plt.title('HSV') plt.show()
结果如下

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204687.html原文链接:https://javaforall.net
