OpenCV中映像的讀取與顯示

來源:互聯網
上載者:User

 

在OpenCV中,有一些函數可用於映像讀取和儲存,這些函數都在命名空間cv中,所以使用時有兩種方式,一種是在函數頭部聲明using namespace cv;第二種方式就是使用cv作為函數的限定。

從檔案中讀入一幅映像可以使用imread函數來讀取映像,

Mat img=imread(filename);

該語句將filename所指定路徑的指定檔案讀取到img數組中,該函數讀取的是預設的三通道映像,讀取的順序預設情況下是BGR順序,如果想得到單通道(灰階級的)映像,則可以使用下面的方式:

Mat img=imread(filename,0);

當然讀取映像還有其他的方法,如下面所示,在OpenCV中,IplImage結構體是一個重要的結構體,

可以定義一個指向IplImage的結構體指標,結合函數cvLoadImage來讀取映像,如下所示:

IplImage *scr;
 scr=cvLoadImage("H:\\VS2010Ultimtrial\\file\\testOpenCV\\test.jpg",1);

當寫成

IplImage *scr;
 scr=cvLoadImage("H:\\VS2010Ultimtrial\\file\\testOpenCV\\test.jpg",0);

表示讀取的是單通道(灰階級)的映像

當讀取完映像資料後可分別使用imshow(filename,img)和cvShowImage(title,scr)來顯示映像。

參考程式如下:

const char* imagename = "H:\\我的文件\\我的圖片\\合肥植物園之旅\\DSCN0175.jpg";
    cv::Mat img = cv::imread(imagename);
    if(img.empty())return -1; //是否載入成功
    if(!img.data)return -1;
    cv::namedWindow("image", CV_WINDOW_NORMAL);
    cv::imshow("image", img);
    cv::waitKey();

或者:

IplImage *scr;
 scr=cvLoadImage("H:\\VS2010Ultimtrial\\file\\testOpenCV\\test.jpg",1);
  cvNamedWindow("美女",CV_WINDOW_AUTOSIZE);
 cvShowImage("test.jpg",scr);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.