opencv 05 彩色RGB像素值操作

news2024/11/26 7:30:15

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 np


img=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.coloradmin.cn/o/750289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用户案例 | Apache DolphinScheduler 离线调度在自如多业务场景下的应用与实践

用户案例 | 自如 随着自如业务的快速发展,不断增长的调度任务和历史逾万的存量任务对平台稳定性提出了更高的要求。同时,众多非专业开发人员也需要一种更为“亲民”的调度平台使用体验。 如何满足这些日渐凸显的需求对自如大数据平台的开发团队来说&am…

重复值--Pandas

1. 删除重复行:drop_duplicate() 1.1 函数功能 返回去除重复行的DataFrame,不考虑索引。 1.2 函数语法 DataFrame.drop_duplicates(subsetNone, *, keepfirst, inplaceFalse, ignore_indexFalse)1.3 函数参数 参数含义subset列标签或列标签组成的列…

操作系统第四篇

C语言 第四章 C语言4.1 gcc简介4.2 C语言基础4.3 GNU Binutils 简介4.4 8086 汇编与 C 语言混合编程4.4.1 混合编程的几个问题4.4.2 混合编程的一个实例 第四章 C语言 前面章节用 x86 汇编语言写了引导记录 mbr.bin,并让 BIOS 引导到内存 0x07c00 处执行成功。然后用…

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

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

嵌套虚拟机-监控嵌套虚拟机-libvmi-volatility

接上回: libvmi监控-使用examples cd ~ git clone https://github.com/libvmi/libvmi.git cd libvmi mkdir build cd build # 注意,由于我们是vmi的虚拟机,所以cmake编译时需要加上该编译选项(参考libvmi github上的readme&…

积分图像、图像分割、Harris角点检测

目录 1、积分图像 2、图像分割--漫水填充 3、图像分割--分水岭法 4、Harris角点检测 1、积分图像 //积分图像 int test1() {//创建一个1616全为1的矩阵,因为2561616Mat img Mat::ones(16, 16, CV_32FC1);//在图像中加入随机噪声RNG rng(10086);for (int y 0; y < img.r…

路径规划算法:基于法医调查优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于法医调查优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于法医调查优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

听GPT 讲K8s源代码--pkg(二)

在 Kubernetes&#xff08;K8s&#xff09;项目中&#xff0c;pkg/controller 目录是用于存放控制器&#xff08;Controller&#xff09;相关的代码的目录。控制器是 Kubernetes 的核心组件之一&#xff0c;用于管理和控制集群中的资源对象的状态和行为。 pkg/controller 目录的…

RTCP/SRTCP介绍

RFC 4585 - Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF) RFC 5124 - Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF) 译文&#xff1a; http://www.gpssoft…

[SAM]A Comprehensive Survey on Segment Anything Model for Vision and Beyond

A Comprehensive Survey on Segment Anything Model for Vision and Beyond Abstract 本文是SAM的第一篇综述 讲述了SAM的发展历史、进展、在不同任务、不同数据类型下的应用 首先介绍专有名词和背景知识 其次介绍SAM再图像处理等应用中的优点和局限 以及SAM未来展望 git链接…

C# Linq 详解一

目录 一、概述 二、Where 三、Select 四、GroupBy 五、First / FirstOrDefault 六、Last / LastOrDefault​​​​​​​ 一、概述 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串&#xff0c;没有编译时类型…

Exceptional C++读书笔记——泛型程序设计与C++标准库

更新中——上次更新&#xff08;2023.07.13-23:07&#xff09; 迭代器&#xff08;iterator&#xff09; #include <iostream> #include <vector> #include <iterator> #include <algorithm>int main() { std::vector<int> e; std::copy(…

第二章编程模型(Cortex-M7 Processor Programmers Model)

第二章编程模型 本章描述了程序员模型。它包含以下部分: 关于2-2页的程序员模型。2-3页的操作和执行方式。指令集摘要见第2-4页。系统地址映射在2-5页。2-8页的独家监视器。处理器核心寄存器在第2-9页。例外情况见第2-10页。 2.1关于编程模型 本章概述了描述实现定义选项的…

力扣题目解析:生成奇数个字符的字符串的巧妙方法

本篇博客会讲解力扣“1374. 生成每种字符都是奇数个的字符串”的解题思路&#xff0c;这是题目链接。 这道题的解题思路很巧妙&#xff0c;它利用了字符串长度n的奇偶性&#xff1a; 如果n是奇数&#xff0c;那么就把字符串全部填充为’a’&#xff0c;这样每种字符都是奇数个…

posix ipc之共享内存

note 1.shm_open的pathname不能带路径名&#xff0c;shm_open的创建目录为/dev/shm 2.使用ftruncate设置内核共享内存实例的大小 3.使用mmap进行有名映射(实例反应在文件系统的一个文件) code #include <sys/mman.h> #include <sys/stat.h> #include <fcntl…

【动手学习深度学习--逐行代码解析合集】16深度卷积神经网络(AlexNet)

【动手学习深度学习】逐行代码解析合集 16深度卷积神经网络&#xff08;AlexNet&#xff09; 视频链接&#xff1a;动手学习深度学习–深度卷积神经网络&#xff08;AlexNet&#xff09; 课程主页&#xff1a;https://courses.d2l.ai/zh-v2/ 教材&#xff1a;https://zh-v2.d2…

网络安全与防范

1.重要性 随着互联网的发达&#xff0c;各种WEB应用也变得越来越复杂&#xff0c;满足了用户的各种需求&#xff0c;但是随之而来的就是各种网络安全的问题。了解常见的前端攻击形式和保护我们的网站不受攻击是我们每个优秀fronter必备的技能。 2.分类 XSS攻击CSRF攻击网络劫…

瑞萨RFP工具使用问题总结

最近在用瑞萨的RH850&#xff0c;需要用到瑞萨提供的刷新工具RFP&#xff08;Renesas Flash Programmer&#xff09;&#xff0c;但是总是遇到一些问题&#xff0c;除了一些能够在官网上找到答案的问题&#xff0c;还遇到了其他各种各样的问题&#xff0c;这里记录一下问题和对…

【问题分析解决】git添加.gitignore后不生效问题

一&#xff0c;问题现象 在已经提交过的git管理的项目中&#xff0c;新增加一个.gitignore文件&#xff0c;或者修改.gitignore文件之后&#xff0c;新增的内容不生效。 二&#xff0c;问题原因 因为我们误解了.gitignore文件的用途&#xff0c;该文件只能作用于Untracked F…

AI图像生成无需API开发连接集简云数据表,实现生成图片自动同步能力

1 场景描述 人工智能的出现&#xff0c;各个领域都开始尝试将AI作为提高工作效率的必备工具。除了AI对话等&#xff0c;越来越多的AI图像生成工具也出现在市场上。这些AI图像生成工具可以自动创建惊人的图像、艺术作品和设计&#xff0c;从而帮助设计师和创意人员更快速地实现其…