翻轉也稱鏡像,是指将圖像沿軸線進行軸對稱變換。水平鏡像是将圖像沿垂直中軸線進行左右翻轉,垂直鏡像是将圖像沿水平中軸線進行上下翻轉,水平垂直鏡像是水平鏡像和垂直鏡像的疊加。
以水平鏡像為例,圖像寬度為 fw,像素點 (x,y) 以垂直中軸線為中心進行左右對換,可以由以下公式描述:
由上式構造鏡像變換矩陣 MAF,由函數 cv2.warpAffine 可以計算變換後的鏡像圖像。
簡便地,OpenCV 提供了 cv2.flip 函數,可以将圖像沿水平方向、垂直方向、或水平/垂直方向同時進行翻轉。
函數說明:cv2.flip(src, flipCode[, dst]) -> dst
參數說明:
# 1.38 圖像的翻轉 (鏡像)
img = cv2.imread("../images/Fractal03.png") # 讀取彩色圖像(BGR)
imgFlip1 = cv2.flip(img, 0) # 垂直翻轉
imgFlip2 = cv2.flip(img, 1) # 水平翻轉
imgFlip3 = cv2.flip(img, -1) # 水平和垂直翻轉
plt.figure(figsize=(9, 6))
plt.subplot(221), plt.axis('off'), plt.title("Original")
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 原始圖像
plt.subplot(222), plt.axis('off'), plt.title("Flipped Horizontally")
plt.imshow(cv2.cvtColor(imgFlip2, cv2.COLOR_BGR2RGB)) # 水平翻轉
plt.subplot(223), plt.axis('off'), plt.title("Flipped Vertically")
plt.imshow(cv2.cvtColor(imgFlip1, cv2.COLOR_BGR2RGB)) # 垂直翻轉
plt.subplot(224), plt.axis('off'), plt.title("Flipped Horizontally & Vertically")
plt.imshow(cv2.cvtColor(imgFlip3, cv2.COLOR_BGR2RGB)) # 水平垂直翻轉
plt.show()
(本節完)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!