opencv學習——imread()讀取圖像

     學習opencv 最開始一般都是從讀取一張圖片開始,在opencv 中我們可通過 imread() 來操作。首先我們看下imread 方法:

原型 
Mat imread( const String& filename, int flags )

第一個參數 filename: 表示圖像的路徑。

第二個參數 flags:表示讀取圖像的方式。

      IMREAD_UNCHANGED = -1,表示讀取原圖, 不進行任何改變

      IMREAD_GRAYSCALE = 0,表示以灰度圖方式讀取原圖

      IMREAD_COLOR = 1,表示以RGB方式讀取原圖

       默認不加 flags 的話,表示不做改變讀取原圖。

enum ImreadModes {
       IMREAD_UNCHANGED            = -1, //如果設置,則返回的數據帶有alpha通道(R,G,B,A 四個通道),否則沒有alpha通道
       IMREAD_GRAYSCALE            = 0,  //如果設置,則將圖像轉換爲單通道灰度圖像
       IMREAD_COLOR                = 1,  //如果設置,則將圖像轉換成3通道BGR彩色圖像
       IMREAD_ANYDEPTH             = 2,  //如果設置,則在輸入具有相應深度時返回16位/32位圖像,否則將其轉換爲8位
       IMREAD_ANYCOLOR             = 4,  //如果設置,則圖像可能以任何顏色格式讀取
       IMREAD_LOAD_GDAL            = 8,  //如果設置,使用gdal驅動程序加載圖像
       IMREAD_REDUCED_GRAYSCALE_2  = 16, //如果設置,總是將圖像轉換爲單通道灰度圖像且圖像大小減少1/2
       IMREAD_REDUCED_COLOR_2      = 17, //如果設置,總是將圖像轉換爲3通道BGR彩色圖像且圖像大小減少1/2
       IMREAD_REDUCED_GRAYSCALE_4  = 32, //如果設置,總是將圖像轉換爲單通道灰度圖像且圖像大小減少1/4
       IMREAD_REDUCED_COLOR_4      = 33, //如果設置,總是將圖像轉換爲3通道BGR彩色圖像且圖像大小減少1/4
       IMREAD_REDUCED_GRAYSCALE_8  = 64, //如果設置,總是將圖像轉換爲單通道灰度圖像且圖像大小減少1/8
       IMREAD_REDUCED_COLOR_8      = 65, //如果設置,總是將圖像轉換爲3通道BGR彩色圖像且圖像大小減少1/4
       IMREAD_IGNORE_ORIENTATION   = 128 //如果設置,不會根據EXIF的方向標誌旋轉圖像
     };

filename 圖片路徑編譯器裏面接受 單斜杆/, 雙斜杆//, 以及反向雙斜杆 \\。 不支持反向單斜杆\。

Mat SrcMat = imread("F:/build/test_app/correct.png"); //  單斜杆/

Mat SrcMat = imread("F://build//test_app//correct.png"); //  雙斜杆//

Mat SrcMat = imread("F:\\build\\test_app\\correct.png"); //  反向雙斜杆 \\

 

示例代碼:

#include "stdafx.h"
#include <iostream>

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	Mat SrcMat = imread("F:\\build\\test_app\\correct.png", IMREAD_UNCHANGED); 
    //IMREAD_GRAYSCALE:原圖做爲灰度圖加載
	if(SrcMat.empty()) {
		cout << "SrcMat.empty" << endl;
		return -1;
	}

	
	imshow("image input", SrcMat);


	waitKey(0);

	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章