過去常常使用 OpenCV 的各種功能,包含轉灰階或是放大縮小。放大縮小雖然大概知道他的算法邏輯,也看得出來放大縮小後和原始圖片的差異,但很難說出不同方法實際上有那些差異。因此!今天我決定把這幾個常用的方法進行實作然後進行數值上的比較。
實驗條件
接下來會說明今天的實驗條件,包含參賽的 resize 方法。
Resize 倍率
- 放大:
2x,5x,10x - 縮小:
0.5x,0.2x,0.1x
Resize 方法
以下是今天參賽的 resize 方法以及他們分別會進行何種縮放。
cv2.INTER_LINEAR:bothcv2.INTER_AREA:downscalecv2.INTER_CUBIC:upscalecv2.INTER_LANCZOS4:upscalecv2.INTER_NEAREST:both
比較方法
對原始圖片進行每種方法的縮放,共會產生 21 張經過縮放後的圖片,接著以倍率和方法為單位建立視覺化圖表進行比較。
Mean RGB/LAB:亮度、色彩偏移分析Sharpness:Laplacian 銳利度Texture:Sobel 邊緣強度Entropy:資訊熵,細節豐富程度
實驗結果展示
以下會根據放大縮小的倍率為一節的單位展示圖表分析,原圖可以參考 GitHub
0.1x





0.2x





0.5x





2x





5x





10x





結尾
有興趣的各位可以到我的GitHub repo逛逛,看看有沒有可以補充的。