iT邦幫忙

2021 iThome 鐵人賽

DAY 6
1

OpenCV 廣泛被應用在對目標進行辨識、測量、紀錄等,並更進一步的進行影像處理!

讀取圖片

由於 OpenCV 本身就有提供讀取圖片檔的函數可用,讀取一般的圖片檔時,只要呼叫 cv2.imread 即可將圖片讀取進來。

以 cv2.imread 讀進來的資料,會儲存成一個 NumPy 陣列
此 NumPy 陣列的前兩個維度分別是圖片的高度與寬度,第三個維度則是圖片的 channel(RGB 彩色圖片的 channel 是 3,灰階圖片則為 1)

import cv2

img = cv2.imread('image.jpg') #讀取圖片
print(type(img))              #查看資料型態
print(img.shape)              #檢查這個 NumPy 陣列的大小

顯示圖片

圖片讀取進來之後,使用 OpenCV 所提供的 cv2.imshow 來顯示圖片

cv2.imshow 的第一個參數為欲定的視窗名稱,第二個參數為要顯示的圖像~

cv2.imshow('My Image', img)  #顯示圖片

    #關閉所有視窗
cv2.waitKey(0)                      
cv2.destroyAllWindows()

   #關閉指定視窗
cv2.destroyWindows('My Image')   

cv2.waitKey 是用來等待與讀取使用者按下按鍵而關閉圖片視窗。
參數是等待時間(毫秒),若設為 0 就表示會等待使用者按下任何按鍵為止。

如果在程式中有許多的 OpenCV 視窗,而我們只要關閉特定的視窗時,可以改用 cv2.destroyWindow 加上視窗名稱,關閉指定的視窗。


圖片來源: 朋友的狗狗憤怒吐舌瞬間><

注意視窗上的名稱 My Image 是自己在cv2.imshow定的喔~

儲存圖片

使用 OpenCV 的 cv2.imwrite
可以使用 opencv 內建的函數 cvtColor 將圖片轉為灰階~

# 將圖片轉成灰階
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

cv2.imwrite('My Image.jpg', gray)  # 儲存圖檔 

假如原本的圖是 jpg 檔,也可以用cv2.imwrite存為其他格式

# 寫入不同圖檔格式 
cv2.imwrite('My Image.png', img) 
cv2.imwrite('My Image.tiff', img)


轉成灰階的狗勾!


上一篇
[D05] 數位影像處理
下一篇
[D07] OpenCV 基本的影像調整
系列文
從林到有_Image processing30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言