成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

OpenCV3 Python3圖片旋轉(zhuǎn)處理詳解

圖片處理中經(jīng)常用到的旋轉(zhuǎn)操作,在OpenCV3中提供了`getRotationMatrix2D`和`warpAffine`函數(shù),用于計(jì)算仿射矩陣M以及進(jìn)行仿射變換。雖然仿射矩陣聽(tīng)起來(lái)很復(fù)雜,但在實(shí)際應(yīng)

圖片處理中經(jīng)常用到的旋轉(zhuǎn)操作,在OpenCV3中提供了`getRotationMatrix2D`和`warpAffine`函數(shù),用于計(jì)算仿射矩陣M以及進(jìn)行仿射變換。雖然仿射矩陣聽(tīng)起來(lái)很復(fù)雜,但在實(shí)際應(yīng)用中只需掌握相關(guān)參數(shù)即可。

Opencv旋轉(zhuǎn)原理

利用Opencv進(jìn)行圖片旋轉(zhuǎn),從數(shù)學(xué)角度來(lái)看就是通過(guò)仿射矩陣進(jìn)行變換。具體的原理可以通過(guò)搜索“仿射矩陣 旋轉(zhuǎn)”來(lái)深入了解。簡(jiǎn)單來(lái)說(shuō),任意的仿射變換可以表示兩幅圖像之間的關(guān)系,包括旋轉(zhuǎn)(線性變換)、平移(向量加)和縮放操作(線性變換)。因此,如果我們知道兩幅圖像A、B之間的仿射矩陣M(通常用2X3矩陣表示),就可以通過(guò)仿射變換將A轉(zhuǎn)變成B。

Opencv旋轉(zhuǎn)步驟

1. 使用`getRotationMatrix2D`計(jì)算M矩陣或者使用`getAffineTransform`;

2. 使用`warpAffine`進(jìn)行仿射變換;

3. 顯示結(jié)果。

getRotationMatrix2D參數(shù)說(shuō)明

- `center`: 旋轉(zhuǎn)的中心點(diǎn),一般設(shè)為圖片中心;

- `angle`: 旋轉(zhuǎn)的角度;

- `scale`: 縮放因子。

warpAffine參數(shù)說(shuō)明

- `src`: 源圖像;

- `M`: 仿射矩陣;

- `dsize`: 輸出尺寸;

- `flags`: 插值算法,默認(rèn)為`_LINEAR`;

- `borderMode`: 邊界處理方式;

- `borderValue`: 外邊界顏色,默認(rèn)為黑色。

示例代碼

```python

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

img ('')

rows, cols, channel

M ((0, 0), 0, 0.5) 旋轉(zhuǎn)中心點(diǎn)為坐標(biāo)(0,0)

dst cv.warpAffine(img, M, (cols, rows)) 默認(rèn)黑色填充

旋轉(zhuǎn)60度并修改填充色

M ((cols/2, rows/2), 60, 0.5) 中心點(diǎn)(cols/2, rows/2),角度60

dst cv.warpAffine(img, M, (cols, rows), borderValue(255,255,255)) 修改填充色

('img', dst)

cv.waitKey(0)

```

插值方法選擇

根據(jù)實(shí)際需求設(shè)置插值方法,可以更好地處理旋轉(zhuǎn)后的圖像效果。在不同場(chǎng)景下選擇合適的插值方法非常重要。

通過(guò)以上介紹,希望能幫助您更好地理解OpenCV3 Python3圖片旋轉(zhuǎn)處理過(guò)程,并靈活運(yùn)用于實(shí)際項(xiàng)目中。

標(biāo)簽: