600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Python-opencv 读取图片RGB/HSI通道值

Python-opencv 读取图片RGB/HSI通道值

时间:2024-07-18 13:31:46

相关推荐

Python-opencv 读取图片RGB/HSI通道值

1. RGB值

RGB即使用红色(R)、绿色(G)、蓝色(B)作为三元色,以三者不同比例的混合产生不同颜色。

dic = {0:'牡丹粉', 1:'苋菜红', 2:'鼠背灰', 3:'卵石紫', 4:'钢青', 5:'竹绿', 6:'油菜花黄'}img_all = [[[0 for i in range(3)]for j in range(7)]for k in range(1)]for i in range(1, 7):path = str(i) + '.png'img = cv2.imread(path)b= img[0][0][0]g= img[0][0][1]r= img[0][0][2]print(f'{dic[i-1]}:\t[r,g,b]:[{r},{g},{b}]')

结果:

牡丹粉:[r,g,b]:[164,27,41]苋菜红:[r,g,b]:[113,85,90]鼠背灰:[r,g,b]:[47,22,28]卵石紫:[r,g,b]:[20,34,51]钢青:[r,g,b]:[27,166,131]竹绿:[r,g,b]:[247,215,64]

代码中之所以并非以RGB的顺序读取,是因为cv2的文档中指出虽然cv2读取的格式是“RGB”但是是以BGR的顺序读取

输出图像验证:

dic = {0:'牡丹粉', 1:'苋菜红', 2:'鼠背灰', 3:'卵石紫', 4:'钢青', 5:'竹绿', 6:'油菜花黄'}img_all = [[[0 for i in range(3)]for j in range(7)]for k in range(1)]for i in range(1, 7):path = str(i) + '.png'img = cv2.imread(path)b= img[0][0][0]g= img[0][0][1]r= img[0][0][2]img_all[0][i-1][0] = rimg_all[0][i-1][1] = gimg_all[0][i-1][2] = bprint(f'{dic[i-1]}:\t[r,g,b]:[{r},{g},{b}]') plt.imshow(img_all)

原始图像:

输出图像:

2. RGB --> HSI

用色调(H)、色饱和度(S)、亮度描述色彩(I)。HSI色彩空间可以用一个圆锥空间模型来描述。通常把色调和饱和度通称为色度,用来表示颜色的类别与深浅程度。

转换公式:

转换代码:

def Rgb2Hsi(r, g, b):r /= 255g /= 255b /= 255eps = 1e-8h, s, i = 0, 0, 0sum_rgb = r + g + bmin_rgb = min(r, g, b)s = 1 - 3 * min_rgb / (sum_rgb + eps)h = np.arccos((0.5 * (r + r - g - b)) / (((r - g) ** 2 + (r - b) * (g - b) + eps)) ** 0.5)if b > g:h = 2 * np.pi - hh = h / (2 * np.pi)if s == 0:h = 0i = sum_rgb / 3return round(h, 2), round(s, 2), round(i, 2)dic = {0:'牡丹粉', 1:'苋菜红', 2:'鼠背灰', 3:'卵石紫', 4:'钢青', 5:'竹绿', 6:'油菜花黄'}for i in range(7):path = str(i) + '.png'img = cv2.imread(path)b= img[0][0][0]g= img[0][0][1]r= img[0][0][2]H, S, I = Rgb2Hsi(r, g, b)print(f'{dic[i]}:\t[r,g,b]:[{r},{g},{b}]\t[h,s,i]:[{H},{S},{I}]')

结果:

牡丹粉:[r,g,b]:[234,159,161][h,s,i]:[1.0,0.14,0.72]苋菜红:[r,g,b]:[164,27,41] [h,s,i]:[0.99,0.65,0.3]鼠背灰:[r,g,b]:[113,85,90] [h,s,i]:[0.97,0.11,0.38]卵石紫:[r,g,b]:[47,22,28] [h,s,i]:[0.96,0.32,0.13]钢青:[r,g,b]:[20,34,51] [h,s,i]:[0.59,0.43,0.14]竹绿:[r,g,b]:[27,166,131][h,s,i]:[0.46,0.75,0.42]油菜花黄:[r,g,b]:[247,215,64][h,s,i]:[0.14,0.63,0.69]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。