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()


Posted on 2022-03-13 22:19  阿黎~  阅读(24)  评论(0编辑  收藏  举报