學習Opencv庫(一)——基本讀寫函數的介紹!

OpenCV是一個開源的計算機視覺庫,裏面封裝了很多圖像處理方面的優秀算法:例如圖片輪廓邊緣檢測,特徵點提取…,可以在Windows,Linux,Mac等平臺使用;雖然OpenCv是用 C++ 編寫的,並且現在主要接口也是 C++ 語言的但,現在該庫也同時提供大量面向 python、matlab以及Java。


OpenCV在python是以 cv2 庫存在的,安裝起來非常簡單,同樣是利用 pip 安裝;


OpenCv在 python中的安裝方法:打開命令行或者 Anaconda Prompt 輸入以下命令

pip insatll opencv-python   #利用命令行命安裝;
conda install opencv-python #利用 Anaconda Prompt 中進行安裝

測試一下庫是否安裝成功,在命令行中啓動 python;接着輸入 import cv2 沒有報錯即可代表成功.

C:\Users\dell>python
Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>  
OpenC的讀寫函數介紹
讀取圖片:cv2.imread(path,flags)
  • path就是需要讀取圖片的本地位置;
  • 第二個參數 flags 是讀取方式,代表的是你所讀取的圖片是什麼樣的,這裏Opencv把它分爲了三類分別是-1,0,1,參數默認爲1;
    • 爲 1 時,參數爲 cv2.IMREAD_COLOR ,圖片以RGB的方式讀出;
    • 爲 0 時,參數爲 cv2.IMREAD_GRAYSCALE , 圖片以灰質圖(黑白)的方式讀出;
    • 爲 -1 時,參數爲 cv2.IMREAD_UNCHANGED ,圖片爲 alpha 通道的方式讀出;
圖片展示 cv2.imshow()

cv2.imshow()含有兩個參數,第一個指的是要展示圖片窗口的名字,第二個就是需要展示的照片,例如:

cv2.imshow('image',img);

在展示之前可以加一行代碼,用來防止圖片太大,造成圖片無法展示的問題:

cv2.namedWindow('window.name',cv2.WINDOW_NORMAL);
cv2.Waitkey(0);
cv2.destoryallwindows();#銷燬所有已經創建的窗口;
  • cv2.destorywindow(“windows_name”) * ;用來銷燬特定名字的窗口,這裏windows_name代表自己準備銷燬窗口的名字;
圖片寫出 cv2.imwrite()

python 中的OpenCV庫裏裏面含有讀入、展示函數,當然也有寫出函數,是以 imwrite 函數實現,具體使用方法如下:

cv2.imwrite('a.png',img);#將圖片以 a.png 的形式寫出,

這裏的 a.png 當然也可以以路徑來進行替換。

img  = cv2.imread('F:/pic_url/a.jpg',0)
img2 = cv2.imread('F:/pic_url/a.jpg',1)
cv2.namedWindow('RGB',cv2.WINDOW_NORMAL)
cv2.namedWindow('GRAY',cv2.WINDOW_NORMAL)
cv2.imshow('RGB',img2)
cv2.imshow('GRAY',img)
cv2.imwrite('F:/pic_url/a_rgb.png',img2)
cv2.imwrite('F:/pic_url/a_gray.png',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果圖如下:
在這裏插入圖片描述
保存後的圖片:
在這裏插入圖片描述
這幾行代碼就是對 Opencv庫 讀寫功能的的基本總結;

  • 首先是把 圖片a.jpg 分別以 RGB 和灰質圖 形式讀出,並把讀出的內容賦值給 img2 和 img;
  • 創建兩個窗口,分別命名爲 RGB 和 GRAY ,創建形式就是以 NORMAL_WINDOW 的形式(系統自定義合適的窗口大小);
  • 分別在 RGB 和 GRAY 窗口中展示 img2 和 img 的內容;
  • 把 img2 和 img 的內容存入 rgb.png 和 gray.png 兩張圖片當中;
  • 等待用戶命令;
  • 銷燬所有已經創建的窗口;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章