Articles of opencv

在Android中使用metaio在openCV中进行3D对象渲染

我正在开发一个应用程序,我正在使用opencv来检测摄像机图像中的形状,并希望在这些形状上显示由metaio渲染的3D对象。 怎么能实现这一目标? 我尝试过自定义渲染,但没有调用’onNewCameraFrame’方法。 我必须将’onNewCameraFrame()’方法中的每个相机帧转换为Mat对象以进行形状检测逻辑。 但它没有被召集。 我甚至添加了对metaio sdk的’requestCameraImage()’方法的调用。

适用于Android的计算机视觉和AR库?

我最初是一名Android开发人员,我想知道Android SDK是否有任何计算机视觉库或增强现实库,因为我打算将这些库用于移动应用程序。 我已经读过,如果我下载NDK,我可以“导入/使用”C openCV和ARtoolkit库,但我想知道这是否可行,或者是否有更好更简单的方法来使用这些工具。 Android应用程序使用Java编程,但OpenCV和ARtoolkit使用C / C ++。 有没有办法使用这些库?

错误:包android.hardware.camera2不存在OpenCV

我正在尝试将OpenCV模块添加到项目中,但我无法解决一些gradle问题。 这是我的app.gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 17 buildToolsVersion “23.0.2” defaultConfig { applicationId “com.sveder.cardboardpassthrough” minSdkVersion 8 targetSdkVersion 21 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’ } } } dependencies { compile ‘com.android.support:support-v4:18.0.0’ compile files(‘libs/cardboard.jar’) compile project(‘:openCVLibrary’) } 这是OpenCV(3.0)模块的build.gradle文件: apply plugin: ‘com.android.library’ android { compileSdkVersion 17 buildToolsVersion “23.0.2” defaultConfig { minSdkVersion 8 […]

无法导入导入android.hardware.camera2类

我将opencv android库导入我的android studio,而Camera2Renderer类有很多编译器错误,因为android.hardware.camera2类无法导入。

OpenCV Service Intent必须是显式的,Android 5.0 Lollipop

我正在为使用OpenCV的学士学位文凭构建此应用程序。 一切都很顺利,直到我将手机的Android更新到5.0。 更新后,我的项目停止工作,因为: java.lang.IllegalArgumentException:Service Intent必须是显式的:Intent {act = org.opencv.engine.BIND} 我已阅读并告知自己有关Android 5.0中隐式意图的新限制,但我如何解决这个问题以使OpenCV工作? 我可以修改OpenCV SDK中的AsyncServiceHelper.java文件以尝试修复此问题,但是为了使用显式意图,我怎样才能获得需要运行的OpenCV服务的Class对象? 或者这种方法可能是死路一条,但有没有其他方法,或者我唯一的选择是更新OpenCV SDK,还是降级我的设备上的Android版本?

Android中的OpenCV图像比较

[编辑]我设计了一些图像比较代码。 匹配的部分仍然有点缺陷,我希望得到一些帮助。 该项目可以在 – GitHubfind 。 我有这两个图像Img1和Img2 : 当我在openCV中使用以下命令时 Mat img1 = Highgui.imread(“mnt/sdcard/IMG-20121228.jpg”); Mat img2 = Highgui.imread(“mnt/sdcard/IMG-20121228-1.jpg”); try{ double l2_norm = Core.norm( img1, img2 ); tv.setText(l2_norm+””); } catch(Exception e) { //image is not a duplicate } 我得到了l2_norm的double值。 对于重复的图像对,此双值会有所不同。 但是如果图像不同,则抛出exception。 这是我识别重复图像的方式吗? 或者有更好的方法吗? 我用Google搜索广泛,无法find真正有说服力的答案。 我希望代码和解释如何比较两个图像并根据图像得到一个布尔值true或false 。 编辑 Scalar blah= Core.sumElems(img2); Scalar blah1=Core.sumElems(img1); if(blah.equals(blah1)) { tv.setText(“same image”); } […]

OpenCV Android上的静态初始化

我正在尝试运行OpenCV教程1 – 使用此方法添加静态初始化OpenCV 我不想安装单独的OpenCV Manager应用程序)但是我收到”OpenCV error: Cannot load info library for OpenCV.” 我做了以下事情: 在其中添加了一个包含armeabi , armeabi-v7a和x86文件夹的libs文件夹(来自OpenCV-2.4.2-android-sdk / sdk / native / libs /) 在私有Sample1View mView下面添加了静态{if (!OpenCVLoader.initDebug())}代码; 删除了以下代码 if(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2,this,mOpenCVCallBack)) 什么似乎是问题?

如何执行文档自动裁剪使用相机识别图像?

我想制作一个类似凸轮扫描仪的应用程序来裁剪文档。 但我需要像我的两个图像一样的function.. 第一张图像显示相机拍摄的图像.. 第二个图像像这样识别捕获的图像部分。 我研究得越来越多,但没有得到任何外出,所以,我在这里问,是否有任何人这样做告诉我.. 谢谢

Opencv增加阈值的准确性

我正在开发一个应用程序,预计将使用opencv删除图像背景,起初我尝试使用抓取但它太慢而且结果并不总是准确,然后我尝试使用阈值,虽然结果还没有关闭th grabcut ,它非常快,看起来更好,所以我的代码首先看图像色调并分析它的哪个部分看起来更多,该部分被视为背景,问题有时它将前景作为背景如下是我的代码: private Bitmap backGrndErase() { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.skirt); Log.d(TAG, “bitmap: ” + bitmap.getWidth() + “x” + bitmap.getHeight()); bitmap = ResizeImage.getResizedBitmap(bitmap, calculatePercentage(40, bitmap.getWidth()), calculatePercentage(40, bitmap.getHeight())); Mat frame = new Mat(); Utils.bitmapToMat(bitmap, frame); Mat hsvImg = new Mat(); List hsvPlanes = new ArrayList(); Mat thresholdImg = new Mat(); // int thresh_type = Imgproc.THRESH_BINARY_INV; […]

使用OpenCV进行不稳定的人脸识别

我正在开发一个用于人脸识别的Android应用程序,使用JavaCV ,这是OpenCV的非官方包装。 导入com.googlecode.javacv.cpp.opencv_contrib.FaceRecognizer ,我应用并测试以下已知方法: LBPH使用createLBPHFaceRecognizer()方法 FisherFace使用createFisherFaceRecognizer()方法 EigenFace使用createEigenFaceRecognizer()方法 在我识别出检测到的脸部之前,我纠正了旋转的脸部并裁剪出适当的区域,从而激发了这种方法 一般情况下,当我传递相机时,数据库中已存在一个面,识别就可以了。 但这并不总是正确的。 有时它很有可能识别出未知的面部(在训练样本的数据库中找不到)。 当我们在DB中有两个或更多相似特征的面孔(胡须,小胡子,眼镜……)时,这些面孔之间的识别可能会非常错误! 要使用测试面部图像预测结果,我应用以下代码: public String predict(Mat m) { int n[] = new int[1]; double p[] = new double[1]; IplImage ipl = MatToIplImage(m,WIDTH, HEIGHT); faceRecognizer.predict(ipl, n, p); if (n[0]!=-1) mProb=(int)p[0]; else mProb=-1; if (n[0] != -1) return labelsFile.get(n[0]); else return “Unkown”; } 我无法控制概率p的阈值,因为: 小p <50可以预测正确的结果。 高p> […]