opencv中用Resize和圖像金字塔改變尺寸的區別

resize和圖像金字塔(pydown、pyup)都可以改變圖像的大小。具體操作和區別如下:


resize

C++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )

Python: cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

參數:

src:原圖

dst:目標圖

dsize :dst圖的size,當爲零時,按照dsize = Size(round(fx*src.cols), round(fy*src.rows))計算

fx:水平方向的比例。當爲零,按照{(double)dsize.width/src.cols}計算

fy:垂直方向的比例。當爲零,按照{(double)dsize.height/src.rows}計算

interpolation:插值方式。INTER_NEAREST、INTER_LINEAR、INTER_AREA 、INTER_CUBIC、INTER_LANCZOS4

其中,dsize和fx,fy不能同時爲零。resize可以用於生成任意尺寸大小。常用於歸一化。


圖像金字塔

C++: void pyrDown(InputArray src, OutputArray dst, const Size& dstsize=Size())
Python: cv2.pyrDown(src[, dst[, dstsize]]) → dst

使用pyrDown,先經過5*5的高斯濾波,輸出圖像寬度和高度應是輸入圖像的一半

C++: void pyrUp(InputArray src, OutputArray dst, const Size& dstsize=Size())
Python: cv2.pyrUp(src[, dst[, dstsize]]) → dst

使用pyrUp輸出圖像寬度和高度應是輸入圖像的2倍

圖像金字塔輸出圖像長寬比基本不變




發佈了28 篇原創文章 · 獲贊 11 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章