OpenCV-图片属性、保存图片

图片的基本属性、读取图片并转换成其他格式保存。

图片的基本属性:

1
2
3
4
5
6
7
8
9
10
11
12
13
import cv2 as cv
import numpy as np

# 输出图片属性
def get_img_info(img):
print(type(img)) # 显示图片类型 numpy类型的数组 <class 'numpy.ndarray'>
# 图像矩阵的shape属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵行数,第二个元组表示矩阵列数,第三个元素是3,表示像素值由光的三原色组成 (878, 1242, 3)
print(img.shape)
print(img.size) # 图像大小 3271428 bit = 878*1242*3*8/8
print(img.dtype) # 图像类型

pixel_data = np.array(img) # 获取像素数据
print(pixel_data) # 打印像素数据(是一个矩阵)

图片写入:

1
2
3
4
import cv2

img = cv2.imread('01image.jpg', 1)
cv2.imwrite('02image.jpg', img) # 参数1 写入的文件名称;参数2 图片数据

保存图片为不同质量:

1
2
3
4
5
import cv2

img = cv2.imread('01image.jpg', 1)
cv2.imwrite('03image.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 50]) # 0~100 有损压缩
cv2.imwrite('03-2image.png', img, [cv2.IMWRITE_PNG_COMPRESSION,0]) # 0~9

说明:

jpg 有损压缩,png 无损压缩。

png 还可以修改透明度属性,但是 jpg 不可以修改,因为 png 中还保存了图片的 alpha 通道数据。

对于 jpg 来说,数字越小,压缩比越高,图片质量损失严重,压缩范围 0~100。

对于 png 来说,数字越小,压缩比越低,压缩范围 0~9。


文章作者: ahoj
文章链接: https://ahoj.cc/2019/07/OpenCV-图片属性、保存图片/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ahoj 的小本本