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]
Python-opencv 读取图片RGB/HSI通道值相关推荐
- python opencv 读取图片_Python opencv 读取图像
对于 matlab 起家做数字图像处理的人来讲都非常适应matlab对图像处理的操作和思路,尤其是它可以非常方便直观的看到图像的RGB值. 由于最近在研究深度学习的计算机视觉方面的东西,于是完全自学接 ...
- python opencv 为图片添加alpha通道并设置透明,判断是否存在alpha通道
读取图片 使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入 ...
- python+opencv 计算图片的感知hash值,来计算汉明距离,简单的找相似图片
感知哈希算法是一类算法的总称,包括aHash.pHash.dHash.顾名思义,感知哈希不是以严格的方式计算Hash值,而是以更加相对的方式计算哈希值,因为"相似"与否,就是一种相 ...
- python cv2读取图片后进行通道变换以及PIL阅读图像的通道转换
读取的 图片的格式是HxWx3,像素值在0-1之间 img = cv2.imread('b.png') print(img.shape) img = img.permute(2,0,1) #如果进行H ...
- python opencv获取图片分辨率_python-opencv遍历图片像素,并对像素进行操作
看代码: def access_pixels(frame): print(frame.shape) #shape内包含三个元素:按顺序为高.宽.通道数 height = frame.shape[0] ...
- python将图像转换为8位单通道_Python OpenCV读取16位单通道图像并转换为8位灰度图显示...
语义.实例分割数据集的标注图像以及一些深度图像等都是由单通道16位整型图像存储的,我们通常需要读取这种图像并显示出来,由于OpenCV一般只能够对8位图像进行显示,也就是像素范围在0-255的图像,而 ...
- Python学习(1)OpenCV读取图片
Python学习(1)OpenCV读取图片 前言 一. Python准备 二. Python仿真 三. 仿真结果 四. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Py ...
- python下Opencv读取图片
python下Opencv读取图片 import cv2 #cv2.imread默认读入模式是1,表彩色:0表示灰色 im = cv2.imread('images/1039.jpg') #注意这里的 ...
- Python OpenCV去除图片水印
问题描述 去除百度水印 1.jpg,背景简单 2.jpg,背景复杂 解决方案 安装 pip install opencv-python pip install numpy 方法一.OpenCV提取颜色 ...
最新文章
- make menuconfig 错误
- DEDECMS模块插件制作举例-模块生成向导
- 爬虫技巧:在pycharm 下 调试 scrapy项目
- C语言 va_end 宏 - C语言零基础入门教程
- contentprovider java_创建Contentprovider,
- 暴露的全局方法_史上最便捷搭建 ZooKeeper 服务器的方法
- 飞天茅台也可以在天猫上购买了,售价1499元!
- 中通科技移动自动化测试的革新与探索
- access open 知乎_做目标检测,这6篇就够了:CVPR 2020目标检测论文盘点
- cocos2dx3.2 画图方法小修改之 C++ final学习
- java的split的正则_Java正则表达式之split()方法实例详解
- PopClip翻译插件开发记录-microsoft_translate.popclipext
- java运动控制卡_运动控制卡应用开发教程之VB6.0
- MeScroll 移动端刷新,分页
- npm install 时 WARN No repository field Or No license field
- 五个核心能力打造普惠金融商业化发展模式
- 茶文化入门 --茶分类
- 计算机专业专科可以进的国企,适合专科生报考的4大“专业”,国企事业单位抢着要,还能拿编制...
- maya中英文对照_Maya菜单中英文对照(全)
- ABAP 中历史库存
热门文章
- pycharm pep8规范 个人问题总结
- 使用vue框架,在线打开 word、excel、pdf 这三种格式的文件的方式。
- 已知稀疏多项式C语言版,一元稀疏多项式计算器C语言课程设计
- Java原码、反码、补码转换
- 2023王道考研数据结构第一章---基本概念
- 如何使用Nunit进行测试
- [NOIP2002 普及组] 选数 dfs筛素数
- 脱离取源设备的IPTV宽带机房搭建心得(私网汇聚、内网直播源、单播组播模式混合使用、光猫机顶盒的破解、超级路由的组播转发)
- 关于python-scrapy框架爬取微博转发的信息
- 在万彩手影大师上怎么制作微课_制作微课最简单方便的设备?