Opencv移植方法:
我用的是Cmake,最终成功,把路径下生成的so文件拷到开发板的 /lib文件下。
在这之前也可能要移植ffmpge:
遇到问题多看文章,多试几次最终一定会成功。
现在就可以编译程序啦:
<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权限。
最终就成功啦,把程序拷到开发板上运行就可啦。
运行错误:
GTK是一种GUI库,参考:
我以后要用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
解决:,可能是我没有移植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
原始图片:
处理后图像:
证明移植成功!
本文发布于:2024-01-31 11:37:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170667227828244.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |