当前位置: 代码迷 >> 综合 >> cv.imread()函数
  详细解决方案

cv.imread()函数

热度:27   发布时间:2023-12-26 20:14:22.0

cv.imread()函数

整理下cv2.imread()函数的笔记

使用函数cv2.imread(filepath,flags)读入一副图片
filepath:要读入图片的完整路径
flags:读入图片的标志
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可以直接写1
cv2.IMREAD_GRAYSCALE:读入灰度图片,可以直接写0
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可以直接写-1
cv2.imread()读取图片后以多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定
下面的示例均基于下面这张图片
在这里插入图片描述
在这里插入图片描述
从详细信息可以看到,1.jpg含有4个通道(R G B+alpha)即位深为32,每一个通道占8位

查看cv.imread()的参数

import cv2img = cv2.imread('1.jpg', cv2.IMREAD_UNCHANGED)            #包含alpha通道
print(img.shape)img = cv2.imread('1.jpg', cv2.IMREAD_COLOR)                     #彩色图像
print(img.shape)img = cv2.imread('1.jpg', cv2.COLOR_BGR2GRAY)                   #颜色转换空间
print(img.shape)img = cv2.imread('1.jpg', cv2.COLOR_RGB2GRAY)
print(img.shape)img = cv2.imread('1.jpg', 1)                                                         #彩色图像
print(img.shape)img = cv2.imread('1.jpg', cv2.IMREAD_GRAYSCALE)                         #灰度图像
print(img.shape)img = cv2.imread('1.jpg', 0)                                                                 #灰度图像
print(img.shape)

结果为:

(1262, 1288, 4)
(1262, 1288, 3)
(1262, 1288, 3)
(1262, 1288, 3)
(1262, 1288, 3)
(1262, 1288)
(1262, 1288)

由上面结果可以看出:

cv2.imread()的默认格式为bgr

cv2.imread()的默认通道格式HWC

接下来查看具体读取的格式:

import cv2img = cv2.imread('1.jpg', cv2.IMREAD_COLOR)
print(img.shape)
print(img)
print(img.shape[0])        #1262
print(img.shape[1])        #1288
print(img.shape[2])        #3

结果为:

(1262, 1288, 3)
[[[255 255 255][255 255 255][255 255 255]...[255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255]...[255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255]...[255 255 255][255 255 255][255 255 255]]...[[255 255 255][255 255 255][255 255 255]...[255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255]...[255 255 255][255 255 255][255 255 255]][[255 255 255][255 255 255][255 255 255]...[255 255 255][255 255 255][255 255 255]]]126212883

可以看出cv2.imread()函数是以多维数组形式存储的,此时得到的这个三维数组就是一个立方体,三维数组的第一维就是图片的高度,第二维是图片的宽度,第三维就是每个像素点在BGR通道的灰度值
img.shape[0]的值为图片的高度1262
img.shape[1]的值为图片的宽度12688
img.shape[3]的值为图片的通道3

  相关解决方案