OpenCV中确定像素位置及获取、修改像素BGR值讲解及演示(Python实现 附源码)

简介: OpenCV中确定像素位置及获取、修改像素BGR值讲解及演示(Python实现 附源码)

需要源码和图片集请点赞关注收藏后评论区留言~~~

像素是图像的最小单位。每一幅图像都是由M行N列的像素组成的,其中每一个像素都存储一个像素值。以灰度图像为例,计算机通常把灰度图像的像素处理为256个灰度级别,256个灰度级别分别使用区间[0, 255]中的整数数值表示。其中,“0”表示纯黑色;“255”表示纯白色

内容结构如下

通常把一个小方块称作一个像素,因此,一个像素是具有一定面积的一个块,而不是一个点,需要注意的是,像素的形状是不固定的,大多数情况下,像素被认为是方形的,但有时也可能是圆形的或者是其他形状的

一、确定像素的位置

用“画图”工具打开图4.1

可以在下方看到219×292像素 即水平方向的像素是219个,垂直方向的像素是292个

接下来我们打印这个位置坐标的像素 注意像素坐标表示方法是(y,x)索引从0开始

import cv2
image = cv2.imread("2.1.jpg") # 读取D盘根目录下的2.1.jpg
px = image[291, 218] # 坐标为(291, 218)上的像素
print(px)

二、获取像素的BGR值

从上图可以看出,像素的值由三个坐标表示,下面我们对这三个数值进行讲解

我们将红色 绿色和蓝色三种颜色称为三种基色,如果将这三种颜色以不同的比例进行混合,人眼就会感知到丰富多彩的颜色

在RGB色彩空间中,存在三个通道,即R通道,G通道和B通道,分别指代红色通道,绿色通道和蓝色通道,都在区间(0,255)内取值

这样 计算机利用三个色彩通道的不同组合来表示不同的颜色

但是在OpenCV中是BGR色彩空间,即打印的顺序是蓝色 绿色 红色

如果想单独获得BGR通道的值 那么可以执行如下代码

blue=image[291,218,0]

其中最后一个数值0表示B通道

1表示G通道

2表示R通道

三、修改像素的BGR值

对于BGR色彩空间的值,当每个像素的BGR的三个数值相等时,就可以得到灰度图像,其中BGR=0为纯黑色,BGR=255为纯白色

下面修改指定区域内的所有像素

可见我们将图片右下角全部修改为了白色

代码如下

import cv2
image = cv2.imread("4.1.jpg")
cv2.imshow("4.1", image) # 显示图4.1
for i in range(241, 292): # i表示横坐标,在区间[241, 291]内取值
    for j in range(168, 219): # j表示纵坐标,在区间[168, 218]内取值
        image[i, j] = [255, 255, 255] # 把区域内的所有像素都修改为白色
cv2.imshow("4.8", image) # 显示图4.8
cv2.waitKey()
cv2.destroyAllWindows() # 关闭所有的窗口时,销毁所有窗口

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
8天前
|
数据采集 Java 数据挖掘
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
|
8天前
|
数据采集 数据挖掘 计算机视觉
最全OpenCV-Python实战(3)——OpenCV中绘制图形与文本,面试官必问问题及答案
最全OpenCV-Python实战(3)——OpenCV中绘制图形与文本,面试官必问问题及答案
|
8天前
|
存储 缓存 API
python源码解读_python代码解释
python源码解读_python代码解释
|
11天前
|
Python
10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_有趣的python代码表白
10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_有趣的python代码表白
|
11天前
|
数据安全/隐私保护 Python 算法
Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码,2024年最新Python面试回忆录
Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码,2024年最新Python面试回忆录
|
14天前
|
计算机视觉 Python
【Python实战】——Python+Opencv是实现车牌自动识别
【Python实战】——Python+Opencv是实现车牌自动识别
|
14天前
|
Ubuntu 编译器 C++
Ubuntu系统下编译OpenCV4.8源码
本文档介绍了在Ubuntu系统下编译和安装OpenCV4.8的简单步骤:首先,通过wget命令下载源码包,然后解压;接着,安装必要的编译器和第三方库支持;最后,在源码目录创建build文件夹,执行cmake和make安装。整个过程包括下载、安装依赖和编译安装三个主要步骤。
23 6
|
14天前
|
算法 Serverless 计算机视觉
使用OpenCV和Python进行极线校正
使用OpenCV和Python进行极线校正
20 1
|
14天前
|
存储 算法 C语言
OpenCV—访问图像中的像素
OpenCV—访问图像中的像素
|
14天前
|
Python
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
23 0