cozmo学习笔记2-数字图像缩放

在cozmo python sdk中02_cozmo_face的示例01中,看到有这样一段

image_settings = [(sdk_png, Image.BICUBIC),
                  (hello_png, Image.NEAREST)]

后面的Image.BICUBIC Image.NEAREST不知道是干什么用的,就找了一下资料。


简单地说,是用来缩放图片的。

这个函数属于Python的PIL图像处理库的Image模块,关于这个库具体的介绍详见博主 lyrichu的博客python PIL 图像处理库简介(一),文中提到

  • thumbnail(size,resample)(创建缩略图)
>>> im.thumbnail((50,50),resample=Image.BICUBIC)
>>> im.show()

上面的代码可以创建一个指定大小(size)的缩略图,需要注意的是,thumbnail方法是原地操作,返回值是None。第一个参数是指定的缩略图的大小,第二个是采样的,有Image.BICUBICPIL.Image.LANCZOSPIL.Image.BILINEARPIL.Image.NEAREST这四种采样方法。默认是Image.BICUBIC

至于BICUBIC是什么,又是什么原理,和图像缩放有什么关系,我在博主nandina179的博文双三次插值算法(bicubic interpolation)与图形学和计算方法的关系中找到了比较详尽的关于来历的解释。

双三次插值算法(bicubic interpolation),将某个像素点向外拓展成16个像素点,然后通过这16个像素点和原像素点的某种影响关系决定这16个像素点,以实现图像的缩放。

而PIL.Image.NEAREST是指缩放为最低质量,在cozmo上的直观体现就是e基本都被缩放成c了。


参考:

1.lyrichu,python PIL图像处理库简介(一),https://www.cnblogs.com/lyrichu/p/9124504.html

2.nandina179,双三次插值算法(bicubic interpolation)与图形学和计算方法的关系,https://blog.csdn.net/nandina179/article/details/85330552

3.菜鸟不倒,图像缩放之双三次插值法,https://blog.csdn.net/qq_29058565/article/details/52769497

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章