2015年9月28日 星期一

OpenCV - 圖片載入,顯示與輸出


OpenCV reference
OpenCV 2.4.11.0 documentation » OpenCV API Reference » highgui. High-level GUI and Media I/O »



NOTE: 下面程式碼有先包含了




imread函數 - 讀入圖片檔案

OpenCV函數定義:



參數1. filename 要讀入的檔案路徑名稱

OpenCV目前有支援的檔案格式有:
  • Windows bitmaps - *.bmp, *.dib (always supported)
  • JPEG files -*.jpeg, *.jpg, *.jpe
  • JPEG 2000 files - *.jp2
  • Portable Network Graphics - *.png
  • Portable image format - *.pbm, *.pgm, *.ppm (always supported)
  • Sun rasters - *.sr, *.ras (always supported)
  • TIFF files - *.tiff, *.tif

參數2. flags 指的是要載入圖片的顏色類型
  • CV_LOAD_IMAGE_ANYDEPTH (=2)
  • CV_LOAD_IMAGE_COLOR (=1) 讀入彩色圖像,一般預設就是讀入flags = 1
  • CV_LOAD_IMAGE_GRAYSCALE (=0) 讀入灰階圖像

NOTE: 一般情況不會載入Alpha channel,如果要載入Alpha channel的話,這裡要給負值

  • flags > 0 return a 3-channel color image
  • flags = 0 return a grayscale image
  • flags < 0 return with alpha channel


imread函數用法:





namedWindow函數



destroyWindow函數



imshow函數 - 顯示圖片

opencv裡函數原型是這樣:



參數1. winname 為顯示視窗的名字
參數2. InputArray的mat 為要顯示的影像,這邊InputArray 給Mat類型就是可以的

函數用法如下:



其中waitKey(0)是指無限期等待直到任意按鍵發生
如果不加waitKey(0)一般圖片是不會正常顯示出來

在OpenCV裡是這樣定義的:


意思是等待delay的時間,直到是否有按鍵的發生
當delay > 0,等待delay ms(單位為milliseconds)的時間,如果期間有按鍵發生,返回值為按鍵按下的ASCII值,沒按鍵發生則返回值為-1
當delay <= 0,如果沒按鍵發生,則一直等待,並返回-1,否則返回按鍵ASCII值



imwrite函數 - 輸出圖片檔案

opencv的函數原型:


參數1. filename 為要寫入檔案的名稱,記得名稱後要加影像的格式,例如"image.jpg",否則會出錯,可以輸出的檔案格式跟imread一樣

參數2. InputArray img 為要輸出的影像,給Mat類型就是可以的


宣告一個128*128的影像並輸出為"white.jpg"





參考:
【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析

沒有留言:

張貼留言