图像放大和缩小
-
- 1. 图像的缩小
- 2. 图像的放大
- 3. 用python实现图像的缩放
-
- 3.1 方法一:PIL库实现
- 3.2 方法二:cv库实现
1. 图像的缩小
图像缩小分为按比例缩小和不按比例缩小两种。图像向缩小后,因为承载的信息量减少,所以画布可相应缩小。图像缩小实际上就是对原图数据进行挑选和处理,获得期望缩小尺寸的数据,并尽量保持原有特征不丢失。最简单的方法就是等间隔地选取数据。
设原始图像大小为MN,缩小为k1Mk2N,(k1,k2 均小于1)。
设原始图像为F(i,j),i=1,2,…,M j=1,2,…,N;
压缩后的图像为G(x,y),,x=1,2,…,k1M y=1,2,…,k2N;
则有G(x,y) = F(c1x,c2y),其中c1 = 1/k1,c2=1/k2;
示例:档F(i,j)为6X6,k1=0.6,k2=0.75时,有
3. 用python实现图像的缩放
3.1 方法一:PIL库实现
相关库PIL,PIL(Python Imaging Library,图像处理库)提供了通用的图像处理功能,主要包括图像存储、图像显示、格式转换以及基本的图像处理操作。
应用PIL下Image类:
变换结果 | 数据属性以及内存地址 |
---|---|
src | <PIL.PngImagePlugin.PngImageFile image mode=RGB size=512×512 at 0x20AF35975C8> |
resized | resized: <PIL.Image.Image image mode=RGB size=307×384 at 0x20AF4266AC8> |
thumbnail | thumbnail: <PIL.PngImagePlugin.PngImageFile image mode=RGB size=307×307 at 0x20AF35975C8> |
thumbnail 缩略图是 络开发或图像软件预览常用的一种基本技术。thumbnail 方法直接修改原图为缩略图,不会另外创建新内存。resized会在创建新的内存保存缩放数据。
3.2 方法二:cv库实现
cv2.resize(src,dsize[,dst[,fx[,fy[,interpolation]]]]) -> dst
interpolation – 插值方法。共有5种:
1)INTER_NEAREST – 最近邻插值法
2)INTER_LINEAR – 双线性插值法(默认)
3)INTER_AREA – 基于局部像素的重采样(resampling using pixel area relation)。对于图像抽取(image decimation)来说,这可能是一个更好的方法。但如果是放大图像时,它和最近邻法的效果类似。
4)INTER_CUBIC – 基于4×4像素邻域的3次插值法
5)INTER_LANCZOS4 – 基于8×8像素邻域的Lanczos插值
实现缩放:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!