欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

用open cv 读取图像参数

程序员文章站 2022-03-11 09:22:53
用open cv 读取图像参数读取图像的RGB通道import cv2img = cv2.imread(‘C:/Users/kyle/Desktop/002.jpg’)cv2.namedWindow(‘image’, 0)cv2.imshow(‘image’, img)首先读入图像。下面我们可以用一个函数来将三个通道分离:b, g, r = cv2.split(img)这样就可以将三个通道的图像分别存在b,g,r这三个变量中,然后我们让这三个图片显示出来:cv2.imshow(“b”,...

用open cv 读取图像参数

读取图像的RGB通道

import cv2
img = cv2.imread(‘C:/Users/kyle/Desktop/002.jpg’)
cv2.namedWindow(‘image’, 0)
cv2.imshow(‘image’, img)

img = cv2.imread('C:/Users/kyle/Desktop/002.jpg')

括号里还可以添加一个参数:
cv2.IMREAD_UNCHANGED - 以 原图形式 读入
cv2.IMREAD_GRAYSCALE - 以 灰度形式 读入
cv2.IMREAD_COLOR - 以 彩色形式 读入
例如:
img = cv2.imread(‘C:/Users/kyle/Desktop/002.jpg’, cv2.IMREAD_GRAYSCALE);

首先读入图像。
下面我们可以用一个函数来将三个通道分离:
b, g, r = cv2.split(img)
这样就可以将三个通道的图像分别存在b,g,r这三个变量中,然后我们让这三个图片显示出来:
cv2.imshow(“b”, b)
cv2.imshow(“g”, g)
cv2.imshow(“r”, r) 演示一下结果
用open cv 读取图像参数
但是有一个问题是这三个通道的图片是不能缩放的,因为我们没有给这三个图片加上一个“namewindow”
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201202214313144.png

cv2.namedWindow('image', 0)

因为上面的代码加了这个,所以原图是可以缩放的。

将三个通道分开后,我们自然也可以将他们合回去:
imgbgr = cv2.merge([b, g, r])
其中,imgbgr是新生成的图像的名称,cv2.merge()是合成函数,中括号里的三个值是三个通道的名称。
值得注意的是 函数里的三个变量如果只有两个是会报错的,但是可以写两个一样的通道,我们可以试试结果:
imgbgr = cv2.merge([r, g, r])
用open cv 读取图像参数
imgbgr = cv2.merge([r, r, g])
用open cv 读取图像参数
所以将三个通道以不同方式组合会得到不同的效果。

图像像素的获取

首先我们可以直接用print将图像像素打印出来:(默认顺序是 BGR)
用open cv 读取图像参数(下面还有很长一串)
其实这样我们看不出各个像素的位置,但我盲猜是一行一行打印像素,有两个理由
1.图中有三重中括号,最里面应该是一个像素点的rgb,第二层是一行像素的集合,最外面是整个图像的像素集合。
2.图中显示的三个像素值是一样的,而我用的图最上面是天空,水平方向的像素基本是一样的。

得到某个坐标的像素

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201202221734221.png

px = img[0, 0]
print(px)

像素值可以自己赋值修改。
(这里有点C语言指针的感觉~~)
用open cv 读取图像参数
(这证明我上面的猜测是正确的,,,而且知道了最左上角的坐标是[0,0])
也可以只显示一个通道的像素值:

px = img[0, 0, 0]        
0———B,1————G,2————R

但总的来说,这个东西其实并没有什么实质性的作用,如果真的进行运算等操作,肯定要将这些数据存放在数组里(这个我还没学,等下再写)。

图像分辨率的获取

同样的这也非常简单,函数是:
print(img.shape)
用open cv 读取图像参数
这说明图像纵向像素是380,横向像素是892,模式是RGB;

明天继续~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本文地址:https://blog.csdn.net/kyle_sblogs/article/details/110500598