iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
1

上一章有說到,當你從外部匯入圖片存進自訂變數時,存在變數裡的並不是我們直觀想像的真實圖片,而是一個由row和col組成的二維陣列,每一個陣列元素存放的都是RGB三色混雜的像素點,像素點越多(陣列越大)圖片也就越清晰。

而要做到翻轉圖片這件事,只要對這個概念進行延伸,就會知道翻轉圖片等同轉置陣列。

import cv2
import numpy as np

做完前置動作,我們來嘗試用numpy的指令來轉置矩陣吧!

作為以陣列處理的高效和便利聞名的Numpy函式庫,轉置矩陣自然也在他的能力之內,它為使用者提供了一個相當方便的函式:rot90。

rot90主要應用在二維陣列的轉置操作,假如現在有個存入了矩陣的變數:

a=[1,2,3;4,5,6;7,8,9]

執行print(a)之後能看到:

a =  
     1     2     3  
     4     5     6  
     7     8     9  

a變數內明確存放了3x3的二維矩陣,現在我們試著將a變數進行轉置:

b=rot90(a)

執行print(b)之後能看到:

b =  
     3     6     9  
     2     5     8  
     1     4     7  

變數a的陣列確實經過90°旋轉之後存到變數b,但要注意的是它做的是逆時針轉換,如果想要順時針進行旋轉的話只要在後面加上:

c=rot90(a,-1)

執行print(c)之後能看到:

c =  
     7     4     1  
     8     5     2  
     9     6     3 

同樣的,如果想將圖片轉成180°:

c=rot90(a,2)

也可以寫成:

c=rot90(a,-2)

兩者等效。

理解了上述操作,請試著對圖片做做看!


上一篇
Day4-圖片分割
下一篇
Day6-圖片旋轉2
系列文
OpenCV 從零開始的影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言