opencv:python幾何縮放

 

1.實例1,二維數組行列變化

import cv2
import numpy as np
img=np.ones([2,4,3],dtype=np.uint8)
size=img.shape[:2]  #獲取img的行數和列數
rst=cv2.resize(img,size)
print("img.shape=\n",img.shape)
print("img=\n",img)
print("rst.shape=\n",rst.shape)
print("rst=\n",rst)

解釋:第一個數組2行4列,第二個4行2列,從結果來看,resize的參數順序先是列,然後是行,這個正好與shape相反

 

2.實例2

import cv2
img=cv2.imread("D:/alang.jpg");
rows,cols=img.shape[:2]
size=(int(cols*0.9),int(rows*0.5))
rst=cv2.resize(img,size)
print("img.shape=",img.shape)
print("rst.shape=",rst.shape)

從程序可以看出:

● 列數變爲原來的0.9倍,計算得到481×0.9=432(取整)。

● 行數變爲原來的0.5倍,計算得到493×0.5=246(取整)。

3.實例3

import cv2
img=cv2.imread("D:/alang.jpg")
rst=cv2.resize(img,None,fx=2,fy=0.5)
print("img.shape=",img.shape)
print("rst.shape=",rst.shape)

從程序可以看出:

● fx進行的是水平方向的縮放,將列數變爲原來的2倍,得到481×2=962。

● fy進行的是垂直方向的縮放,將行數變爲原來的0.5倍,得到493×0.5=246。

 

 

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