圖像讀取函數cv::imread()的幾種使用方式


string imgpath = "C:\Users\Y\Pictures\miao.jpg";

OpenCV的imread()函數不支持單右斜線形式的路徑,即不支持上述形式的路徑。但是imread()支持雙右斜線、雙左斜線、單左斜線、前述三種斜線混合形式。

#include<opencv2\opencv.hpp>
 
using namespace cv;
 
int main(int argc,char* argv[])
{
    Mat img;
 
    //-- 1 --雙右斜線法
    //string imgpath = "C:\\Users\\Y\\Pictures\\miao.jpg";
    //-- 2 --雙左斜線法
    //string imgpath = "C://Users//Y//Pictures//miao.jpg";
    //-- 3 --單左斜線法
    //string imgpath = "C:/Users/Y/Pictures/miao.jpg";
    //-- 4 --以上三種混合法
    //string imgpath = "C:/Users//Y\\Pictures//miao.jpg";
    //-- 5 --相對路徑法
    //string imgpath = "miao.jpg";
    //-- 6 --命令行參數法
    string imgpath = argv[1];
 
    img = imread(imgpath, 1);
    imshow("img", img);
 
    waitKey(0);
    return 0;
}

 相對路徑法,只需要把圖像文件放在工程文件夾下和.cpp文件放在一起就行了,讀取的時候就可以直接用名字讀取,如imread("miao.jpg");

最后一種命令行參數法是源碼中比較常見的。設置方法是:工程——屬性——配置屬性——調試——命令行參數,然后設置就行了。如圖:

設置之后miao.jpg就是argv[1],2.jpg就是argv[2]。

以上六種的運行結果:

函數原型

Mat imread(const string& FileName, int flags = 1)

FileName:圖片路徑名

flags:載入標識,指定一個加載圖像的顏色類型,默認值為1,表示載入三通道的彩色圖像;

                                                                     -1,imread按解碼得到的方式讀入圖像;

                                                                      0,imread按單通道的方式讀入圖像,即灰白圖像。

 

參考文章:https://blog.csdn.net/qq_36969386/article/details/79195890


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM