【OpenCV】图像读取及格式转换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本节介绍了 OpenCV对图像的读取及格式转换,主要内容包括:

  • 图像在计算机中的存储形式
  • 图像读取与延时操作
  • 图像的各种输出形式

一、图像在计算机中的存储形式

1. BGR 图像

生活中拍摄的图像格式为RGB,而在OpenCV中习惯用BGR格式,调节3种颜色的值可以构成不同颜色的像素点。BGR为三通道图像,每个通道的取值范围均为0~255。

2. 灰度图像

灰度图像是仅有一个通道来控制的单通道图像,灰度值的取值范围为0~255,0表示黑色;255表示白色。

3. HSV图像

HSV为三通道图像,

  • H:色彩或色度,取值范围是0~179。

  • S:饱和度,取值范围是0~255。

  • V:亮度,取值范围是0~255。

4. 二值图

二、图像读入与读出

1. 图像读入

cv2.imread(filename, flag=1) # filename:读入图像的地址;flag:设置读取格式(0:灰度图 1:BGR)

此处flag的另一种形式:cv2.IMREAD_COLOR(BGR形式),cv2.IMREAD_GRAYSCALE(灰度图)

import cv2
import numpy as np
img = cv2.imread('1.jpg') # 默认BGR三通道形式

2. 图像保存

cv2.imwrite(filename, img) # filename:保存图像的名称;img:保存图像的矩阵形式
import cv2
import numpy as np
img = cv2.imread('1.jpg')
cv2.imwrite('1.jpg', img) # 此处注意加后缀(.png/.jpg/...)

3. 图像展示

cv2.imshow(name, img) # name:展示窗口的名称;img:图像的矩阵形式
import cv2
import numpy as np
img = cv2.imread('1.jpg', cv2.IMREAD_COLOR)
cv2.imshow('image', img)
cv2.waitKey(0) # cv2.waitKey(time) 在time时间内,计算机会等待命令。0表示停在当前帧。
cv2.imwrite('1.jpg', img) 
# 如果使用了cv2.imshow函数,后面一定要进行销毁窗口
cv2.destroyAllWindows()

此处跟随cv2.show函数一同出现的还有延时函数cv2.waitKey函数,防止窗口自动关闭。

4. 图像读取演示

这里介绍控制显示窗口的大小,函数为cv2.namedWindow,其初始设定标签为cv2.WINDOW_AUTOSIZE,将其改为cv2.WINDOW_NORMAL后就能控制窗口大小。

import cv2
import numpy as np
img = cv2.imread('1.jpg', cv2.IMREAD_COLOR)
cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('image', img)
cv2.waitKey(0) 
cv2.imwrite('1.jpg', img) 
cv2.destroyAllWindows()

5. 图像属性:行数、列数、通道数

print(img.shape[0]) # 行数
print(img.shape[1]) # 列数
print(img.shape[2]) # 通道数
print(img.shape[3]) # 整个成员

Guess you like

Origin blog.csdn.net/qq_41454577/article/details/129308617