OpenCV學習歷程1--圖片
阿新 • • 發佈:2018-12-11
因為呢小編對影象處理比較感興趣,opencv即open computer vision 即計算機開源視覺庫,功能強大,所以打卡記錄下自己的學習歷程,也希望會對其他人有所幫助。
言歸正傳,這次先進行圖片的操作,包括讀取、顯示、儲存等,先對所需要用到的函式進行列舉。
cv2.imread() 讀入影象
cv2.imshow() 顯示影象
cv2.imwrite() 儲存影象
cv2.waitKey() 鍵盤繫結函式
cv2.destoryAllWindows() 刪除所有已建立的視窗
cv2.namedWindow() 建立視窗
另外小編的編譯環境 pycharm +Ubuntu16.04 +Python2.7
親測pycharm還是蠻好用的,使用Tab鍵的自動補全功能節省了很多時間,程式設計也更加簡單。
先放上小編的程式碼,然後進行細緻的講解。
# -*- coding:utf-8 -*- ##顯示中文 import numpy as np ##匯入numpy import cv2 ##匯入CV2 from matplotlib import pyplot as plt ##匯入matplotlib ##方法一 使用matplotlib顯示影象 ##彩色影象使用OpenCV載入時是BGR模式,但是matplotlib是RGB模式。 ''' img = cv2.imread('000028.jpg', 0) plt.imshow(img, cmap = 'gray', interpolation= 'bicubic') plt.xticks([]),plt.yticks([]) plt.show() ''' #方法二 使用opencv顯示影象並儲存 img = cv2.imread('000028.jpg', 3) cv2.namedWindow('image', cv2.WINDOW_NORMAL) ##建立一個視窗,調整視窗大小 cv2.imshow('image', img) k = cv2.waitKey(0) if k == ord('q'): #wait for q key to exit cv2.destroyAllWindows() elif k == ord('s'): #wait for 's' to save and exit cv2.imwrite('1.jpg', img) img1 = cv2.imread('1.jpg', 0) cv2.imshow('gray', img1) cv2.waitKey(0) cv2.destroyAllWindows()
實現效果如下:按q 鍵退出,按s鍵儲存並顯示灰度圖
我使用了兩種方法進行圖片的操作,第一種方法是使用Matplotlib,Matplotlib是Python的一個繪相簿,學習Python肯定會經常用到,所以簡單實現了下。
第二種方法是利用OpenCV實現,呼叫的就是上面列舉的函式
這裡說明一些需要注意的地方:
cv2.waitKey()是鍵盤繫結函式,如果按下任意鍵,會返回按鍵的ASCII碼值,比如ES的ASCII碼值是27,程式將會繼續執行,如果沒有鍵盤輸入,返回值為-1,如果設定函式的引數為0,他將會無限期的等待鍵盤輸入。
cv2.namedWindow()用來建立視窗,初始設定標籤是cv2.WINDOW_AUTOSIZE,將標籤改為cv2.WINDOW_NORMAL就可以調整視窗大小。其實不選用這個函式也可以的,cv2.imshow()會顯示視窗並且自動調整為影象大小,但是當圖片維度太大或者要新增軌跡條時,調整視窗大小將會很有用。
另外說明一個很重要的細節問題,彩色影象使用OpenCV載入時是BGR模式,但是matplotlib是RGB模式。
堅持打卡。。。