在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.BICUBIC
,PIL.Image.LANCZOS
,PIL.Image.BILINEAR
,PIL.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