OpenCV学习笔记(2):颜色空间的转化

OpenCV学习笔记(2):颜色空间的转化

关键API cv2.cvtColor

本函数实现功能:通过调用opencv2的trackbar控件控制不同颜色空间的转化
具体有将BGR分别转换为BGRA、RGBA、GRAY、HSV和YUV
其中GRAY为灰度图,YUV只需占用极少的频宽,色彩较少(想详细了解这几种色彩空间可以自行百度)

import cv2
import numpy as np


# 关键API cv2.cvtColor
def color_convert():
    # 利用trackbar拖动控件控制不同颜色空间的转化,所以需要回调函数
    def callback(value):
        pass

    cv2.namedWindow('color', cv2.WINDOW_NORMAL)
    cv2.resizeWindow('color', 500, 500)

    # 读取照片,OpenCV读进来的默认BGR的色彩空间
    img = cv2.imread('picture.png')

    # 定义颜色控件转化列表
    color_spaces = [
        # 所有颜色空间的转化都是COLOR开头 2 = to
        cv2.COLOR_BGR2BGRA, cv2.COLOR_BGR2RGBA,
        cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV,
        cv2.COLOR_BGR2YUV
    ]

    # 设置trackbar
    cv2.createTrackbar('trackbar', 'color', 0, 4, callback)

    while True:
        # 获取trackbar的值
        index = cv2.getTrackbarPos('trackbar', 'color')

        # 进行颜色空间转换
        cvt_img = cv2.cvtColor(img, color_spaces[index])

        cv2.imshow('color', cvt_img)
        key = cv2.waitKey(10)
        if key == ord('q'):
            break

    cv2.destroyAllWindows()


# color_convert()

结果为:

OpenCV学习笔记(2):颜色空间的转化_第1张图片 OpenCV学习笔记(2):颜色空间的转化_第2张图片 OpenCV学习笔记(2):颜色空间的转化_第3张图片 OpenCV学习笔记(2):颜色空间的转化_第4张图片 OpenCV学习笔记(2):颜色空间的转化_第5张图片
觉得有用的小伙伴点个赞加个关注支持一下吧!有错误或者不恰当的地方请指出!一起学习、进步!!!

你可能感兴趣的:(OpenCV,opencv,学习,计算机视觉,图像处理,python)