Python+OpenCV:色彩空间转换

82 篇文章 20 订阅

Python+OpenCV:色彩空间转换

####################################################################################################
# 色彩空间转换
def lmc_cv_convert_colorspaces():
    """
        函数功能: 色彩空间转换.
    """
    print(f"OpenCV支持的色彩空间: {[i for i in dir(lmc_cv) if i.startswith('COLOR_')]}")
    # 读取图像
    image = lmc_cv.imread('D:/Lena.jpg')
    lmc_cv.namedWindow('Convert Colorspaces')
    # create trackbars for color change
    colorspaces_flags = [lmc_cv.COLOR_BGR2BGRA, lmc_cv.COLOR_BGR2RGBA, lmc_cv.COLOR_BGR2RGB, lmc_cv.COLOR_BGR2GRAY,
                         lmc_cv.COLOR_BGR2XYZ, lmc_cv.COLOR_BGR2YCrCb, lmc_cv.COLOR_BGR2Lab, lmc_cv.COLOR_BGR2Luv,
                         lmc_cv.COLOR_BGR2HLS, lmc_cv.COLOR_BGR2HSV_FULL, lmc_cv.COLOR_BGR2HLS_FULL,
                         lmc_cv.COLOR_BGR2YUV, lmc_cv.COLOR_BGR2YUV_I420, lmc_cv.COLOR_BGR2YUV_IYUV,
                         lmc_cv.COLOR_BGR2YUV_YV12]
    colorspaces_texts = ['COLOR_BGR2BGRA', 'COLOR_BGR2RGBA', 'COLOR_BGR2RGB', 'COLOR_BGR2GRAY',
                         'COLOR_BGR2XYZ', 'COLOR_BGR2YCrCb', 'COLOR_BGR2Lab', 'COLOR_BGR2Luv',
                         'COLOR_BGR2HLS', 'COLOR_BGR2HSV_FULL', 'COLOR_BGR2HLS_FULL',
                         'COLOR_BGR2YUV', 'COLOR_BGR2YUV_I420', 'COLOR_BGR2YUV_IYUV',
                         'COLOR_BGR2YUV_YV12']
    lmc_cv.createTrackbar('Index', 'Convert Colorspaces', 0, len(colorspaces_flags) - 1, callback_trackbar)
    lmc_cv.setTrackbarMin('Index', 'Convert Colorspaces', 0)
    lmc_cv.setTrackbarMax('Index', 'Convert Colorspaces', len(colorspaces_flags) - 1)
    lmc_cv.setTrackbarPos('Index', 'Convert Colorspaces', round(len(colorspaces_flags) / 2))
    while True:
        trackbar_pos = lmc_cv.getTrackbarPos('Index', 'Convert Colorspaces')
        convert_image = lmc_cv.cvtColor(image, colorspaces_flags[trackbar_pos])
        lmc_cv.putText(convert_image, colorspaces_texts[trackbar_pos], (10, 30), lmc_cv.FONT_HERSHEY_SIMPLEX, 1,
                       (255, 255, 255), 2, lmc_cv.LINE_AA)
        lmc_cv.imshow('Convert Colorspaces', convert_image)
        # 等待用户退出.
        # waitKey() 与 0xFF(1111 1111)相与是因为waitKey(1)返回值不止8位,但只有后8位实际有效,为避免产干扰,通过"与"操作将其余位置0。
        if ord('q') == (lmc_cv.waitKey(10) & 0xFF):
            break
    # 销毁窗口
    lmc_cv.destroyAllWindows()

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值