python读取图片的几种方式以及图像宽和高的存储顺序

1、opencv

2、imageio

3、matplotlib

4、scipy


# coding:utf-8

import cv2
import imageio
from scipy import misc
from PIL import Image
from matplotlib import pyplot as plt

image_path = "./images/000011.jpg"

# 使用pillow读取图片,获取图片的宽和高
img_pillow = Image.open(image_path)
img_width = img_pillow.width  # 图片宽度
img_height = img_pillow.height  # 图片高度
print("width -> {}, height -> {}".format(img_width, img_height))

img_cv = cv2.imread(image_path)
img_imageio = imageio.imread(image_path)
img_scipy = misc.imread(image_path)
img_matplot = plt.imread(image_path)

print(img_cv.shape)
print(img_imageio.shape)
print(img_scipy.shape)
print(img_matplot.shape)

输出结果如下:

width -> 2000, height -> 1333
(1333, 2000, 3)
(1333, 2000, 3)
(1333, 2000, 3)
(1333, 2000, 3)

注意事项:读取出的图像矩阵的shape是按 高度、宽度、通道数 这个顺序,图像宽度是第一个维度,其实也就是返回的图像矩阵的行数、列数、通道数。

补充:

在图像处理中通常需要将图像按照宽、高、通道顺序进行存放,可以使用transpose方法进行转换:

# 交换0 1 坐标轴的数据,也就是交换高和宽的顺序为宽和高
img_transpose = img.transpose(1, 0, 2)
print(img_transpose.shape)

输出结果如下:

(2000, 1333, 3)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值