cv2.resize踩坑:图片通道顺序

本文介绍了在使用OpenCV的cv2.resize()函数缩放图片时,如何正确设置输出尺寸dsize。通过示例展示了dsize顺序与img.shape顺序的不同,以及它如何影响缩放结果。在处理宽1280,高1024的图片时,按照预期调整dsize顺序可以得到正确缩放比例的图片。
摘要由CSDN通过智能技术生成

  在使用opencv-python中的cv2.resize()函数进行图片缩放时,输入参数中的dsize,即输出图片的大小,顺序应为(w, h),和cv2.imread()读入图片的顺序相反,cv2.imread()读入图片的通道顺序为(h, w, c)。

例如使用opencv处理一张宽1280,高1024的图片:

import cv2

dsize = (640, 640)

img = cv2.imread("demo.jpg")
print(img.shape)

r = min(dsize[0] / img.shape[0], dsize[1] / img.shape[1])
simg1 = cv2.resize(img, (int(img.shape[0]*r), int(img.shape[1]*r)), interpolation=cv2.INTER_LINEAR)
print(simg1.shape)
simg2 = cv2.resize(img, (int(img.shape[1]*r), int(img.shape[0]*r)), interpolation=cv2.INTER_LINEAR)
print(simg2.shape)

输出结果为:

(1024, 1280, 3)
(640, 512, 3)
(512, 640, 3)

显然,simg2的大小符合预期。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值