opencv怎么實(shí)現(xiàn)圖片縮放和旋轉(zhuǎn)

小億
104
2023-12-01 13:02:23
欄目: 編程語言

在OpenCV中,可以使用cv2.resize()函數(shù)來實(shí)現(xiàn)圖片的縮放操作。該函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是要縮放的圖片,第二個(gè)參數(shù)是目標(biāo)圖片的大小??梢酝ㄟ^設(shè)置第二個(gè)參數(shù)來確定縮放后的圖片大小。

例如,將一張圖片縮小為原來的一半大小:

import cv2

# 讀取圖片
img = cv2.imread('image.jpg')

# 縮放圖片
resized_img = cv2.resize(img, (img.shape[1] // 2, img.shape[0] // 2))

# 顯示原始圖片和縮放后的圖片
cv2.imshow('Original Image', img)
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

另外,可以使用cv2.getRotationMatrix2D()函數(shù)來創(chuàng)建一個(gè)旋轉(zhuǎn)矩陣,然后使用cv2.warpAffine()函數(shù)來對(duì)圖片進(jìn)行旋轉(zhuǎn)操作。

例如,將一張圖片逆時(shí)針旋轉(zhuǎn)90度:

import cv2
import numpy as np

# 讀取圖片
img = cv2.imread('image.jpg')

# 獲取旋轉(zhuǎn)矩陣
M = cv2.getRotationMatrix2D((img.shape[1] // 2, img.shape[0] // 2), 90, 1)

# 旋轉(zhuǎn)圖片
rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))

# 顯示原始圖片和旋轉(zhuǎn)后的圖片
cv2.imshow('Original Image', img)
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上代碼中,getRotationMatrix2D()函數(shù)接受三個(gè)參數(shù),分別是旋轉(zhuǎn)中心坐標(biāo)、旋轉(zhuǎn)角度和縮放因子。warpAffine()函數(shù)接受三個(gè)參數(shù),分別是要旋轉(zhuǎn)的圖片、旋轉(zhuǎn)矩陣和目標(biāo)圖片大小。

0