Python OpenCV 影像垂直翻轉,水平翻轉 flip

本篇 ShengYu 介紹 Python OpenCV 來作影像垂直翻轉,影像水平翻轉 flip,在寫 Python 影像處理程式時遇到圖片顛倒需要翻轉的功能時,可以使用 OpenCV cv2.flip() 函式,接下來介紹怎麼使用 Python 搭配 OpenCV 模組來進行圖片垂直翻轉,水平翻轉 flip。

cv2.flip 垂直翻轉範例

以下範例是先將 lena.jpg 這張圖片透過 cv2.imread() 函式讀入後,再使用 cv2.flip() 作翻轉的處理,垂直翻轉的話就在 cv2.flip() 第二個參數帶入 0 即可,最後用 cv2.imshow() 顯示影像。詳細程式碼如下,

opencv-flip.py
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cv2

image = cv2.imread("lena.jpg")
cv2.imshow("before", image)

image2 = cv2.flip(image, 0) # 上下垂直翻轉

cv2.imshow("after", image2)
cv2.waitKey(0)

結果如下圖所示:

cv2.flip 水平翻轉範例

如果要水平翻轉或者是左右翻轉的話,就在 cv2.flip() 第二個參數帶入 1 即可,詳細程式碼如下,

opencv-flip2.py
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cv2

image = cv2.imread("lena.jpg")
cv2.imshow("before", image)

image2 = cv2.flip(image, 1) # 左右水平翻轉

cv2.imshow("after", image2)
cv2.waitKey(0)

結果如下圖所示:

cv2.flip 垂直水平翻轉範例

這邊結合上述兩種範例作垂直水平翻轉或者上下左右翻轉,在 cv2.flip() 第二個參數帶入 -1 即可,

opencv-flip3.py
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cv2

image = cv2.imread("lena.jpg")
cv2.imshow("before", image)

image2 = cv2.flip(image, -1) # 上下左右翻轉

cv2.imshow("after", image2)
cv2.waitKey(0)

結果如下圖所示:

cv2.flip 參數的詳細細節請參考這裡

其它相關文章推薦
如果你在學習 Python 或 OpenCV 影像處理相關技術,可以參考看看下面的文章,
Python OpenCV resize 圖片縮放
Python OpenCV 垂直vconcat 和水平hconcat 影像拼接
Python 新手入門教學懶人包