打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
配置OpenCV4Android开发环境

Archive for category OpenCV

Ubuntu14.10源码编译安装OpenCV

在Ubuntu14.10上要如何从源码编译到安装OpenCV这个计算机视觉库呢?下面我们一直来感受下要如何操作:

1.安装必要工具:

由于需要下载源码和编译源码,我们使用sudo apt-get install git cmake命令安装最基本的工具。

2.编译安装OpenCV:

a.下载源码:

cd ~/

git clone https://github.com/Itseez/opencv.git

b.编译源码:

cd opencv

mkdir release

cd release

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

(release目录是为了保存编译过程产生的中间和目标文件,cmake是根据相关的配置文件生成Makefile)

make

c.安装OpenCV:

sudo make install

至此,相关库安装完成。

参考网址:
http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html?highlight=install

转载请注明:

转载自X-SLAM

本文链接地址: Ubuntu14.10源码编译安装OpenCV






Tags: ,

配置OpenCV4Android开发环境

Android NDK包解压在:$HOME/android/android_ide/android-ndk

Android SDK包解压在:$HOME/android/android_ide/android-sdk-linux/

从http://sourceforge.net/projects/opencvlibrary/files/opencv-android/下载所需版本的OpenCV4Android库压缩包(我这边下载的是2.4.11,包名为OpenCV-2.4.11-android-sdk.zip),

执行unzip OpenCV-2.4.11-android-sdk.zip命令解压到目录OpenCV-android-sdk中,接下来运行eclipse,在“Project Explorer”中单击右键,单击右键菜单“Import…”,弹出如下对话框:


选择上图中的“Existing Android Code into Workspace”,然后单周“Next>”,弹出如下对话框:


在“Root Directory:”后面点击“Browse…”,弹出的对话框选择刚才解压出来的Opencv-android-sdk目录(如/home/xinu/android/android_ide/OpenCV-android-sdk),默认会把相关的库和例子源码项目选中,此时点击“Finish”按键即进行导入操作。此时在“Console”框中会有如下错误提示:

23:13:17 **** Auto Build of configuration Default for project OpenCV Tutorial 2 – Mixed Processing ****

/ndk-build.cmd

Cannot run program "/ndk-build.cmd": Unknown reason

看来是我们的NDK工具没有添加正确,此时我们在“Project Explorer”选中出错的项目,然后点击菜单“Project”-“Properties”,此时弹出如下对话框:


在上图的“C/C++ Build”一项点击后,在右边的“Build Command:”一项可以看到值为“${NDKROOT}/ndk_build.cmd”,看来是NDKROOT没有设置,此时,我们点击“OK”退出后再点击菜单“Windows”-“Preferences”,弹出如下对话框:


在上图中点击“Android”-“NDK”,在右击的“NDK Location:”一项选择上相应的NDK包路径(如/home/xinu/android/android_ide/android-ndk),点击“OK”,重启eclipse后,仍有如下提示:

23:36:37 **** Auto Build of configuration Default for project OpenCV Tutorial 2 – Mixed Processing ****

/ndk-build.cmd

Cannot run program "/ndk-build.cmd": Unknown reason

Error: Program "/ndk-build.cmd" not found in PATH

PATH=[/home/xinu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/xinu/golang/go/bin]

23:36:37 Build Finished (took 41ms)

此时,我们退出eclipse,在~/.profile文件中添加如下语句:

export PATH=$PATH:$HOME/android/android_ide/android-ndk:$HOME/android/android_ide/android-sdk-linux/platform-tools

然后注销后重新登录Ubuntu,此时再运行eclipse就不会有错误了,接下来我们运行例子Camera Preview,有如下运行结果(运行前需到OpenCV-android-sdk/apk目录下将OpenCV_2.4.11_Manager_2.20_armeabi.apk 应用先安装,该APK有针对不同的平台区分,请根据实际情况安装相应平台版本):

http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html

转载请注明:

转载自X-SLAM

本文链接地址: 配置OpenCV4Android开发环境






Tags: , , ,

调用OpenCV保存WebCam摄像头数据为JPEG图片

本次的代码在Ubuntu10.04上测试,功能是(OpenCV是2.0的,在2.0中的cvSaveImage函数里多了一个参数可以设置保存图片的质量)从电脑上的摄像头捕捉视频并一秒保存一张图片的效果并可以修改保存的图片的像素功能出发,实现了毫秒级保存图片的功能,代码如下(本程序在OpenCV1.0下编译不通过):
//使用OpenCV实现获取摄像头数据并毫秒级(在我的机上70ms左右保存一张,连续保存)保存成一张jpg图片,jpg图片的大小可调,文件名为save_cam.c
//编译方法为:g++ `pkg-config opencv –libs –cflags opencv` savecam.c –o savecam
#include<stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include<time.h>
#include <sys/timeb.h>
#include<stdlib.h>
#include<cv.h>
#include<cxcore.h>
#include<highgui.h>
int main( int argc,char ** argv )
{
  //声明IplImage指针
  IplImage* pFrame=NULL;
  IplImage* pSaveFrame=NULL;
  CvCapture* pCapture=NULL;
  static char filename[40];
  struct tm * tm_ptr;
  struct timeb tp;
  int p[3];
  p[0] = CV_IMWRITE_JPEG_QUALITY;
  p[1] = 10;  //质量值
  p[2] = 0;
  //创建窗口
  cvNamedWindow(“video”,1);
  //打开摄像头
  if( !(pCapture=cvCaptureFromCAM(-1)) ) //此处值为-1表示自动搜索到的第一个摄象头,而0则表示第一个,1则表示第2个,以此类推。
  {
    fprintf(stderr,”Can not open camera.\n”);
    return -1;
  }
  if(mkdir(“./Alert”,0755)==-1)
  {
    //创建时存在该目录会返回错误码,如不存在则创建它,但由于我们需要该目录,则出错也不处理
  }
  //逐帧读取视频
  while(pFrame=cvQueryFrame(pCapture))
  {
    cvShowImage(“video”,pFrame);
    if(cvWaitKey(2)>=0) break;
    pSaveFrame=cvCreateImage(cvSize(320,240),pFrame->depth,pFrame->nChannels);
    //get file name
    ftime(&tp);
    tm_ptr=localtime(&tp.time);
    snprintf(filename, 40, “./Alert/%04d%02d%02d%02d%02d%02d%04d.jpg”,tm_ptr->tm_year-100+2000,  tm_ptr->tm_mon + 1, tm_ptr->tm_mday, tm_ptr->tm_hour,tm_ptr->tm_min, tm_ptr->tm_sec,tp.millitm);
    cvResize(pFrame,pSaveFrame,CV_INTER_LINEAR);
    cvSaveImage(filename,pSaveFrame,p);
    cvReleaseImage(&pSaveFrame);
  }
  cvDestroyWindow(“video”);
  cvReleaseCapture(&pCapture);
  return 0;
}

转载请注明:

转载自X-SLAM

本文链接地址: 调用OpenCV保存WebCam摄像头数据为JPEG图片






Tags: , ,

移植OpenCV1.0至ARM9

在大学的时候,由于项目需要,将OpenCV移植到S3C2440的开发板上,下面是之前移植过程和碰到的问题解决过程:

首先,从http://www.opencv.org.cn下载1.0的源码包,然后解压出来,进入解压后的目录,再进行下面的修改:

将configure 文件下列内容注释掉(有两处),只保留GTK_CFLAGS=”” 、GTK_LIBS=”” 、have_gtk=no 三项内容(如下黑体所示);
# if test “$PKG_CONFIG” = “no” ; then
# echo “*** The pkg-config script could not be found. Make sure it is”
# echo “*** in your path, or set the PKG_CONFIG environment variable”
# echo “*** to the full path to pkg-config.”
# echo “*** Or see http://www.freedesktop.org/software/pkgconfig to get pkgconfig.”
# else
# PKG_CONFIG_MIN_VERSION=0.9.0
# if $PKG_CONFIG –atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
# echo “$as_me:$LINENO: checking for \”gtk+-2.0 gdk-pixbuf-2.0\”” >&5
echo $ECHO_N “checking for \”gtk+-2.0 gdk-pixbuf-2.0\”… $ECHO_C” >&6
# if $PKG_CONFIG –exists “”gtk+-2.0 gdk-pixbuf-2.0″” ; then
# echo “$as_me:$LINENO: result: yes” >&5
#echo “${ECHO_T}yes” >&6
# succeeded=yes

# echo “$as_me:$LINENO: checking GTK_CFLAGS” >&5
#echo $ECHO_N “checking GTK_CFLAGS… $ECHO_C” >&6
# GTK_CFLAGS=`$PKG_CONFIG –cflags “”gtk+-2.0 gdk-pixbuf-2.0″”`
# echo “$as_me:$LINENO: result: $GTK_CFLAGS” >&5
#echo “${ECHO_T}$GTK_CFLAGS” >&6
#
# echo “$as_me:$LINENO: checking GTK_LIBS” >&5
#echo $ECHO_N “checking GTK_LIBS… $ECHO_C” >&6
# GTK_LIBS=`$PKG_CONFIG –libs “”gtk+-2.0 gdk-pixbuf-2.0″”`
# echo “$as_me:$LINENO: result: $GTK_LIBS” >&5
#echo “${ECHO_T}$GTK_LIBS” >&6
# else
GTK_CFLAGS=””
GTK_LIBS=””
## If we have a custom action on failure, don’t print errors, but
## do set a variable so people can do so.
# GTK_PKG_ERRORS=`$PKG_CONFIG –errors-to-stdout –print-errors “”gtk+-
2.0 gdk-pixbuf-2.0″”`
# fi
# else
# echo “*** Your version of pkg-config is too old. You need version
#$PKG_CONFIG_MIN_VERSION or newer.”
# echo “*** See http://www.freedesktop.org/software/pkgconfig
# fi
# fi
# if test $succeeded = yes; then
# have_gtk=yes
#cat >>confdefs.h <<\_ACEOF
##define HAVE_GTK
#_ACEOF
# else
have_gtk=no
# fi

修改完后进行下面的操作:

安装好交叉编译工具链后再进行如下操作:

./configure –host=arm-linux –prefix=/home/guochongxin/opencv-arm2/ –without-gtk –without-carbon –without-v4l –without-quicktime –without-1394libs –without-ffmpeg –without-python –without-swig
在命令行里面加入了–without-v4l,因为编译时会出错,还有我暂时不用到v4l,如果你要做摄相头方面的应用,就需要去掉该参数,但编译时会出错,这个问题我也在改进中,有解决方法就会发出来共享.

上面的配置没有把libjpeg编译进去,也不会添加v4l,而配置修改为:

./configure –host=arm-linux –prefix=/home/guochongxin/opencv-arm –without-gtk –without-carbon –without-quicktime –without-1394libs –without-ffmpeg –without-python –without-swig  CXX=arm-linux-g++ CPPFLAGS=-I/home/guochongxin/crosstool/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include CFLAGS=-I/home/guochongxin/crosstool/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include LDFLAGS=-L/home/guochongxin/crosstool/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
则在编译到v4l时没有错误提示,也把libjpeg编译进去,因为把libjpeg的路径也通过配置设置进去了,注意libjpeg之前要交叉编译才可以,也注意上面的路径,注意libjpeg库要放到交叉编译工具链的库中.

接下来进行下面的操作:

make

make install

这里会在/home/guochongxin/opencv-arm2/目录下安装编译成功的文件,接下来如果需要编译代码,则需要设置如下的环境变量:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/guochongxin/opencv-arm2/lib/pkgconfig/
编译程序的方法是:

arm-linux-g++ `pkg-config –cflags –libs opencv` source.cpp -o destination

注意上面两个黑点是键盘上左上角波浪号在按下Shift键后输入的,而不是上引号,要区分开来.

上面步骤只是成功后发布出来,可能有小部分有问题,请根据实际情况修改,仅供参考,用到的交叉编译工具链是3.4.5版本的,制作过程在前面的博文有发表出来.

参考资料:《OpenCV 在Liod 开发板的移植及其应用》(华东师范大学电子系嵌入式竞赛组)

转载请注明:

转载自X-SLAM

本文链接地址: 移植OpenCV1.0至ARM9

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
pkg
ubuntu?下?GTK的安装
windows下的GTK编译问题
gcc/g++ 编译器使用简介
Gcc简介
pkg-config命令
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服