opencv的imread函数相对路径问题和 main 参数问题

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdygj.html