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

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