cv.imread()函数

本文介绍了OpenCV中用于读取图像的cv2.imread()函数,包括其参数意义和使用示例。通过不同标志,可以读取彩色、灰度图像,甚至保留alpha通道。读取的图像以多维数组形式存储,维度分别对应高度、宽度和通道数。默认情况下,OpenCV读取的图像通道顺序为BGR,并且默认格式为HWC。
摘要由CSDN通过智能技术生成

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 cv2

img = 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 cv2

img = 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]]]
  1262
  1288
  3

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值