opencv 05 彩色RGB像素值操作

opencv 05 彩色RGB像素值操作

RGB 模式的彩色图像在读入 OpenCV 内进行处理时,会按照行方向依次读取该 RGB 图像的 B 通道、G 通道、R 通道的像素点,并将像素点以行为单位存储在 ndarray 的列中。例如,
有一幅大小为 R 行×C 列的原始 RGB 图像,其在 OpenCV 内以 BGR 模式的三维数组形式存储,
如图 2-7 所示

在这里插入图片描述
可以使用表达式访问数组内的值。例如,可以使用 image[0,0,0]访问图像 image 的 B 通道
内的第 0 行第 0 列上的像素点

第 1 个索引表示第 0 行。
第 2 个索引表示第 0 列。
第 3 个索引表示第 0 个颜色通道。

根据上述分析可知,假设有一个红色(其 R 通道值为 255,G 通道值为 0,B 通道值为 0)
图像,不同的访问方式得到的值如下。
 img[0,0]:访问图像 img 第 0 行第 0 列像素点的 BGR 值。图像是 BGR 格式的,得到的数值为[0,0,255]。
 img[0,0,0]:访问图像 img 第 0 行第 0 列第 0 个通道的像素值。图像是 BGR 格式的,所
以第 0 个通道是 B 通道,会得到 B 通道内第 0 行第 0 列的位置所对应的值 0。
 img[0,0,1]:访问图像 img 第 0 行第 0 列第 1 个通道的像素值。图像是 BGR 格式的,所
以第 1 个通道是 G 通道,会得到 G 通道内第 0 行第 0 列的位置所对应的值 0。
 img[0,0,2]:访问图像 img 第 0 行第 0 列第 2 个通道的像素值。图像是 BGR 格式的,所
以第 2 个通道是 R 通道,会得到 R 通道内第 0 行第 0 列的位置所对应的值 255

为了方便理解,我们首先使用 Numpy 库来生成一个 2×4×3 大小的数组,用它模拟一幅黑
色图像,并对其进行简单处理

import cv2
import numpy as np#-----------蓝色通道值--------------
blue=np.zeros((300,300,3),dtype=np.uint8)
blue[:,:,0]=255
print("blue=\n",blue)
cv2.imshow("blue",blue)
#-----------绿色通道值--------------
green=np.zeros((300,300,3),dtype=np.uint8)
green[:,:,1]=255
print("green=\n",green)
cv2.imshow("green",green)
#-----------红色通道值--------------
red=np.zeros((300,300,3),dtype=np.uint8)
red[:,:,2]=255
print("red=\n",red)
cv2.imshow("red",red)cv2.waitKey(0)
cv2.destroyAllWindows()

运行后打印效果:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

opencv 中对应的BGR,刚好是蓝色,绿色,红色的顺序

运行上述程序,会显示颜色为蓝色、绿色、红色的三幅图像,分别对应数组 blue、数组 green、数组 red

在这里插入图片描述
将三种颜色在一张图中演示操作

import cv2
import numpy as npimg=np.zeros((300,300,3),dtype=np.uint8)img[:,0:100,0]=255
img[:,100:200,1]=255
img[:,200:300,2]=255
print("img=\n",img)cv2.imshow("image",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

img[:,0:100,0]=255
从上面我们已经知道 第一索引是 矩阵里的行,:代表着满行,第二个值0:100 ,代表这 0到100列,第三索引 是通道值,按照opencv 读取顺序是B,
运行效果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21383.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

毫秒级突破!腾讯技术团队是如何做前端性能优化的?

👉腾小云导读 搜狗百科是一个服务于互联网用户的高质量内容平台。文章主要介绍团队在梳理业务时发现百科无线前端项目在研发流程、架构设计、研发效率、页面性能等方面存在诸多问题和痛点。作者团队是如何对这个系统进行升级和改造的?又是如何分析出怎么…

Go语言网络编程:HTTP服务端之底层原理与源码分析——http.HandleFunc()、http.ListenAndServe()

一、启动 http 服务 import ("net/http" ) func main() {http.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) {w.Write([]byte("ping...ping..."))})http.ListenAndServe(":8999", nil) }在 Golang只需要几行代…

7.11 学习记录

目录 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和 454.四数相加II 383. 赎金信 代码随想录 (programmercarl.com)https://www.programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E5%B8%B8%E8%A7%81%E7…

pytorch grid_sample易错点

pytorch grid_sample易错点 易错点是: grid_sample函数中, x对应w, y对应h !! grid_sample函数中, x对应w, y对应h !! grid_sample函数中, x对应w, y对应h !! 函数的作用 output的size和grid的size是一样的,所以output中某一位置(h, w)的值&#xff0c…

【算法基础】进制转换

一、X进制转十进制 (一)Question 1. 问题描述 2. Input 第一行一个整数 x; 第二行一个字符串 S。 3. Output 输出仅包含一个整数,表示答案。 4. Sample Input 16 7B5. Sample Output 123(二)题解 #include <bits/stdc++.h> using

Go——基础语法

目录 Hello World&#xff01; 变量和常量 变量交换 匿名变量 常量 iota——特殊常量 基本数据类型 数据类型转换 运算符 算数运算符 关系运算符 逻辑运算符 位运算符号 ​编辑 赋值运算符 输入输出方法 流程控制 函数 可变参数类型 值传递和引用传递 Hello Wor…

Git 工具出现克隆库失败详解

Git 工具出现克隆库失败详解 现象 错误字符串&#xff1a;git unable to access xxx: Encountered end of 原因 总体来说出现这个原因通常是因为网络连接的问题。具体的有以下几个方面 远程仓库不存在&#xff1a;检查所指定的远程仓库是否存在&#xff0c;确保仓库名称、U…

TortoiseGit的安装和使用

1、TortoiseGit的下载安装 安装说明:因为TortoiseGit 只是一个程序壳,必须依赖一个 Git Core,所以安装前请确定已完成git安装和配置。 TortoiseGit下载地址 https://download.tortoisegit.org/tgit/ ,最新稳定版本2.11.0.0。 点进去下载程序包和语言包(非必须),安装时…

记录一次nginx日志偶现502报错排查

背景 之前的业务链路 负载均衡–>nginx–>cvm&#xff08;业务后端node&#xff09; 上云后链路 负载均衡–>nginx–>pod&#xff08;业务后端node&#xff09; 上云后nginx日志隔几个小时就出现一波502&#xff0c;查看nginx的日志有两个特征&#xff0c;就是re…

HarmonyOS元服务开发

一、什么是HarmonyOS系统 HarmonyOS是华为开发的一款面向未来的全场景分布式智慧操作系统&#xff0c;将逐步覆盖18N全场景终端设备&#xff0c;用一个软件系统解决大量智能终端体验割裂的问题 1&#xff1a;智能手机 …

flutter开发实战-css的linear-gradient的值转换成LinearGradient

flutter开发实战-css的linear-gradient的值转换成LinearGradient 在开发中遇到了参照前端的css的属性值&#xff0c;需要将css的linear-gradient值转换成LinearGradient&#xff0c;这样可以直接设置相应的值。这里暂时不涉及到&#xff0c;颜色值名称、color-stop1&#xff0…

计算机毕设 大数据房价数据分析及可视化 - python 房价分析

文章目录 1 课题背景2 数据爬取2.1 爬虫简介2.2 房价爬取 3 数据可视化分析3.1 ECharts3.2 相关可视化图表 4 最后 1 课题背景 房地产是促进我国经济持续增长的基础性、主导性产业。如何了解一个城市的房价的区域分布&#xff0c;或者不同的城市房价的区域差异。如何获取一个城…