#include< > 和 #include” ” 的区别以及绝对地址引用\\以及cvLoadImage和imread

来源:互联网 发布:网络直播开场白 编辑:程序博客网 时间:2024/06/11 13:38

一、#include< >

  #include< > 引用的是编译器的类库路径里面的头文件。

  假如你编译器定义的自带头文件引用在 C:\Keil\c51\INC\ 下面,则 #include<stdio.h> 引用的就是 C:\Keil\c51\INC\stdio.h 这个头文件,不管你的项目在什么目录里, C:\Keil\c51\INC\stdio.h 这个路径就定下来了,一般是引用自带的一些头文件,如: stdio.h、conio.h、string.h、stdlib.h 等等。

二、#include" "

  #include" " 引用的是你程序目录的相对路径中的头文件。

  假如你的项目目录是在 D:\Projects\tmp\ ,则 #include"my.h" 引用的就是 D:\Projects\tmp\my.h 这个头文件,一般是用来引用自己写的一些头文件。如果使用 #include" " ,它是会先在你项目的当前目录查找是否有对应头文件,如果没有,它还是会在对应的引用目录里面查找对应的头文件。例如,使用 #include "stdio.h" 如果在你项目目录里面,没有 stdio.h 这个头文件,它还是会定位到 C:\Keil\c51\INC\stdio.h 这个头文件的。

以上转载链接http://www.cnblogs.com/LeoFeng/p/5346530.html


cvLoadImage 以及imread

1.imread是C++接口,cvloadimage是c接口。
2.imread的定义在highgui.hpp中,cvloadimage的定义在highgui-c.h中,而highgui.hpp和highgui-c.h都包含在highgui.h中,所以我们在写程序是只要包含了highgui.h,那么我们就可以用两个接口。

cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR));
imread( const string& filename, int flags=1 );
上面是两个函数的定义,cvLoadImage后面的iscolor参数可以取值为-1,0,1,-1代表默认读取图形的原通道数,0代表强制转化读取图像为灰度图形,1代表读取彩色图像,imread函数中的后面标志只有取值为1.当你需要读取不同的图像时用cvLoadImage方便点儿,没有要求时二者貌似也没啥区别


1.将图片直接放在工程文件夹下面即可,即放在debug同级文件夹。

IplImage* img = cvLoadImage ("pic.jpg",0);


2.直接用绝对路径的时候,有反斜杠的时候在用两个反斜杠,如E:\\new folder\\拣练系统\\图片样品\\cjy\\01.bmp或者换成E:/new folder/拣练系统/图片样品/cjy/01.bmp,这样绝对路径可读了。//在C里面,输出字符串时,如果想输出一个换行,那就要加上'\n'这个标志,类似的,输出一个TAB,就加上'\t',也就是说,反斜杠("\")这个符号会把跟在它后面的字符结合起来转义成其它字符。根据这个原理,如果想输出双引号('"'),就需要输入'\"',这样才会将包含了双引号的字符串正确的写入内存中。输入一个反斜杠,只要敲'\\'就可以了。

IplImage* img = cvLoadImage ("D:\\vs14\\testConsoleApplication1\\testConsoleApplication1\\pic.jpg",0);


3.

    CFileDialog dlg(TRUE,_T("*.bmp"),NULL,OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,_T("image files(*.bmp) | *.bmp; | All files (*.*) | *.*||)"),NULL);
    dlg.m_ofn.lpstrTitle = _T("Open Image");  //打开文件对话框标题名
    
    if (dlg.DoModal() != IDOK)                //判断是否获取到图片
    {
        return;
    }
    CString mPath = dlg.GetPathName();       //获取图片路径
    IplImage* imgTmp = cvLoadImage((LPSTR)(LPCTSTR)mPath,0);

用以上方法读,直接找到需要加载图片的文件夹



0 0
原创粉丝点击