opencv2.4.9移植到arm
转载请附链接http://blog.****.net/u014199378/article/details/72408413
一、 下载opencv源码和cmake-gui
1.从http://opencv.org/releases.html下载opencv-2.4.9.tar.gz
2.若是centos下载cmake和cmake-gui
yum install cmake cmake-gui
3.若是ubuntu 下载cmake和cmake-gui
apt-get install cmake cmake-gui
二、运行cmake-gui编译opencv源码
1.解压opencv源码到/opt/opencv
tar zxvf opencv-2.4.9.tar.gz -C /opt/opencv
2.执行cmake-gui
选择源码路径和编译路径
选择arm-linux交叉编译器
点finish,此时配置会出错,我的电脑没有安装cuda库 所以将WITH_CUDA取消勾选,同时还需要将WITH_TIFF取消勾选
把CMAKE_INSTALL_PREFIX变量改为opencv安装目录 系统默认为/usr/local 我安装在/usr/local/opencv_arm下
最后点Generate,在编译路径/opt/opencv_arm下就生成了Makefile
3在执行Makefile之前需要修改CMakeCache.txt文件的194行
CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl
添加几个库
然后执行make和make install
在/usr/local/opencv_arm就生成好了opencv库文件和头文件
三、测试opencv库
在此之前需要将/usr/local/opencv_arm/lib下的所有文件拷贝到/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib目录下,因为交叉编译的时候会调用
test.cpp源文件
#include "opencv2/highgui/highgui.hpp"
using namespace std;
const char *picture = "./1.jpg";
int main(int argc,char *agrv[])
{
IplImage * pImage = cvLoadImage(picture,1);
cvNamedWindow("Test",CV_WINDOW_AUTOSIZE);
cvShowImage("Test",pImage);
cvWaitKey(0);
cvReleaseImage(&pImage);
cvDestroyWindow("Test");
}
Makefile文件
all:test
CFLAGS=-Wall
OPENCV_INCLUDE=-I /usr/local/opencv_arm/include
CC = arm-linux-g++
OPENCV_LINK =-L/usr/local/opencv_arm/lib -lopencv_highgui -lopencv_core -lpthread -lrt
%:%.cpp
#$(CC) `pkg-config opencv --libs` $(OPENCV_INCLUDE) $< -o [email protected] $(OPENCV_LINK)
$(CC) $(OPENCV_INCLUDE) $< -o [email protected] $(OPENCV_LINK)
.PHONY:clean
clean:
rm -f test
编译成功,然后将/usr/local/opencv_arm中库文件拷贝到开发板/usr/lib目录,头文件拷贝到开发板的/usr/include目录
将可执行文件也拷贝到开发板执行即可