OpenCV常用操作之图片的基本操作

opencv操作图片是很方便的,能够对图片更进一步处理,例如合并图片、添加水印等

图片的基本原理

彩色图片

如果一个图片是彩色的图片,那么每个像素有3个数字(0-255),0表示黑色,255表示白色,RGB(R-red 红色,G-green 绿色,B-blue 蓝色),通常所说的颜色顺序是 RGB,但是openCV由于历史原因,它的彩色像素中的顺序不是RBG而是BGR。不管是RGB还是 BGR,彩色图片的像素用数字表示都是(0-255,0-255,0-255)

黑白图片

如果一个图片是黑白的图片,那么每个像素只需要用一个数字来表示 (0-255),0表示黑色,255表示白色。

图片的像素解析

对图片处理就是对图片每个像素的处理,图片的像素可以用一个列表来表示。

img[100, 100]

列表的第1个数字(下标为0)表示的是图片的 x 轴的像素位置,列表的第2个数字(下标为1)表示的是图片的 y 轴的像素位置,img[100, 100] 表示的是:x轴第100,y轴第100的那1个像素。

结合print的用法为:print(img[100, 100])

案例:

import cv2
img = cv2.imread('./img/dog.jpeg', 1)
print(img[100, 100])  # x轴第100、y轴第100的那个像素的BGR值

结果为:

[ 52 113  77]

案例打印的结果为该图片 x 轴第100、 y 轴第100的那个像素的 BGR 的值,52是B的值,113是G的值,77是R的值。

img[100, 100, 0]

表的第1个数字(下标为0)表示的是图片的 x 轴的像素位置,列表的第2个数字(下标为1)表示的是图片的 y 轴的像素位置,列表的第3个数字(下标为2)表示的是BGR的信息。

第3个数字如果是 0 ,表示的是B (blue-蓝色)的值(0~255);第3个数字如果是 1 ,表示的是G (green-绿色)的值(0~255);第3个数字如果是 2 ,表示的是 R(red-红色)的值(0~255);

结合print的用法为:print(img[100, 100, 0])

案例:

import cv2
img = cv2.imread('./img/dog.jpeg', 1)

print(img[100, 100, 0])  # x轴第100、y轴第100的那个像素的BGR值中的第1位的B的值
print(img[100, 100, 1])  # x轴第100、y轴第100的那个像素的BGR值中的第2位的G的值
print(img[100, 100, 2])  # x轴第100、y轴第100的那个像素的BGR值中的第3位的R的值

结果为:

52
113
77

打印的第1个结果 52 指的是该图片 x 轴第100、 y 轴第100的那个像素的BGR值中的第 1 位,也就是 B 的值;

打印的第2个结果 113 指的是该图片 x 轴第100、y 轴第100的那个像素的BGR值中的第 2 位,也就是 G 的值;

打印的第3个结果 77 指的是该图片 x 轴第100、y 轴第100的那个像素的BGR值中的第 3 位,也就是 R 的值;

原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/opencvchangyongcaozuozhitupiandejibencaozuo/.html

(0)
打赏 微信扫一扫 微信扫一扫
朋远方的头像朋远方
上一篇 2022年9月8日 上午12:03
下一篇 2022年9月8日 上午9:58

相关推荐

发表回复

登录后才能评论