-
目標
- 使用opencv讀入、顯示、保存圖像。示例代碼是加載一張原圖,顯示圖片,鍵盤按下“s”則保存圖片,按下其他鍵則銷毀圖像顯示窗口。
- 學會三個函數的使用:
cv2.imread
、cv2.imshow
、cv2.imwrite
。
-
示例代碼
python
# -*- coding:utf-8 -*-
import numpy as np
import cv2
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_UNCHANGED)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
key = cv2.waitKey(0)
if key == ord('s'):
cv2.imwrite('D:/img/test/0005.jpg', img)
else:
cv2.destroyWindow('image')
-
讀入圖像
-
img = cv2.imread('D:/img/test/000.jpg')
打開原圖。 -
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_GRAYSCALE)
以灰度模式讀入圖像。 -
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_COLOR)
讀入彩色圖像,圖像的透明度會忽略。 -
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_UNCHANGED)
讀入原圖。
-
讀入圖像的返回值
-
print type(img)
結果為<type 'numpy.ndarray'>
,可見是個多維數組。 - opencv不會提示你圖片的路徑是否錯誤,若
print img
結果為None,則表明圖像路徑是錯的。若結果是一個矩陣數組,則表明路徑正確。
-
顯示圖像
-
cv2.imshow('image', img)
在窗口顯示圖像,圖像的名字是image
,img
參數是我要顯示的圖像,可以同時打開多個圖像顯示窗口,但他們的名字必須是不同的。
這個時候的圖像大小默認是原始圖像的大小,若想窗口大小可調節,使用cv2.namedWindow()
即可。 -
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
image窗口的大小可以調節。 -
cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)
默認的窗口大小,若第二個參數不填寫,默認的就是圖像大小且不可調節。 - 鍵盤綁定函數,
cv2.waitKey(0)
,設置參數是0,表示無限期等待鍵盤輸入,若為其他值,表示在該值得毫秒時間內等待鍵盤輸入,若沒有輸入,則返回-1,若有輸入,則返回輸入鍵的ASCII值。
-
保存圖像
-
cv2.imwrite('D:/img/test/0002.jpg', img)
第一個參數是保存的圖像的路徑,第二個參數是要保存的圖像。
-
刪除已建立的窗口
-
cv2.destroyAllWindows()
銷毀所有窗口。 -
cv2.destroyWindow('image')
銷毀特定窗口,參數是你要銷毀的窗口名稱。
-
其他
ord()
和chr()
函數:
ord()函數的參數是一個ASCII字符,返回值是對應的十進制整數,也就是ASCII的值。
chr()函數的參數是0 - 256 的一個整數,返回值是當前整數對應的ASCII字符。
網上找到的opencv中文文檔,此文是根據學習文檔過程中做的筆記,只做個人學習之用,也可為其他學習者作參考。愛分享的人都是好孩子!