发布网友 发布时间:2022-04-26 14:37
共1个回答
热心网友 时间:2022-06-29 07:09
关于路径有一点需要说明的是,在C和C++里面,输出字符串时,如果想输出一个换行,那就要加上'\n'这个标志,类似的,输出一个TAB,就加上'\t',也就是说,反斜杠("\")这个符号会把跟在它后面的字符结合起来转义成其它字符。根据这个原理,如果想输出双引号('"'),就需要输入'\"',这样才会将包含了双引号的字符串正确的写入内存中。那么如果想输入一个反斜杠呢?很简单,只要敲'\\'就可以了。(关于为什么斜杠和反斜杠都可以的用来表示路径,可以点 这里为什么Windows 系统中用反斜杠表示路径,而C语言教材中都是用斜杠表示头文件的路径?)
要读取图像的存放路径有如下两种情况:
a. 存放在项目的根目录下
拿VS来说,就是如下的项目的根目录下(注意是项目的根目录,也就是选中解决方案后的地址,比如解决方案“test1”的路径是.../opencv/test1/test1.sln,那么就把图片保存到.../opencv/test1/test1这个路径下),对于这种情况,可以直接用相对路径去读取图像,因为程序默认的是从项目根目录下去寻找目标。
可以通过如下方式访问:
const char* imagename = "Lena.jpg";//项目根目录下存放Lena.jpg图片
或者在debug文件夹同级目录下建立一个文件夹专门用来存放图片,通过如下代码访问:
const char* imagename = "Opencv Picture\\Lena.jpg";//或者const char* imagename = "Opencv Picture/Lena.jpg";
此外,也可以将图片放在和生成的可执行文件(.exe)同级的目录下,直接通过"Lena.jpg",运行.exe来访问图片。
b. 存放在项目以外的地方
这种情况下需要通过绝对地址来进行访问,如下在D盘中建有Opencv Picture的文件夹,将图片存放其中,可以通过如下方式访问
const char* imagename = "D:\\Opencv Picture\\Lena.jpg";//或者const char* imagename = "D:/Opencv Picture/Lena.jpg";