文章目录

  • 前言
  • 一、cv2的安装
  • 二、使用步骤
  • 1.引入库
  • 2.使用cv2.imread()读取图片
  • 3.BGR与RGB之间的转换
  • 总结



前言

此系列文章开始写于2021.04.22,以次记录学习生活
cv2时进行图像处理经常使用的库


一、cv2的安装

使用的是镜像安装,比较快

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

二、使用步骤

1.引入库

代码如下(示例):

import cv2

2.使用cv2.imread()读取图片

代码如下(示例):
注:路径中不能存在中文,可解决,请参考另一篇文章

import cv2
img = cv2.imread("./img_1.png")  #./img_1.png为需要读取图片的路径
cv2.imshow("img_1",img)#第一个参数为窗口名称,第二个参数为要显示的图片
cv2.waitKey(0)#必不可少,少了就无法看到显示的图片,此句的主要目的是一直等待,直到有按键按下,才会销毁创建的界面(前提时鼠标在界面上)

img接受读取的数据。

这里我们就需要了解一下这个imread()函数的参数了
imread为image read的缩写,即图像读取的意思
imread(const string& filename,int flag);
参数一:const string& filename 传入参数为文件名字。
  支持图片格式:
  1、windows位图:*.bmp,*.dib;
  2、JPEG文件:*.jpg,*.jpe,*.jpeg;
  3、JPEG 2000 文件;
  4、PNG 图片:*.png;
  5、便携文件格式;
  6、Sun rasters;
  7、TIFF文件;
参数二:int flag参入参数
	cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
	cv2.IMREAD_GRAYSCALE:读入灰度图片
	cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
	也可以写成如下:
  取值0,将图像转化为灰图;
  取值2,原深度图像;
  取值4,原颜色图像;
  取值1为彩图
  一般来说:取值<0 Alpha通道加载图像,=0为灰图。

简要说明:cv2.imread在不加第二个参数的情况下默认将图片转换成了一个三维数组,最里面的一维代表的是一个像素的三个通道(BGR)的灰度值,第二个维度代表的是每一行所有像素的灰度值,第三个维度,也就是最外面的一个维度代表的是这一张图片
cv2.imread()读取的是B、G、R(红、绿、蓝)一般取值范围0~255


经过测试发现imread()读取图片返回值的长度为图片的高

通过cv2.imread()读取图片
经过测试发现读取图片的长度为高(宽)
140*146  长度为146
450*165 长度为165

3.BGR与RGB之间的转换

BGR是计算机使用最早的一种,RGB是后来出现的
小编也整理了一下,大概有四种方式,可以实现
一、

path='./img_1.png'
image = cv2.imread(path)
cv2.imshow("image",image)
cv2.waitKey(0)
# 将图像通道分离开。
b, g, r = cv2.split(image)
# 以RGB的形式重新组合。
rgb_image = cv2.merge([r, g, b])
skimage.io.imshow(rgb_image)
io.show()

二、

#BGR->RGB
import cv2
BGR = cv2.imread("./img_1.png")
RGB = cv2.cvtColor(BGR, cv2.COLOR_BGR2RGB)
-----------------------------------------------
#RGB->BGR
import imageio
RGB=imageio.imread('./img_1.png')
BGR = cv2.cvtColor(RGB, cv2.COLOR_RGB2BGR)

三、

#BGR->RGB 
import cv2
BGR = cv2.imread("./img_1.png")
RGB = BGR[...,::-1]
#之后的操作
---------------------------------------
# RGB->GBR 
import imageio
RGB=imageio.imread('./img_1.png')
BGR=RGB[...,::-1]
#之后的操作

四、

# BGR->RGB  
import cv2
BGR = cv2.imread("./img_1.png")
RGB = BGR[...,[2,0,1]]
#之后的操作
------------------------------------------
# RGB->GBR 
import imageio
RGB=imageio.imread('./img_1.png')
BGR=RGB[...,[2,1,0]]
#之后的操作

总结

经过小编介绍,已经初步了解了,imread()这个函数的组成,及其基本操作了,以及如何进行RGB和BGR之间的转换了,之前小编写了一份比较综合的,然后看了几遍,发现有点乱,排版也有问题,就打算拆开来写了

本篇文章完毕于
------2021.04.22 17:50