1、了解几个属性
代码:
import cv2
import numpy as np
#读入图片
img = cv2.imread('/Users/lililiee/Desktop/WechatIMG21.jpg')
print(img.shape) #打印出shape属性中包含的三个信息:图片的高度/宽度/通道数
print(img.size) #打印出这张图片占多大的内存空间:占用空间=高度*宽度*通道数
print(img.dtype) #打印出图像中每个元素的位深
2、色彩空间转换
YUV 色彩空间:主要用在视频中,一般编解码器会使用YUV作为数据源:
YUV4:2:0(对于像素的描述:4个Y数据对应2个U数据对应0个V数据)
YUV4:2:2
YUV4:4:4
YUV4:2:0的具体含义(4个Y对应2个U或者2个V,如果是2个U,则V是0,如果是2个V,则U是0)
YUV主要用在视频中,HSV主要用在opencv中,RGB/BGR主要用在显示器物理硬件的显示中
import cv2
def callback(a):
pass
cv2.namedWindow('new',cv2.WINDOW_NORMAL) #创建窗口
img = cv2.imread('/Users/lililiee/Desktop/WechatIMG21.jpg') #读入图片
colorspaces = [cv2.COLOR_BGR2RGBA,cv2.COLOR_BGR2BGRA,cv2.COLOR_BGR2GRAY,cv2.COLOR_BGR2HSV_FULL,cv2.COLOR_BGR2YUV]
cv2.createTrackbar('curcolor','new',0,4,callback) #参数:trackbar的名字。窗口的名字,默认值,滑动的长度,callback函数
while True:
index = cv2.getTrackbarPos('curcolor','new') #参数:trackbar的名字。窗口的名字.拖动的时候产生的值就是index
print(index)
#颜色空间转换api
cvt_img = cv2.cvtColor(img,colorspaces[index]) #参数:图片,颜色取值
cv2.imshow('new',cvt_img) #展示图片
key = cv2.waitKey(10)
if key & 0xFF == ord('q'):
break
cv2.destroyAllWindows()