双目视觉嵌入式移植中Opencv程序移植时问题及解决,移植成功啦,哈哈
2014-08-18 10:19
465 查看
Opencv移植方法:/article/1619115.html
我用的是Cmake,最终成功,把路径下生成的so文件拷到开发板的 /lib文件下。
在这之前也可能要移植ffmpge:/article/1618939.html
遇到问题多看文章,多试几次最终一定会成功。
现在就可以编译程序啦:
编译命令:
arm-none-linux-gnueabi-g++
opencv_chuli.cpp -o opencv_testchuli -I/usr/local/opencv-arm/OpenCV/include/opencv -L/usr/local/opencv-arm/OpenCV/lib -lml -lcvaux -lhighgui -lcv
-lcxcore -lpthread -lrt
注意:1、这是一个命令,是一行,当然不同指令中间要加空格。
2、opencv_chuli.cpp 是你的程序文件,把上面的程序复制到文档里再重命名成这个名字就可以了。
3、opencv_testchuli
这是最终生成的二进制文件名,可以修改,到时要拷到开发板上。
4、/usr/local/opencv-arm/OpenCV/include/opencv 这是编译成功的OpenCV路径,/usr/local/opencv-arm/OpenCV/lib也一样。
在终端运行,注意要用root权限。
最终就成功啦,把程序拷到开发板上运行就可啦。
运行错误:
123456OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure
script) in cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100
terminate called after throwing an instance of 'cv::Exception'
Aborted
GTK是一种GUI库,参考:/article/1618917.html
我以后要用QT 所以就不移植啦。
第二个程序:
运行问题:
123456Segmentation fault
解决:http://blog.csdn.net/b5w2p0/article/details/38656323,可能是我没有移植libjpeg的原因,改变后程序:
运行结果:
123456456789109
原始图片:
![](http://img.blog.csdn.net/20140818101403140)
处理后图像:
![](http://img.blog.csdn.net/20140818101603462)
证明移植成功!
我用的是Cmake,最终成功,把路径下生成的so文件拷到开发板的 /lib文件下。
在这之前也可能要移植ffmpge:/article/1618939.html
遇到问题多看文章,多试几次最终一定会成功。
现在就可以编译程序啦:
<span style="font-size:18px;">#include <cv.h> #include <cxcore.h> #include <highgui.h> int main(int argc,char **argv) { CvCapture* capture = NULL; IplImage* pImg = NULL; fprintf(stderr, "123"); pImg = cvLoadImage("1.jpg",1); fprintf(stderr, "456"); cvNamedWindow("video", 1); fprintf(stderr, "789"); cvShowImage("video", pImg); fprintf(stderr, "109"); cvWaitKey(-1); cvDestroyWindow("video"); cvReleaseImage( &pImg ); return 0; } </span>
编译命令:
arm-none-linux-gnueabi-g++
opencv_chuli.cpp -o opencv_testchuli -I/usr/local/opencv-arm/OpenCV/include/opencv -L/usr/local/opencv-arm/OpenCV/lib -lml -lcvaux -lhighgui -lcv
-lcxcore -lpthread -lrt
注意:1、这是一个命令,是一行,当然不同指令中间要加空格。
2、opencv_chuli.cpp 是你的程序文件,把上面的程序复制到文档里再重命名成这个名字就可以了。
3、opencv_testchuli
这是最终生成的二进制文件名,可以修改,到时要拷到开发板上。
4、/usr/local/opencv-arm/OpenCV/include/opencv 这是编译成功的OpenCV路径,/usr/local/opencv-arm/OpenCV/lib也一样。
在终端运行,注意要用root权限。
最终就成功啦,把程序拷到开发板上运行就可啦。
运行错误:
123456OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure
script) in cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100
terminate called after throwing an instance of 'cv::Exception'
Aborted
GTK是一种GUI库,参考:/article/1618917.html
我以后要用QT 所以就不移植啦。
第二个程序:
<span style="font-size:14px;">#include <cv.h> #include <cxcore.h> #include <highgui.h> int main(int argc,char **argv) { CvCapture* capture = NULL; IplImage* pImg = NULL; IplImage* pImg1 = NULL; fprintf(stderr, "123"); pImg = cvLoadImage("1.jpg",1); fprintf(stderr, "456"); pImg1 = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1); fprintf(stderr, "456"); cvCvtColor(pImg,pImg1,CV_RGB2GRAY); fprintf(stderr, "789"); cvSaveImage("1_1.jpg",pImg1); fprintf(stderr, "109"); cvReleaseImage( &pImg ); cvReleaseImage( &pImg1 ); return 0; } </span>
运行问题:
123456Segmentation fault
解决:http://blog.csdn.net/b5w2p0/article/details/38656323,可能是我没有移植libjpeg的原因,改变后程序:
<span style="font-size:14px;">#include <cv.h> #include <cxcore.h> #include <highgui.h> int main(int argc,char **argv) { CvCapture* capture = NULL; IplImage* pImg = NULL; IplImage* pImg1 = NULL; fprintf(stderr, "123"); pImg = cvLoadImage("1.bmp",1); fprintf(stderr, "456"); pImg1 = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1); fprintf(stderr, "456"); cvCvtColor(pImg,pImg1,CV_RGB2GRAY); fprintf(stderr, "789"); cvSaveImage("1_1.bmp",pImg1); fprintf(stderr, "109"); cvReleaseImage( &pImg ); cvReleaseImage( &pImg1 ); return 0; } </span>
运行结果:
123456456789109
原始图片:
处理后图像:
证明移植成功!
相关文章推荐
- 双目视觉OpenCV嵌入式移植后XML读取问题及解决
- 双目视觉嵌入式移植校正图像所遇到的问题
- 双目视觉的嵌入式移植遇到问题了,两个摄像头不能同时打开
- 双目视觉嵌入式移植成功
- OpenCV 无法启动此程序,因为计算机中丢失opencv_core249d.dll或者opencv_highgui249d.dll。请尝试重新安装改程序已解决此问题
- opencv第一个测试程序遇到的问题及解决
- 关于winXP和win7,vs2010,opencv2.3,运行程序,报错“计算机丢失tbb_debug.dll”问题解决办法 .
- OpenCV 无法启动此程序,因为计算机中丢失opencv_core249.dll。请尝试重新安装改程序已解决此问题
- OpenCV+MFC的双目视觉测距与景深实现之问题探讨
- OpenCV 无法启动此程序,因为计算机中丢失opencv_core249.dll。请尝试重新安装改程序已解决此问题
- 双目视觉嵌入式移植后校正矩阵的生成方法
- OpenCV学习笔记(11)OpenCV+MFC的双目视觉测距与景深实现 之 问题探讨
- VS为XP开发的程序移植到Win7上遇到两个小的问题及解决办法
- 解决opencv程序在linux环境中发布时的的依赖问题
- ARM开发板6410移植opencv-2.4.7库qt 问题汇总解决
- Visual Studio 2010 第一个C++程序成功之前遇到的问题及解决办法
- SQL SERVER问题解决:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 命名管道提供程序, error: 0 - 管道的另一端上无任何进程。)
- 嵌入式linux移植过程中“串口终端”问题解决方案
- VC6编写的程序移植到VS2010中编译时error C2440: “static_cast”问题的解决
- 解决Tslib移植之后自己编写的QT程序不能使用触屏的问题