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。

 

 

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