【颜色】windows自带画图中的颜色编辑

结论:颜色编辑中的色调、饱和度和亮度,是与HSL颜色空间保持一致。

 如下图所示,他有色调、饱和度和亮度,其数值范围均为[0,240]

首先我使用HSV进行模拟,发现效果和数值对不上。

因此改换HSL进行模拟,其数值如下所示;

hsv:73,102,88,  rgb:67,133,53

import os
import numpy as np
import cv2
import colorsys

def rgb_to_hsl(rgb):
    r, g, b = rgb[0] / 255.0, rgb[1] / 255.0, rgb[2] / 255.0
    h, l, s = colorsys.rgb_to_hls(r, g, b)
    return (h * 255, s * 255, l * 255)

def hsl_to_rgb(hsl):
    h, s, l = hsl[0] / 240, hsl[1] / 240.0, hsl[2] / 240.0
    r, g, b = colorsys.hls_to_rgb(h, l, s)
    return (int(r * 255), int(g * 255), int(b * 255))

def rgb_show(arg):
    ori_h = cv2.getTrackbarPos('ori_h', 'opencv')
    ori_s = cv2.getTrackbarPos('ori_s', 'opencv')
    ori_l = cv2.getTrackbarPos('ori_l', 'opencv')

    r,g,b = hsl_to_rgb((ori_h, ori_s, ori_l))

    ori[:,:,0] = b
    ori[:,:,1] = g
    ori[:,:,2] = r

    print(f"hsv:{ori_h},{ori_s},{ori_l},  rgb:{r},{g},{b}")

    cv2.imshow('opencv', ori)


ori = np.zeros((500, 1000, 3), dtype=np.uint8)

cv2.namedWindow('opencv')
cv2.createTrackbar('ori_h', 'opencv', 0, 240, rgb_show)
cv2.createTrackbar('ori_s', 'opencv', 0, 240, rgb_show)
cv2.createTrackbar('ori_l', 'opencv', 0, 240, rgb_show)

rgb_show(0)

cv2.waitKey(0)

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值