https://blog.csdn.net/u013404374/article/details/80178822
https://blog.csdn.net/fujilove/article/details/19402561
https://blog.csdn.net/hopeneversleep/article/details/55798722
imread函数中,一个点代表省略当前文件夹路径,两个点则代表回到上一个文件夹路径。
1
cv::Mat img11 = cv::imread("./res/panda.bmp");
比如这个是,Visual Studio 2015\Projects\Opencv_cuda_test1\Opencv_cuda_test1,工程文件路径下的res文件夹。
cv::Mat img12 = cv::imread("../res/panda.bmp");
而这个则是,Visual Studio 2015\Projects\Opencv_cuda_test1\res,这里面的res。
这也就是两个相对路径设置的不同方式。
另外如果实在读不出来图片,可能是系统将一些存在版权信息的图片屏蔽掉,这种情况我一般将其他各种文件格式的图片转换为BMP格式,虽然bmp格式压缩性能很差,但在编写代码阶段可以这么实现,以后换电脑就可以了。
2
分析原因:imread加载完整路径的格式是双斜杠,这与库自己的定义有关,就像halcon的完整路径是单反斜杠,大家注意下就OK了。
同样可以将第五行代码改为:
cv::Mat imagesrc = cv::imread("D:\\test123\\lena.bmp");3
程序运行命令行中,程序名字 后面的第一个参数(作为字符串) 就是argv[1]。
argv[0] 是 程序名字。 位置参数总个数 是 argc.
例:
abc.exe 123
argv[1] 是 "123" ,argv[0] 是 "abc.exe", argc=2
4.int main(int argc,char* argv[])详解,以及与int main()有什么区别
K&R C 上5.10 命令行参数 中介绍的int main(int argc,char* argv[ ])
在 d:\ 编写 程序,并命名为 c.c