python图像降采样,【图像处理】——改变图像的大小(降采样&重采样)

目录

我们常常需要将图片变成一样大小的图片,这样利于整理和批量操作,这时候就需要使用到调整图像的大小了

这里需要使用到的是重采样和降采样,重采样用在拉伸图像上,增加的像素点的像素值是通过插值法来得到的,最常用的方法就是将接近的像素点的值复制过去;降采样就是缩小图片时按照一定的距离进行选取像素点

先看看图片的大小:

import cv2

image=cv2.imread('C:/……/a.jpg')

a = image.shape

print(a)

其中,a[0]=371表示图片高度,a[1]=500表示图片宽度,a[2]=3表示图片是3通道图片。

18b845e9363da5a1415898f838e40236.png

1、拉伸图片——重采样

改变图片大小为500像素高度和371像素的宽度:

p0=cv2.resize(image,(371,500),interpolation=cv2.INTER_CUBIC)

这样,图片比例被破坏了,感觉恐龙被上下拉长了。

c00577341ac0a195ab8018dd80a2d54d.png

2、缩小图片

缩放图片的大小,需要增加或删除某些像素。但是,增加的像素的像素值,不能凭空产生,需要根据临近像素值,近似地给出增加的像素的值。

1)三次插值法cv2.INTER_CUBIC

如果需要按比例缩放图片,可以这样:

p1=cv2.resize(image,(int(a[1]/1.5),int(a[0]/1.5)),

interpolation=cv2.INTER_CUBIC)

c6d42d888f79b9592e7ba3de5a967042.png

2)重采样插值法cv2.INTER_AREA

给增加的像素赋值,需要用插值的方法。而这种方法并不唯一。比如,上面介绍了三次插值法(cv2.INTER_CUBIC)和重采样插值法(cv2.INTER_AREA)。

p2=cv2.resize(image,(int(a[1]/1.5),int(a[0]/1.5)),

interpolation=cv2.INTER_AREA)

5ba1e231e907f030518e16c389cf78af.png

3)上面两种方法的差值

你可能觉得p1和p2是一样的,但不是:

cv2.imshow('a',p1-p2)

cv2.waitKey(0)

c3a36af41d52ac08e2bce4e1ce49371b.png

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值