計算機視覺基礎系列(python與opencv的操作與運用/tensorflow的基礎介紹)(十)---圖片的仿射變換和旋轉

一,圖片的仿射變換

圖片的仿射變換,需要根據圖片的左上角,右下角及右上角來進行變換。

解析來就是代碼部分:

import cv2
import numpy as np
img = cv2.imread('1.jpg', 1)
info = img.shape
cv2.imshow('src', img)
height = info[0]
width = info[1]
# 尋找圖片的左上角,左下角和右上角
src = np.float32([[0, 0], [0, height-1], [width-1, 0]])
dst = np.float32([[50, 50], [300, height-200], [width-300, 100]])
# 組合兩個矩陣
matdst = cv2.getAffineTransform(src, dst)       # 矩陣組合API,兩個參數要記住
findst = cv2.warpAffine(img, matdst, (width, height))   # 仿射變換API
cv2.imshow('image', findst)
cv2.waitKey(0)

仿射變換的結果是:

二、圖片的旋轉

圖片的旋轉,首先,定義一個旋轉矩陣;旋轉的API裏面有三個參數,第一個是中心點,第二個是旋轉的角度,第三個是縮放的係數,爲何旋轉要縮放呢:因爲旋轉之後可能會超出圖片的範圍,導致圖片顯示不完整。

源代碼是:

import cv2
import numpy as np
img = cv2.imread('1.jpg', 1)
info = img.shape
cv2.imshow('src', img)
height = info[0]
width = info[1]
src = cv2.getRotationMatrix2D((height*0.5, width*0.5), 45, 0.5)
dst = cv2.warpAffine(img, src, (height, width))
cv2.imshow('dst', dst)
cv2.imshow(0)

得出的結果是:

 

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