OpenCV在Ubuntu上的用例

来源:互联网 发布:社会融资规模数据 编辑:程序博客网 时间:2024/05/01 22:41

安装好opencv后,纠结了一阵咋用来着...

直接 g++ `pkg-config opencv --cflags --libs opencv` -o show show.cpp 会报错:

<span style="font-size:18px;">/tmp/cc3u0O95.o: In function `main':show.cpp:(.text+0x29): undefined reference to `cvLoadImage'show.cpp:(.text+0x55): undefined reference to `cvNamedWindow'show.cpp:(.text+0x66): undefined reference to `cvShowImage'show.cpp:(.text+0x70): undefined reference to `cvWaitKey'show.cpp:(.text+0x7a): undefined reference to `cvDestroyWindow'show.cpp:(.text+0x86): undefined reference to `cvReleaseImage'collect2: ld 返回 1</span>

网上查了很多,总算貌似能用起来了~这里记一下:

测试用例:show.cpp

<span style="font-size:18px;">#include <opencv2/opencv.hpp>int main( int argc, char** argv ){IplImage* pImg; //声明IplImage指针,这里的IplImage 是一种特定的数据结构,可以用来处理单通道(single-channel);多通道(multichannel);整形,浮点型的图像文件//载入图像if( argc == 2 && (pImg = cvLoadImage( argv[1], 1)) != 0 )//cvLoadImage可以读取绝大多数格式类型的图像文件,这样的类型包括,BMP,DIB,JPEG,PBM,PGM,SR;{cvNamedWindow( "Image", 1);//创建窗口,第二个参数定义了窗口的属性,该参数可以被设置为0(默认值),也就是窗口的大小不会跟随着图像的大小而改变;cvShowImage( "Image", pImg );//显示图像cvWaitKey(0); //等待按键cvDestroyWindow( "Image" );//销毁窗口cvReleaseImage( &pImg ); //释放图像return 0;}return -1;}</span>

进入teminal,编译:

<span style="font-size:18px;">g++ `pkg-config opencv --cflags --libs opencv` -o show show.cpp -I /usr/local/include/opencv -L /usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_gpu -lopencv_ts -lopencv_video -lopencv_objdetect -lopencv_ml -lpthread –lrt</span>


测试:

<span style="font-size:18px;">./show lena.jpg</span>

ok!不过有点小问题有待解决...暂且记下


还有个办法是执行:

<span style="font-size:18px;"> g++ show.cpp -o show `pkg-config opencv --cflags --libs opencv`</span>

呵呵,写个maikefile就是:

show:show.cpp
g++ show.cpp -o show `pkg-config opencv --cflags --libs opencv`

这样也能用了,具体原因可以搜索"undefined reference to" 问题解决方法,这里贴个大神blog:

http://ticktick.blog.51cto.com/823160/431329



0 0
原创粉丝点击