03:像素的基本操作

文章介绍了图像的基本单位像素,包括像素的灰度级别、RGB色彩空间以及在OpenCV中如何查看和修改像素值。同时,详细阐述了numpy在数组操作中的应用,如创建、索引、切片和算术运算,并展示了如何使用numpy创建和操作图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

像素是图像的最小单位,每一幅图像都是由N行M列的像素组成的,其中每一个像素都存储一个像素值。

以灰度图为例,计算机通常把灰度图像的像素处理为256个灰度级别,256个灰度级别分别使用区间[0,255]中的整数数值表示。其中“0”表示纯黑色,“255”表示纯白色

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

1.确定像素的BGR值

如果我们想知道某一个像素点的值,此时我们就需要先确定该像素点的位置,然后再查看它的值

(1.1)如果确定某个像素的位置

我们可以使用windows自带的画图工具打开图像,以此来查看图像中某一个像素点的位置

(1.2)查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3MGYor9M-1676597842631)(C:\Users\hanhan\Desktop\模型学习\opencv–pil\opencv\03像素的操作\像素操作.assets\image-20221130162314384.png)]查看某个像素点对应的BGR值

import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",1)
px =image[235,234] #查看(235,234)位置像素的RGB值
print(px)

输出结果是[233,235,245]

如何理解上面的RGB输出结果?

三基色:人眼能够感知红色,绿色和蓝色三种不同的颜色,因此把这三种颜色称作三基色。如果将这三种颜色以不同的比例进行混合,人眼就能够感知到丰富多彩的颜色。

那么对于计算机是如何对这些颜色进行编码的呢?

答案就是利用色彩空间,也就是色彩空间是计算机对颜色进行编码的模型。

以较为常用的RGB色彩空间为例,在RGB色彩空间中,存在三个通道即R通道,G通道,B通道,其中R通道是红色通道,G通道是绿色通道,B通道是蓝色通道,并且每个色彩通道都是在区间[0,255]内取值。

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

我们常常使用功能RGB的顺序来表示色彩空间,但是在opencv中则使用BGR顺序来表示色彩空间,

即【233,235,245】

233:是蓝色通道

235:是绿色通道

245:是红色通道

(1.3)如何查看每个通道的值

import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",1)
px =image[235,234,0] #查看(235,234)位置的像素的B通道值
px =image[235,234,1] #查看(235,234)位置的像素的G通道值
px =image[235,234,2] #查看(235,234)位置的像素的R通道值
其实跟索引差不多
print(px)

2.修改像素的BGR值

(2.1) 修改单个像素点的BGR值

前面我们已经获取像素(235,234)位置的像素值为【233,235,245】,现在我们把像素值全部变成【255,255,255】

import cv2
image = cv2.imread("C:/Users/hanhan/Desktop/image/1.jpg",1)
px =image[235,234] #查看(235,234)位置的像素RGB值
px = [255,255,255] #s使用同一个px变量,进行修改
print(px)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值