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按单通道的方式读入图像,即灰白图像。
参考文章:/qq_36969386/article/details/79195890