imread
頭文件:opencv2/highgui/highgui.hpp
作用:imread
函數的作用非常簡單,從函數的名稱也可以看出來,imread
爲image read的縮寫,即圖像讀取的意思
函數原型:
Mat cv::imread(const String&filename,int flags=IMREAD_COLOR)
- 返回值 Mat 類型, 即返回讀取的圖像,讀取圖像失敗時返回一個空的矩陣對象(Mat::data == NULL)
- 參數1 filename, 讀取的圖片文件名,可以使用相對路徑或者絕對路徑,但必須帶完整的文件擴展名(圖片格式後綴)
- 參數2 flags, 一個讀取標記,用於選擇讀取圖片的方式,默認值爲
IMREAD_COLOR
,flag值的設定與用什麼顏色格式讀取圖片有關。如果flag>0 返回一個3通道的彩色圖像;flag=0返回灰度圖像;flag<0返回包含Alpha通道的加載的圖像。
參數2 補充:
C++定義 | 說明 |
---|---|
IMREAD_UNCHANGED =-1 | 如果設置,則按原樣返回加載的圖像(使用Alpha通道,否則會被裁剪,在新版本中廢棄) |
IMREAD_GRAYSCALE =0 | 如果設置,則始終將圖像轉換爲單通道灰度圖像(編解碼器內部轉換) |
IMREAD_COLOR =1 | 如果設置,請始終將圖像轉換爲3通道BGR彩色圖像 |
IMREAD_ANYDEPTH =2 | 如果設置,則在輸入具有相應深度時返回16位/ 32位圖像,否則將其轉換爲8 |
IMREAD_ANYCOLOR =4 | 如果設置,則以任何可能的顏色格式讀取圖像 |
IMREAD_LOAD_GDAL | 如果設置,使用gdal驅動程序加載圖像 |
IMREAD_REDUCED_GRAYSCALE_2 | 如果設置,則始終將圖像轉換爲單通道灰度圖像,圖像尺寸減小1/2 |
IMREAD_REDUCED_COLOR_2 | 如果設置,則始終將圖像轉換爲3通道BGR彩色圖像,圖像尺寸減小1/2 |
IMREAD_REDUCED_GRAYSCALE_4 | 如果設置,則始終將圖像轉換爲單通道灰度圖像,圖像尺寸減小1/4 |
IMREAD_REDUCED_COLOR_4 | 如果設置,則始終將圖像轉換爲3通道BGR彩色圖像,圖像尺寸減小1/4 |
IMREAD_REDUCED_GRAYSCALE_8 | 如果設置,則始終將圖像轉換爲單通道灰度圖像,圖像尺寸減小1/8 |
IMREAD_REDUCED_COLOR_8 | 如果設置,則始終將圖像轉換爲3通道BGR彩色圖像,圖像尺寸減小1/8 |
IMREAD_IGNORE_ORIENTATION | 如果設置,請不要根據EXIF的方向標誌旋轉圖像 |
示例:
#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
int main(int argc,char **argv){
cv::Mat image = cv::imread("C:/Users/Administrator/Desktop/2-1.jpg",cv::IMREAD_GRAYSCALE);
cv::imshow("窗口名", image);
cv::waitKey(0);
return 0;
}