如何设置的OpenCV的摄像头,显示preVIEW在纵向脚手架哪个方向是纵向和全屏

& 相关文章 &
OpenCV使用VideoInput库从摄像头捕获视频
的YuShiQi提供了一个基于DirectShow实现的摄像头捕获类,但试用后效果一般,速度并没有明显的提高。 新版的OpenCV(OpenCV2.0及以后版本)提供了第三方的VideoInput库,该库实现了基于DirectShow的视频捕获,使用方便、功能强大,速度也很快。另外还有一个意外发现——腾讯QQ的视频捕获貌似用的也是这个库哦~~ 好了,下面就说说如何使用这个库 如果你的OpenCV版本低于2.0,请先去链接地址 下载VideoInput,我这里需要翻墙才能上去。如果使用2.0及以后版本则自带该库
VideoInput库 + Opencv2.3.1 + 无线摄像头 + VC2010
欺负人了,求助强大的网络,搜了好几天,几个搜索工具都让我用烂了,无外乎转载再转载(类似此篇文章:《OpenCV使用VideoInput库从摄像头捕获视频》),没个工程例子,对于我这样的鸟人有个鸟用呀(天下鸟人还是大多数的)。
没办法,还是靠自己吧。去到下载了videoInput Library——videoInput0.1995。解压,发现里面有VS2005和VS2008的源码,再打开他编译好的“videoInput Release.exe”,惊喜呀,无线摄像头可以使用了。太强大了。 看看
OpenCV+VideoInput 捕捉摄像头+人脸检测
【概述】 笔者用的环境是笔记本Win7+VS2010+OpenCV2.2
当利用OpenCV的cvCreateCameraCapture(0)、cvQueryFrame( pCapture )函数捕捉摄像头数据时,老是捕捉不到,显示黑窗口。 在网上搜了搜,发现笔记本内置摄像头无法简单得使用cvQueryFrame()来采集图像,它采集的是VFM格式的视频,一般USB外置摄像头都支持这种格式,而笔记本的摄像头驱动都只兼容Directshow,那么如何用Directshow采集视频呢?具体
OpenCV学习笔记(三十)——解开VideoInput面纱highgui
最近做一个东西,摄像头使用的高清摄像头,采集出来的视频是D1格式(720*480)。使用VideoCapture发现速度很忙,网上的朋友说VideoCapture提供的读写功能采用VFW,效率低下且有些格式支持不好。而 OpenCV 2.0 内置了videoInput Library,可以自动在VFW和DirectShow间切换。videoInput是老外写的功能强大的开源视频处理库。是一个第三方库,2.0~2.2的版本专门有一个3rdparty对该库进行支持,而在最新的2.3版本中,已经讲
高版本Opencv内置的videoInput库的使用方法(2)
的opencv2.4.3的使用方法,在前面一篇博文http://www.aiuxian.com/article/p-1131490.html已经介绍过。博文主要介绍了如何利用videoInput库打开多个摄像头,其他的就没有过多提及。有人就发现,如果我想使用其他的videoInput成员方法改怎么办? 更确切地说,比如把所有摄像头名称罗列出来,然后能够对具体摄像头进行开启关闭操作等等。 就我目前掌握的opencv的知识来看,还比较难处理这样的事情的。但如果直接使用videoInput库的话,这些问题都小菜一碟。再一个
static ”只能有一个VideoInput实例在opencv中运行,所以opencv中不支持多摄像头,而且由于VI被设置为private所以这个VI的性质是不能更改的。 所以我放弃了直接使用opencv的VideoCapture模块。改为直接采用其底层的VideoInput来实现多摄像头,解决"ERROR: SampleCB() - buffer sizes do not match "问题。 做法如下: 1.下载videoinput类库,遇到问题,现在由于其不再更新,所以最高版本的类库为vs08版本
win7 旗舰 vs2008 OpenCV2.3.1 解决了 OpenCV旧版本在win7下不能打开摄像头的问题
了一个叫Video Input的开源库,通过简单的C函数访问DS摄像机,并且和OpenCV配合良好,以至于OpenCV的 官网上有他的介绍。最终OpenCV 2.0纳入了VideoInput,从而让HighGUI支持了DS,但是O penCV 2.0的用法真的是…… 所以还有三个选择: cvcam VideoInput OpenCV 2.0 另外,OpenCV 1.0读取和保存AVI的接口也仅仅支持VFW,视频编解码也有VFW和DS的区分, 只支持VFW的,因此行为可能和Media Player等不同,因为目前大多数的播放器使用DS。 2.0开始用内置的FFMpeg了,支持格式较为广泛,我曾经顺利地打开rmvb和mkv,也算是一种进步。BTW,FFDShow就是DS包装下的FFMpeg
matlab连接摄像头读取视频部分解释
,deviceID,format) set(vid,'TriggerRepeat',Inf);%TriggerRepeat重复触发 set(vid,'FramesPerTrigger',1);%FramesPerTrigger每特定的帧数去触发捕获选定使用的视频源 set(vid,'FrameGrabInterval',1);%FrameGrabInterval帧的抓取时间间隔 %设置返回色彩 rgb正常颜色(YUY2格式颜色发红),grayscale是灰度 set(vid
OpenCV学习笔记(十)——图形交互和媒体接口HighGUI
OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用,甚至不需要其他的平台。新版本的HighGUI接口包括: 创建并控制窗口,该窗口可以显示图片并记录其内容 为窗口添加了trackbars控件,可以方便利用鼠标进行控制而不是之前版本的只能利用键盘 读写硬盘和内存的图片 读取摄像头的视频、读写视频文件 先来介绍UI,包括函数createTrackbar、getTrackbarPos、setTrackbarPos、imshow、namedWindow
机器视觉开源处理库汇总-介绍n款计算机视觉库/人脸识别开源库/软件 -几种图像处理类库的比较-视觉相关网站
a wide set of functions to approach computer vision and robotics problems with single and multiple views, and with different vision se... OpenCV的扩展库ImageNets ImageNets 是对OpenCV 的扩展,提供对机器人视觉算法方面友好的支持,使用Nokia的QT编写界面。 libvideogfx 视频处理、计算机视觉和计算机图形学的快速开发库
C#视频采集方法对比
stop = stopC
capture.Dispose(); AForge
AForge是一套纯正的.net开源图像处理类库,它的视频捕获类也是基于DirectShow的,但更加好用,功能更多,从使用和帮助来看更类似微软的类库。 AForge
介绍完它们之后,我们来比较下它们。它们都是基于DirectShow的,所以性能几乎一样。实际上,我个人认为,摄像头所用
C#视频采集方法对比
stop = stopC
capture.Dispose(); AForge
AForge是一套纯正的.net开源图像处理类库,它的视频捕获类也是基于DirectShow的,但更加好用,功能更多,从使用和帮助来看更类似微软的类库。 AForge
介绍完它们之后,我们来比较下它们。它们都是基于DirectShow的,所以性能几乎一样。实际上,我个人认为,摄像头所用
高版本Opencv内置的videoInput库的使用方法(1)
环境: Windows XP QtCreator Qt4.8.3 Opencv2.4.3 源代码下载: 《高版本Opencv内置的videoInput库的使用方法》 特别标注: 有些网站转载我的文章不标明出处,并且转载不到位,没有把相应的链接一块转过去,比如说下载链接或相关文献的链接等,导致一些网友阅读和使用出现障碍和知识的不连续性,所以在此特别标注:我的这篇文章发表在CSDN博客上,可以到CSDN博客来阅读。 过程: 有些网友看了我http://www.aiuxian.com/article
如何使用MATLAB进行USB2.0摄像头的编程 .
Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了。在在这帖中我们主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程 废话不多说,我们开始言归正传了。但是一定记住你必须安装了PC摄像头才可以进行下面的东西,如果说首次安装摄像头最好重启下PC,否则可能出现没法识别摄像头。 整个过程我们需要做如下几件事情: 1、查询USB2.0Camera 的具体参数(imaqhwinfo) 2、创建视频输入对象(videoinput) 3、图像预览和显示(preview
如何使用MATLAB进行USB2.0摄像头的编程
Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了。在在这帖中我们主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程 废话不多说,我们开始言归正传了。但是一定记住你必须安装了PC摄像头才可以进行下面的东西,如果说首次安装摄像头最好重启下PC,否则可能出现没法识别摄像头。 整个过程我们需要做如下几件事情: 1、查询USB2.0Camera 的具体参数(imaqhwinfo) 2、创建视频输入对象(videoinput) 3、图像预览和显示(preview
如何使用MATLAB进行USB2.0摄像头的编程
Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了。在在这帖中我们主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程 废话不多说,我们开始言归正传了。但是一定记住你必须安装了PC摄像头才可以进行下面的东西,如果说首次安装摄像头最好重启下PC,否则可能出现没法识别摄像头。 整个过程我们需要做如下几件事情: 1、查询USB2.0Camera 的具体参数(imaqhwinfo) 2、创建视频输入对象(videoinput) 3、图像预览和显示(preview
Matlab摄像头基本操作
Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了。在在这帖中我们主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程 废话不多说,我们开始言归正传了。但是一定记住你必须安装了PC摄像头才可以进行下面的东西,如果说首次安装摄像头最好重启下PC,否则可能出现没法识别摄像头。 整个过程我们需要做如下几件事情: 1、查询USB2.0Camera 的具体参数(imaqhwinfo) 2、创建视频输入对象(videoinput) 3、图像预览和显示(preview
【转】opencv视频读取问题
原文地址:http://www.cnblogs.com/yingying0907/archive//2602362.html opencv视频读取问题 视频读写概述
对视频进行读写,可使用OpenCV提供的CvCapture和CvVideoWriter。 在Windows平台下,OpenCV以前提供的读写功能采用VFW,效率低下且有些格式支持不好。而 OpenCV 2.0 内置了videoInput Library,可以自动在VFW和DirectShow间切换
计算机视觉库、人脸识别开源库
库 JavaCV JavaCV 提供了在计算机视觉领域的封装库,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。此外,该工具可以很容易地使用Java平台的功能。 JavaCV还带有硬件加速的全屏幕图像显示(CanvasFrame),易于在多个内核中执行并行代码(并... 运动检测程序 QMotion QMotion 是一个采用 OpenCV 开发的运动检测程序,基于 QT。 视频监控系统 OpenVSS OpenVSS
计算机视觉库/人脸识别开源库/软件
integrates DirectX11 with DirectShow framework. So it has the following features: GShow 是实时 图像/视频 处理滤波开发包,集成DiretX11。... 视频捕获 API VideoMan VideoMan 提供一组视频捕获 API 。支持多种视频流同时输入(视频传输线、USB摄像头和视频文件等)。能利用 OpenGL 对输入进行处理,方便的与 OpenCV,CUDA 等集成开发计算机视觉系统。 开放模式识别项目
& 2012 - 2016 & aiuxian.com &All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
OpenCVTurorial1-Cammera Preview
摘要:OpenCVTurorial1-CammeraPreview,有需要的朋友可以参考下。这篇教程展示了Android应用可以使用OpenCV(通过OpenCV应用助手类)的最简单的方法。这个应用通过使用OpenCV的JavaAPI或者原生的摄像头API,从摄像头实时抓取预览框,并全屏模式显示。而且该应用支持用户在OpenCVJava模式和原生模式之间切换。仔细观察下面AndroidManifest.xml文件的特殊许可,有这个才能被允许使用摄像头设备:&uses-perm
OpenCVTurorial1-Cammera Preview,有需要的朋友可以参考下。
这篇教程展示了Android应用可以使用OpenCV(通过OpenCV应用助手类)的最简单的方法。这个应用通过使用OpenCV的Java API或者原生的摄像头API,从摄像头实时抓取预览框,并全屏模式显示。而且该应用支持用户在OpenCV Java模式和原生模式之间切换。
仔细观察下面AndroidManifest.xml文件的特殊许可,有这个才能被允许使用摄像头设备:
&uses-permissionandroid:name=&android.permission.CAMERA&/&&uses-featureandroid:name=&android.hardware.camera&android:required=&false&/&&uses-featureandroid:name=&android.hardware.camera.autofocus&android:required=&false&/&&uses-featureandroid:name=&android.hardware.camera.front&android:required=&false&/&&uses-feature android:name=&android.hardware.camera.front.autofocus&android:required=&false&/&
同时注意,AndroidManifest.xml文件中下面这行,它用来使能应用全屏模式运行:
&application android:icon=&@drawable/icon& android:label=&@string/app_name& android:theme=&@android:style/Theme.NoTitleBar.Fullscreen&&
本篇教程,仅仅定义了Android Activity类,并且用到了OpenCV的辅助视觉类&&Add hyperlink to description of the OpenCV Viewclass&&。该应用的布局在tutorial1_surface_view.xml文件中声明如下:
&FrameLayoutxmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=http://schemas.android.com/tools xmlns:opencv=http://schemas.android.com/apk/res-auto android:layout_width=&match_parent& android:layout_height=&match_parent& & &org.opencv.android.JavaCameraView android:layout_width=&fill_parent& android:layout_height=&fill_parent& android:visibility=&gone& android:id=&@+id/tutorial1_activity_java_surface_view& opencv:show_fps=&true& opencv:camera_id=&any& /& &org.opencv.android.NativeCameraView android:layout_width=&fill_parent& android:layout_height=&fill_parent& android:visibility=&gone& android:id=&@+id/tutorial1_activity_native_surface_view& opencv:show_fps=&true& opencv:camera_id=&any& /& &/FrameLayout&
上面这段声明创建且隐藏了两个预定义的OpenCv类型全屏视窗。根据用户在应用菜单中的选择,每一个都能变成可见的。
该应用Activity类在Tutorial1Activity.java文件中定义。通过OpenCV管理Android服务(OpenCV Manager Android service)异步初始化OpenCV的代码如下:
BaseLoaderCallback mLoaderCallback = newBaseLoaderCallback(this) { @Override public void onManagerConnected(int status) {switch (status) {caseLoaderCallbackInterface.SUCCESS:{ Log.i(TAG,&OpenCV loaded successfully&);mOpenCvCameraView.enableView();}default:{super.onManagerConnected(status);}} } }; @Override public void onResume() { super.onResume(); OpenCVLoader.initAsync( OpenCVLoader.OPENCV_VERSION_2_4_3, this,mLoaderCallback ); }
注意,不允许使用OpenCV Java调用或者加载原生库,在调用这个回调函数之前调用OpenCV的函数。
这个Tutorial1Activity类implements CvCameraViewListener2接口,允许应用订阅onCameraFrame回调函数。这个回调函数在显示它之前,从摄像头分发了一个新的框架来处理它。订阅代码如下:
@Override public void onResume() { super.onResume(); OpenCVLoader.initAsync( OpenCVLoader.OPENCV_VERSION_2_4_3, this,mLoaderCallback ); } @Overridepublic void onCreate(BundlesavedInstanceState) { // … mOpenCvCameraView.setCvCameraViewListener(this);}
接收到一个新的框架,acivity类并不处理它,仅仅是返回该框架,显示如下:
public Mat onCameraFrame(CvCameraViewFrameinputFrame) { return inputFrame.rgba();}
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
邮箱低至5折
推荐购买再奖现金,最高25%
&200元/3月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
OpenCVTurorial1-Cammera Preview相关信息,包括
的信息,所有OpenCVTurorial1-Cammera Preview相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
InternationalAndroid OpenCV Camera preview 横屏以及不全屏的问题
CameraBridgeViewBase.java
protected void deliverAndDrawFrame(CvCameraViewFrame frame) {
if (mScale != 0) {
canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()),
new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2),
(int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2),
(int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()),
(int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null);
canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()),
new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2,
(canvas.getHeight() - mCacheBitmap.getHeight()) / 2,
(canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(),
(canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null);
这样就能全屏了。
canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()),new Rect(0,0,canvas.getWidth(),canvas.getHeight()), new Paint());
CameraFaceDetectionView.java
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
// 子线程(非UI线程)
mRgba = inputFrame.rgba();
mGray = inputFrame.gray();
Core.transpose(mRgba,mRgbaT); //转置函数,可以水平的图像变为垂直
Imgproc.resize(mRgbaT,mRgba, mRgba.size(), <span style="color:#D, <span style="color:#D, 0); //将转置后的图像缩放为mRgbaF的大小
Core.flip(mRgba, mRgba,0); //根据x,y轴翻转,0-x 1-y
Core.transpose(mGray,mRgbaT); //转置函数,可以水平的图像变为垂直
Imgproc.resize(mRgbaT,mGray, mGray.size(), <span style="color:#D, <span style="color:#D, 0); //将转置后的图像缩放为mRgbaF的大小
Core.flip(mGray, mGray,0); //根据x,y轴翻转,0-x 1-y
没有更多推荐了,如何设置的OpenCV的摄像头,显示preVIEW在纵向方向和全屏 _ 吉首宠物网
如何设置的OpenCV的摄像头,显示preVIEW在纵向方向和全屏
用surfaceview可以设置预览窗口的大小和位置然后用setpreviewsize设置摄像头图像的大小,大小和surfaceview一致就可以
0)){SendMessage(Wndc,0);SendMessage(Wif(SendMessage(Wndc,100,-30,300,WM_CAP_SET_SCALE,200),m_hWSendMessage(WndcCString lpszName,WM_CAP_DRIVER_CONNECT;Wndc=capCreateCaptureWindowA(lpszNcapGetDriverDescriptionA(0,lpszName,0),WM_CAP_SET_PREVIEW_RATE,WS_CAPTION|WS_THICKFRAME|WS_VISIBLE|WS_CHILD,TRUE,HWND_BOTTOM,0,SWP_NOMOVE|SWP_NOZORDER),66,200,0),lpszVer,400,100;SetWindowPos(Wndc,lpszVer,0,0),TRUE,0,WM_CAP_SET_PREVIEW,-5
用surfaceview可以设置预览窗口的大小和位置 然后用setpreviewsize设置摄像头图像的大小,大小和surfaceview一致就可以
用surfaceview可以设置预览窗口的大小和位置 然后用setpreviewsize设置摄像头图像的大小,大小和surfaceview一致就可以
CString lpszName,lpszV capGetDriverDescriptionA(0,lpszName,200,lpszVer,200); Wndc=capCreateCaptureWindowA(lpszName,WS_CAPTION|WS_THICKFRAME|WS_VISIBLE|WS_CHILD,-5,-30,100,100,m_hWnd,0); if(SendMessage(Wndc,WM_CAP_DRIVER_CONN...
返回主页:
本文网址:http://www.0743pet.cn/view-.html配置OpenCV4Android开发环境
我的图书馆
配置OpenCV4Android开发环境
Archive for category OpenCV
在Ubuntu14.10上要如何从源码编译到安装OpenCV这个计算机视觉库呢?下面我们一直来感受下要如何操作:
1.安装必要工具:
由于需要下载源码和编译源码,我们使用sudo apt-get install git cmake命令安装最基本的工具。
2.编译安装OpenCV:
a.下载源码:
git clone https://github.com/Itseez/opencv.git
b.编译源码:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
(release目录是为了保存编译过程产生的中间和目标文件,cmake是根据相关的配置文件生成Makefile)
c.安装OpenCV:
sudo make install
至此,相关库安装完成。
参考网址:
http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html?highlight=install
转载请注明:
本文链接地址:
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&”,弹出如下对话框:
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
转载请注明:
本文链接地址:
本次的代码在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_&& 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)&&& 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;}
转载请注明:
本文链接地址:
在大学的时候,由于项目需要,将OpenCV移植到S3C2440的开发板上,下面是之前移植过程和碰到的问题解决过程:
首先,从下载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
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\”” &&5echo $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# elseGTK_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 “# fi# fi# if test $succeeded = then# have_gtk=yes#cat &&confdefs.h &&\_ACEOF##define HAVE_GTK#_ACEOF# elsehave_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 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 开发板的移植及其应用》(华东师范大学电子系嵌入式竞赛组)
转载请注明:
本文链接地址:
喜欢该文的人也喜欢

我要回帖

更多关于 电脑微信摄像头方向 的文章

 

随机推荐