1. 程式人生 > >OpenCV學習歷程1--圖片

OpenCV學習歷程1--圖片

因為呢小編對影象處理比較感興趣,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模式

堅持打卡。。。