为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

linux_+qt4.7+opencv2.2移植到tq2440开发板

2012-03-08 19页 doc 136KB 50阅读

用户头像

is_061326

暂无简介

举报
linux_+qt4.7+opencv2.2移植到tq2440开发板linux +qt4.7+opencv2.2移植到tq2440开发板 以下操作在Fedora下使用超级用户进行 我已经安装了交叉编译器arm-linux-gcc 4.3.3和qt4.5的x86和arm版本 在目录/opt/EmbedSky下。 修改配置文件/etc/profile 添加 pathmunge /opt/EmbedSky/4.3.3/bin 安装CMake OpenCV 2.1的版本,必须使用CMake创建Makefile。我使用的CMake版本是2.6-Linux-i386的,是fedora通过软件添加和载卸...
linux_+qt4.7+opencv2.2移植到tq2440开发板
linux +qt4.7+opencv2.2移植到tq2440开发板 以下操作在Fedora下使用超级用户进行 我已经安装了交叉编译器arm-linux-gcc 4.3.3和qt4.5的x86和arm版本 在目录/opt/EmbedSky下。 修改配置文件/etc/profile 添加 pathmunge /opt/EmbedSky/4.3.3/bin 安装CMake OpenCV 2.1的版本,必须使用CMake创建Makefile。我使用的CMake版本是2.6-Linux-i386的,是fedora通过软件添加和载卸功能添加的(这个cmake要重新安装,而且要添加bin进去路径) 编译OpenCV: 1、解压OpenCV 2.1到/opt/EmbedSky/OpenCV-2.1.0目录下 2、在超级用户下,运行cmake-gui命令    选择源代码目录:/opt/EmbedSky/OpenCV-2.1.0    选择Build目录:/home/pww71/opencv-arm/    点击Configure,保持generator为Unix Makefiles,选择Specify options for cross-compiling,点击Next    Operating System填写arm-inux    C Compilers选择/opt/EmbedSky/4.3.3/bin/arm-linux-gcc    C++ Compilers选择/opt/EmbedSky/4.3.3/bin/arm-linux-g++    程序库的Target Root填写/opt/EmbedSky/4.3.3/,然后点击Finish    修改默认配置, X86-opencv的cmake配置 添加BUILD_EXAMPLES 和 OPENCV_BUILD_3RDPARTY_LIBS 前面的日志已经介绍过了 arm-opencv的cmake配置 不要加BUILD_EXAMPLES 和 OPENCV_BUILD_3RDPARTY_LIBS 和 去掉 WITH_TIFF CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt    x86的opencv默认安装目录为/usr/local,对于arm的交叉编译的库来说并不合适,所以把CMAKE_INSTALL_PREFIX变量改为/usr/local/arm/lib/opencv/    没有安装tiff图像的支持,去掉WITH_TIFF    点击Generate生成Makefile 3、使用超级用户 进入目录/home/pww71/opencv-arm,运行make编译opencv 4、运行make install,将opencv生成的库和头文件安装到目录/usr/local/arm/lib/opencv/   QT的配置 已经解压和安装了qt4.5的x86的库和arm交叉交叉编译的库 安装qtcreator时 记得安装地址 并且修改配置文件/etc/profile 添加上qtcreator的安装地址的bin目录 我的是pathmunge pathmunge /opt/EmbedSky/qtcreator-1.3.0/bin 为了能找到qmake 还要添加路径 pathmunge /opt/EmbedSky/qt-4.5/_install/x86/bin pathmunge /opt/EmbedSky/qt-4.5/_install/am/bin 到配置文件/etc/profile中 使用超级用户 输入命令source /etc/profile 后 再执行qtcreator命令 打开Qtcreator界面  进入Tools-Options左侧选择QT4-Qt Versions 右侧选项里:如果通过软件添加和载卸工具添加了qt4的话 Auto-detected会自动的选择Qt in PATH /usr/local/bin/qmake-qt4 用这个qmake工具生成的可执行文件不用添加-qws命令行参数 自己安装的qt4.5 我是如下配置 Qt in PATH  /opt/EmbedSky/qt-4.5/_install/arm/bin/qmake 添加Manual x86-qt-4.5.0 /opt/EmbedSky/qt-4.5/_install/x86/bin/qmake 生成的可执行文件需要添加-qws命令行参数  分别点击rebuild 最后点击ok Build Settings 中根据需要Add刚才配置的选择  BUild configuration for ... 也选择相应的选项 在QT工程文件.Pro中添加以下内容 INCLUDEPATH += /usr/local/include/opencv LIBS += /usr/local/lib/libcv.so \         /usr/local/lib/libcvaux.so \         /usr/local/lib/libcxcore.so \         /usr/local/lib/libhighgui.so \         /usr/local/lib/libml.so pc仿真必须将以上库还要添加到项目文件夹里 如果是arm开发板的程序则添加以下内容 INCLUDEPATH += /usr/local/arm/lib/opencv/include/opencv LIBS += /usr/local/arm/lib/opencv/lib/libcv.so \         /usr/local/arm/lib/opencv/lib/libcvaux.so \         /usr/local/arm/lib/opencv/lib/libcxcore.so \         /usr/local/arm/lib/opencv/lib/libhighgui.so \         /usr/local/arm/lib/opencv/lib/libml.so 编译生成可执行文件 移植到开发板 提示缺少什么库就按提示添加相应的图像库到lib中 以及qt4.5的库 和字体都添加到相应的目录中 中间有一个这个提示 QWSDisplay::Data::init: Invalid argument Client can't attach to main ram memory. Aborted 这个是表示缺少命令行参数-qws 是Qt4的问 运行命令添加该参数 ok一切正常 注意的是qtcreator。bin不能用于pc的编程 总是提示找不到opencv图像库 系统自带的qt适合pc编程 如果提示无法保存文件 可以用系统管理登录 chmod文件属性 自己安装的qt 只能用于arm的交叉编译  在安装qt4.7的过程中 又发现pc版本总是提示找不到opencv图像库 后来卸载了qt4.5和qt3,来回重装qt4.7又可以了 然后马上保存的系统。 ******pc编程如果带opencv库 会提示找不到库文件。 pc的编译器换成交叉编译时 先运行qmake生成make文件 直接运行rebuilt不行 会提示opencv的库文件格式错误。  Qt creator 添加qmake rebuild出错 [日期:2011-04-23] 来源:Linux社区 作者:c05170519 在Qt creater-->tools-->Qptios-->Qt4-->Qt Versions中添加qmake(qt embeddedd版的),然后Rebuild Degugging helper的时候(就是把那个红x变成绿勾)的时候出现下面的错误: Building debugging helper library in /QT/qte-4.5.0/qtc-debugging-helper/ Running /usr/bin/make distclean... rm -f gdbmacros.o rm -f *~ core *.core rm -f libgdbmacros.so.1.0.0 rm -f libgdbmacros.so libgdbmacros.so.1 libgdbmacros.so.1.0 libgdbmacros.a rm -f Makefile Running /QT/qte-4.5.0/bin/qmake ... Cannot find file: . Running /usr/bin/make ... arm-linux-g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DUSE_QT_GUI=1 -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../mkspecs/qws/linux-arm-g++ -I. -I../include/QtCore -I../include/QtGui -I../include -I. -I. -o gdbmacros.o gdbmacros.cpp make: arm-linux-g++:命令未找到 make: *** [gdbmacros.o] 错误 127 最后两行还是乱码,百度google无解。 具体怎么找出毛病的忘了,只记得好像上面把qmake添加进环境变量时,如果写进/etc/bash.bashrc,auto-detect是找不到它的,于是对/etc/profle和/etc/bash.bashrc这两个文件产生好奇,一问老师才知道,前者是全局的,对整个系统都有作用的,而后者只对终端起作用,而我的qmake虽然写的是/etc/profile,但是交叉编译器却写进/etc/bash,bashrc(图省事,修改profile要重启电脑,后者只要source以下就可以了),rebuild时需要调用相关的交叉编译器,写在/etc/bash,bashrc的话编译器就找不到了,所以会出错。 网上也找到一位东大读博哥么的博客,他是在相关qmake.conf做了修改,在交叉编译器前面加上准确的地址,似乎也能通过,但是包含交叉编译器的qmake.conf有很多同名文件,他修改可能是“正确的”一个,但是其他的都没动,谁知道以后会出什么错呢? 解决: 把交叉编译器写进/etc/profile,而不是/etc/bash.bash.rc 配置qtcreator的ARM编译环境 1 下载arm§920t-eabi.tar.gz(arm§-linux-gcc 4.1.2),解压到/opt/arm/4.1.2/目录下 2 打开qt§creator的Options选项,选择QT4选项,添加一个编译环境,Version name填Qte4.6.3 (这个可以随便填),qmake location填/opt/qt§e/bin/qmake(我先前已经编译了QT4.6.3 embeded,并安装在/opt/qt§e/目录下,自己相应修改),点Rebuild,应该会出错。 3 打开命令行,输入sudo ln -s /opt/arm/4.1.2/bin/arm-linux-g++§ /usr/bin/ ,为arm-linux-g++§建立符号链接,因为qtcreator貌似只认/usr/bin/目录下的,PATH里面无效。 4 到这一步已经快好了,但是点Rebuild还是会出错,错误的原因是什么 #include 什么的,这是因为arm-linux-g++§找不到头文件。首先,我是按照别人说的在.bashrc里面加入了环境变量:export CPLUS_INCLUDE_PATH=/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi ,然后重新打开qtcreator,点Rebuild,不行,还是出错。但是在~/qte/example/widgets/calculator/目录下,执行/opt/qte/qmake 然后make,已经没有问题了。所以得出结论是,GDM在打开Gnome的时候不会执行.bashrc文件。我需要找一个GDM会执行的文件放export。google的半天,说/etc/gdm/Xsession文件会被执行。但是我看了看这个文件,发现和网上说的不一样,我的是Archlinux。我这个貌似XDM才会执行。又google+乱看了半天,终于被我发现/etc/X11/xinit/xinitrc.d/目录下的都会被执行,于是写了一个cplus_include_path的bash文件,在里面export了CPLUS_INCLUDE_PATH这个环境变量。注销重新登陆,打开qtcreator,然后Rebuild,OK,succeed了。开心。 5 一不小心手贱点了QT IN PATH的Rebuild,fuck了,又出错了。而且出错信息显示,Linux上的QT也用了arm-linux-g++在编译,这当然要出错了。到命令行,unset了CPLUS_INCLUDE_PATH,又到calculator目录下,用本机的qmake,make,没有错误。总结下,就是CPLUS_INCLUDE_PATH是所有的g++都会使用的一个环境变量。把export CPLUS_INCLUDE_PATH=/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi改成了export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++:/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi,注销,测试,还是出错。export|grep CPLUS,发现CPLUS_INCLUDE_PATH这个环境变量与来是没有的,悲剧。此方法不通。又不断的尝试。我在想能不能把每个不同版本的g++的include path都独立开来。沿着这个方向,我找到了specs,看了老半天,这个也不方便,要用自定义的覆盖默认的specs,没有配置文件可以修改。后来找到了qmake的配置文件去了,发现qmake.conf可以自定义g++ gcc的参数,兴奋啊。找到了这个网页http://doc.trolltech.com/4.5/qmake-variable-reference.html#qmakespec§ 从头到尾大概的读了便,QMAKE_CXXFLAGS 看上去比较靠谱,于是编辑/opt/qte/mkspecs/linux-g++/qmake.conf,里面貌似没有提到这个变量,但是文件里面include了几个文件。一一打开这几个文件,最后在/opt/qte/mkspecs/common/g++.conf里发现了这个变量。原来的是QMAKE_CXXFLAGS += $$QMAKE_CFLAGS,我增加了一行QMAKE_CXXFLAGS += -I/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++ -I/opt/arm/4.1.2/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi,然后把/etc/X11/xinit/xinitrc.d/cplus_include_path删除,重新登陆,打开qtcreator,先对QT IN PATH进行Rebuild,OK,没有错误,然后对Qte 4.6.3 进行Rebuild,wonderful,也没有错误。终于把这个问题解决了。 6 看似很简单的一个问题,牵扯太多了,问题终于解决,真不容易啊。 特此记载。。。。。。。。。。。。。。。。。。。。。。。。 opencv2.2支持qt  移植时选择 cmake界面 选择with-qt和with-qt-opengl 另外 qt-qmake-executable要选择4.6以上的qt版本的qmake Qt4.7的配置命令: ./configure -embedded arm -release -opensource -silent -qt-libpng -qt-libjpeg -qt-libmng -qt-libtiff -no-multimedia -make libs -nomake tools -nomake examples -nomake docs -nomake demos -rpath -qt-kbd-linuxinput -qt-mouse-tslib -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-qt3support -no-nis -no-cups -no-iconv -no-dbus -no-openssl -no-fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-glib -prefix /opt/EmbedSky/qt-4.7-arm -I /opt/EmbedSky/tslib_install/include -L /opt/EmbedSky/tslib_install/lib libpng.so ,libz.so和librt.so使用交叉编译器路径下的本人是4.33的 ../4.33/arm-none-linux-gnueabi/libc/armv4t/usr/lib/目录   提示错误: OpenCV-2.2.0/modules/ml/src/gbt.cpp:474: error: 'expl' was not declared in this scope 修改如下 #include "precomp.hpp" #include #include using namespace std; #define pCvSeq CvSeq* #define pCvDTreeNode CvDTreeNode* #define CV_CMP_FLOAT(a,b) ((a) < (b)) static CV_IMPLEMENT_QSORT_EX( icvSortFloat, float, CV_CMP_FLOAT, float) #if ANDROID // <-- 删掉 #define expl(x) exp(x) #endif // <-- 删掉... 提示错误: ../../lib/libopencv_features2d.so.2.2.0: undefined reference to `cv::SIFT::SIFT(double, bool, bool, int, int, int, int)' 参考以下网址 https://code.ros.org/trac/opencv/changeset/4609  然后拷贝修改的文件过去 cp /home/pww71/features2d.hpp /opt/OpenCV-2.2.0/modules/features2d/include/opencv2/features2d/ cp /home/pww71/sift.cpp /opt/OpenCV-2.2.0/modules/features2d/src/ cp /home/pww71/gbt.cpp /opt/OpenCV-2.2.0/modules/ml/src/gbt.cpp 提示错误: /opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libQtGui.so.4, needed by ../../lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link) 出现这个错误是因为 交叉编译器没有找到qt库 拷贝过去 cp /opt/EmbedSky/qt-4.7-arm/lib/*.so.4  /opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib/  qt4.7 pro文件 INCLUDEPATH += /usr/local/arm/lib/opencv/include/ \                /usr/local/arm/lib/opencv/include/opencv LIBS += /lib/libopencv_core.so \         /lib/libopencv_highgui.so \         /lib/libopencv_ml.so \         /lib/libopencv_calib3d.so \         /lib/libopencv_contrib.so \         /lib/libopencv_features2d.so \         /lib/libopencv_flann.so \         /lib/libopencv_gpu.so \         /lib/libopencv_imgproc.so \         /lib/libopencv_legacy.so \         /lib/libopencv_objdetect.so \         /lib/libopencv_video.so LIBS += /usr/local/lib/libopencv_core.so \         /usr/local/lib/libopencv_highgui.so \         /usr/local/lib/libopencv_ml.so \         /usr/local/lib/libopencv_calib3d.so \         /usr/local/lib/libopencv_contrib.so \         /usr/local/lib/libopencv_features2d.so \         /usr/local/lib/libopencv_flann.so \         /usr/local/lib/libopencv_gpu.so \         /usr/local/lib/libopencv_imgproc.so \         /usr/local/lib/libopencv_legacy.so \         /usr/local/lib/libopencv_objdetect.so \         /usr/local/lib/libopencv_video.so 昨天 总算把linux下的opencv配置完成了 现在共享给大家 1,下载OpenCV-2.1.0tar.bz2 2,解压到pww文件夹 我用的home下pww文件夹 3,下载安装CMake-gui Qt4接口的 以下是本人的解压opencv2.1.0tar.bz2文件的目录 源码路径:/home/pww/temp/opencv-2.1.0 库建立目录:/home/pww/temp/opencv-2.1.0/build 4,选择需要的选项 configure-》generate configure错误: CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name. sudo apt-get install build-essential 升级相应文件 configure-》generate ok 5,进入build目录 make 6,进入bin目录 运行一个程序 提示错误:主要是图像显示需要的gtk+2.0 具体哪些不记得了 反正按提示的安装相应的东东 7,安装好后 重新make一次 然后再运行程序 ok 运行正常了 无线网卡dwa-125的fedora14下的驱动 include/ifacertmp_usb.h 文件,把: #define RTUSB_URB_ALLOC_BUFFER(pUsb_Dev, BufSize, pDma_addr) usb_buffer_alloc(pUsb_Dev, BufSize, GFP_ATOMIC, pDma_addr) #define RTUSB_URB_FREE_BUFFER(pUsb_Dev, BufSize, pTransferBuf, Dma_addr) usb_buffer_free(pUsb_Dev, BufSize, pTransferBuf, Dma_addr) 替换成: #define RTUSB_URB_ALLOC_BUFFER(pUsb_Dev, BufSize, pDma_addr) usb_alloc_coherent(pUsb_Dev, BufSize, GFP_ATOMIC, pDma_addr) #define RTUSB_URB_FREE_BUFFER(pUsb_Dev, BufSize, pTransferBuf, Dma_addr) usb_free_coherent(pUsb_Dev, BufSize, pTransferBuf, Dma_addr) 编译OPENCV2.2 reference URL:     http://opencv.willowgarage.com/wiki/InstallGuide 安装库:     apt-get install build-essential  cmake pkg-config  libpng12-0 libpng12-dev libpng++-dev libpng3  libpnglite-dev libpngwriter0-dev libpngwriter0c2 zlib1g-dbg zlib1g zlib1g-dev libjasper-dev libjasper-runtime libjasper1  pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libjpeg8 libjpeg8-dev libjpeg8-dbg ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 python-numpy libpython2.6 python-dev python2.6-dev 操作步骤:    cd ~/projects/Opencv2.2  # the directory containing INSTALL, CMakeLists.txt etc.    mkdir release    cd release    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.2 -D BUILD_PYTHON_SUPPORT=ON ..    make    make install 添加库路径: echo /usr/local/opencv2.2/lib > /etc/ld.so.conf.d/opencv.conf 设置pkg-config echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2.2/lib/pkgconfig' >> /root/.bashrc source /root/.bashrc 编译android下的opencv库: http://opencv.willowgarage.com/wiki/Android arm-2009q3交叉编译opencv2.0.0 操作步骤:        cd ~/projects/Opencv2.0.0     ./configure --host=arm-none-linux-gnueabi --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --without-v4l --enable-shared --disable-apps CXX=arm-none-linux-gnueabi-g++ CPPFLAGS=-I/usr/include --prefix=/usr/local/opencv_arm     make     make  install 编译OpenCV for arm-linux (转) 2011-03-09 17:25 重要 OpenCV是Intel支持的开源计算机视觉库。它由一系列C和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。它不依赖于其它的外部库—尽管也可以使用某些外部库。 OpenCV使用BSD License,对非商业应用和商业应用都可以免费使用。 OpenCV的主要应用环境是Windows和Linux,对于嵌入式系统如arm-linux,很少有资料提到,因此将我在arm-linux编译过程下来和大家分享。 预备工作: a. 安装交叉编译链   我使用的是arm-linux-gcc 4.3.2,解压到目录/usr/local/arm/4.3.2,然后在环境变量PATH中增加/usr/local/arm/4.3.2/bin b. 安装CMake   OpenCV 2.0之后的版本,必须使用CMake创建Makefile。我使用的CMake版本是2.8.2,解压到目录/usr/local/cmake-2.8.2-Linux-i386,然后在环境变量PATH中增加/usr/local/cmake-2.8.2-Linux-i386/bin 编译OpenCV: 1、解压OpenCV 2.1到/usr/local/OpenCV-2.1.0目录下 2、创建/usr/local/opencv-arm/目录,作为CMake编译arm版本的工作目录 3、在X环境下,运行cmake-gui    选择源代码目录:/usr/local/OpenCV-2.1.0    选择Build目录:/usr/local/opencv-arm/    点击Configure,保持generator为Unix Makefiles,选择Specify options for cross-compiling,点击Next    Operating System填写arm-inux    C Compilers填写/usr/local/arm/4.3.2/bin/arm-linux-gcc    C++ Compilers填写/usr/local/arm/4.3.2/bin/arm-linux-g++    程序库的Target Root填写/usr/local/arm/4.3.2/,然后点击Finish    修改默认配置,默认安装目录为/usr/local,对于交叉编译的库来说并不合适,所以我把CMAKE_INSTALL_PREFIX变量改为/usr/local/arm/lib/opencv/    另外,我没有安装tiff图像的支持,因此去掉WITH_TIFF    点击Generate生成Makefile 4、在终端界面中,进入目录/usr/local/opencv-arm,运行make编译opencv 编译时发现如下错误: Linking CXX executable ../../bin/opencv_createsamples ../../lib/libcxcore.so: undefined reference to `clock_gettime' ../../lib/libcxcore.so: undefined reference to `pthread_key_create' ../../lib/libcxcore.so: undefined reference to `pthread_getspecific' ../../lib/libcxcore.so: undefined reference to `pthread_setspecific' 原因是cmake不认识我定义的arm-linux系统标记,没有加上库pthread和rt的链接选项 5、修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt,重新编译,错误消除 6、运行make install,将opencv生成的库和头文件安装到目录/usr/local/arm/lib/opencv/     测试OpenCV库 1、首先确认一下库是否已编译正确及其安装位置 查看头文件:  [root@localhost opencv-arm]# ls /usr/local/arm/lib/opencv/include/opencv/   cvaux.h    cvcompat.h  cv.hpp        cvtypes.h  cvvidsurv.hpp  cxcore.h    cxerror.h  cxmat.hpp  cxoperations.hpp  highgui.h    ml.h   cvaux.hpp  cv.h        cvinternal.h  cvver.h    cvwimage.h     cxcore.hpp  cxflann.h  cxmisc.h   cxtypes.h         highgui.hpp  [root@localhost opencv-arm]# ls /usr/local/arm/lib/opencv/include/opencv/ cvaux.h    cvcompat.h  cv.hpp        cvtypes.h  cvvidsurv.hpp  cxcore.h    cxerror.h  cxmat.hpp  cxoperations.hpp  highgui.h    ml.h cvaux.hpp  cv.h        cvinternal.h  cvver.h    cvwimage.h     cxcore.hpp  cxflann.h  cxmisc.h   cxtypes.h         highgui.hpp 查看库文件: [root@localhost opencv-arm]# ls /usr/local/arm/lib/opencv/lib   libcv.a  libcvaux.a  libcvaux.so  libcv.so  libcxcore.a  libcxcore.so  libhighgui.a  libhighgui.so  libml.a  libml.so  [root@localhost opencv-arm]# ls /usr/local/arm/lib/opencv/lib libcv.a  libcvaux.a  libcvaux.so  libcv.so  libcxcore.a  libcxcore.so  libhighgui.a  libhighgui.so  libml.a  libml.so 2、写个简单的测试程序,打开摄像头并创建一个窗口显示 // test.cpp     #include    #include    #include        int main()   {           CvCapture* capture = NULL;           IplImage* frame = NULL;             if( !(capture = cvCaptureFromCAM(-1)))           {                   fprintf(stderr, "Can not open camera.\n");                   return -1;           }             cvNamedWindow("video", 1);             while(frame = cvQueryFrame( capture ) )           {                   cvShowImage("video", frame);           }             cvDestroyWindow("video");           cvReleaseCapture(&capture);           return 0;   }  // test.cpp #include #include #include 3、编译链接测试程序 arm-linux-g++ -I/usr/local/arm/lib/opencv/include/opencv/ -L/usr/local/arm/lib/opencv/lib/ -lcv -lcxcore -lhighgui -lpthread -lrt -o test test.cpp 4、复制程序到嵌入式系统中运行 首先复制主机/usr/local/arm/lib/opencv/lib/下面的几个.so文件到嵌入式Linux系统的/lib/目录下,再复制我们编译的test到嵌入式系统/opt/myworks/目录下(并确保文件test属性为可执行),如果test可正常运行没有缺少库文件,说明我们编译的arm-linux版OpenCV库已经可以正常使用。 shell的初始化文件:/etc/profile和/etc /bashrc(bash.bashrc) 上一篇 / 下一篇  2011-02-24 14:53:18 / 个人分类:Error: Reference source not found 查看( 13 ) / 评论( 0 ) / 评分( 0 / 0 ) bash的几个初始化文件 - [Ubuntu] (1)/etc/profile 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。 (2)/ect/bashrc Ubuntu没有此文件,与之对应的是/ect/bash.bashrc 它也是全局(公有)的 bash执行时,不管是何种方式,都会读取此文件。 (3)~/.profile 若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。 另外,图形模式登录时,此文件将被读取,即使存在~/.bash_profile和~/.bash_login。 (4)~/.bash_login 若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。 (5)~/.bash_profile Unbutu默认没有此文件,可新建。 只有bash是以login形式执行时,才会读取此文件。通常该配置文件还会配置成去读取~/.bashrc。 (6)~/.bashrc 当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。 (7)~/.bash_logout 注销时,且是longin形式,此文件才会读取。也就是说,在文本模式注销时,此文件会被读取,图形模式注销时,此文件不会被读取。 下面是在本机的几个例子: 1. 图形模式登录时,顺序读取:/etc/profile和~/.profile 2. 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc和~/.bashrc 3. 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile和~/.bash_profile 4. 从其它用户su到该用户,则分两种情况: (1)如果带-l参数(或-参数,--login参数),如:su -l username,则bash是lonin的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile和~/.bash_profile。 (2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc和~/.bashrc 5. 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout 6. 执行自定义的shell文件时,若使用“bash -l a.sh”的方式,则bash会读取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于bash shell),则不会读取上面的任何文件。 7. 上面的例子凡是读取到~/.bash_profile的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。 OpenCV2.1在Linux下的安装(以Ubuntu为例) (2010-11-03 17:34:29)转载§ 标签: 编译时间§ 编译程序§ 分类: OpenCV§ 1、下载OpenCV2.1的源代码:从http://sourceforge.net/projects/opencvlibrary§ 下载OpenCV源码,这里假设它的文件名为OpenCV-2.1.0.tar.bz2,然后解压: tar jvxf OpenCV-2.1.0.tar.bz2 –C ~/ 执行命令后把代码解压到“home/用户名”目录下,目录名为:OpenCV-2.1.0 2、下载Cmake并安装。在Cmake的官方网站http://www.cmake.org/§下载Linux下的版本,建议用已经编译好的版本,以节省编译时间,这里以cmake-2.8.2-Linux-i386.tar.gz为例。解压: tar zxvf cmake-2.8.2-Linux-i386.tar.gz –C ~/ 执行命令后把代码解压到“home/用户名”目录下,目录名为:cmake-2.8.2-Linux-i386,执行文件就放在bin目录下 3、安装必要的依赖包。为了实现OpenCV的摄像头捕捉功能和多文件格式支持,需要安装一些必要的工具。在Ubuntu下的安装过程如下: sudo apt-get install libavformat-dev libswscale-dev sudo apt-get install libgtk2.0-dev 4、用Cmake生成Makefile。在“home/用户名”目录下建立一个目录“opencv_build”。进入cmake-2.8.2-Linux-i386\bin目录,运行: ./cmake-gui 然后选择源代码目目录:OpenCV-2.1.0和存放生产文件的目录opencv_build,点Configure,然后点Generate 5、编译源代码。进入目录opencv_build,输入: make 经历一段时间编译完成后,再运行 sudo make install 安装OpenCV到usr/local中 6、添加环境变量PKG_CONFIG_PATH: export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/tiger/opencv_build/unix-install 当输入:pkg-config --cflags opencv 出现如下提示: tiger@ubuntu:~/opencv_build$ pkg-config --cflags opencv -I/usr/local/include/opencv 当输入:pkg-config --libs opencv出现如下提示: tiger@ubuntu:~/opencv_build$ pkg-config --libs opencv -L/usr/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore 这样就安装好了 7、测试 进入OpenCV-2.1.0下的samples\c目录,利用下面的命令编译程序,这假设opencv-prgm.c为代码 gcc `pkg-config --cflags --libs opencv` -o my-opencv-prgm my-opencv-prgm.c 编译后用 ./ my-opencv-prgm 测试。 OpenCV 2.2 CrossCompilation for ARM – fixes Reported by: hyblade Owned by: Priority: major Component: build/install problems Version: 2.2 Keywords: ARM, g++, CodeSourcery, OMAP Cc: Description Hello there, A f
/
本文档为【linux_+qt4.7+opencv2.2移植到tq2440开发板】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索