Articles of opencv

Android中的OpenCV模板匹配示例

我是OpenCV的初学者。 我正在尝试使用OpenCV模板匹配来做一个示例Android应用程序来匹配给定图像中的模板图像。 我在互联网上搜索,找不到符合我要求的合适的android或java代码。 但我有C ++代码。 我不知道如何翻译它。 http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html 你能帮我找一个合适的java或android代码吗? 或者请帮我把这个C ++代码翻译成java,我可以在android应用程序中使用它。 先谢谢你。 C ++代码 #include “opencv2/highgui/highgui.hpp” #include “opencv2/imgproc/imgproc.hpp” #include #include using namespace std; using namespace cv; /// Global Variables Mat img; Mat templ; Mat result; char* image_window = “Source Image”; char* result_window = “Result window”; int match_method; int max_Trackbar = 5; /// Function Headers void MatchingMethod( […]

如何在Android App中集成OpenCV Manager

我在我的Android应用程序中使用OpenCV2.4.7库 。 当应用程序启动时,它将转到Google Play应用商店 ,名为OpenCV Manager 。 他们是否有任何方法将此应用程序集成到我的Android apk中,因为我们已经使用OpenCV库,为什么app再次需要OpenCV Engine? 是他们整合这个引擎的任何方式。

OpenCV ORBfunction检测器如何工作?

我想使用ORB特征检测器和提取器实现基于特征的对齐算法。 到目前为止,我使用OpenCV ORB orb; ORB类提取了这些特性ORB orb; orb(gray_image,Mat(),features.keypoints,features.descriptors); 并使用openCV matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);的knnMatch函数匹配它们matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2); 在那之后我试图使用findHomography函数find单应性,但是这个函数在图像特征之间需要至少4个匹配,并且在我测试的大多数图像上我得到的不到4个。 有人用过这个function吗? 是否有关于它的文档,或关于OpenCV的ORB类(ORB构造函数参数的含义)? PS这是我的第一个问题。 我不能发布超过2个链接。 对于opencv文档,请使用此方法 。

Android中的人脸检测?

我目前正在开发一款实验相机应用程序。 我正在考虑实施面部检测,目前正在权衡我的选择。 我已经考虑过可用于Android的OpenCV端口并使用他们的面部检测function,但是从我以前的实现中看到的演示,相机似乎滞后了很多。 考虑到HTC Desire上的摄像头具有面部检测支持,我知道必须至少能够获得一个半体面的人脸检测系统。 我只是想知道是否有人对如何获得最佳结果有意见……使用可用的库? 自己实现一个特定的算法?

使用OpenCV在Java中进行反投影

我想使用反投影检测OpenCV图像中的特征。 首先,我非常乐意计算单个彩色小图像的直方图,然后将其应用于更大的图像。 然后我可以在此基础上进一步构建。 在C ++中有一个例子,我想在Java中做这样的事情。 遗憾的是,OpenCV的Java接口没有很好的文档记录。 下面是我到目前为止的代码,但它不起作用(显然,我不会寻求帮助)。 如果有人可以帮助我使用它或find一些 Java API的好文档 ,那将是非常好的 ! import java.util.ArrayList; import org.opencv.core.*; import org.opencv.imgproc.Imgproc; public class ColorHistogramDetector extends ColorThresholdDetector { //private cvHistogram histogram; //histogram resolution for hue and saturation static final int hbins = 30;//, sbins = 32; public synchronized Mat detect(Mat inputFrame) { Mat calcFrame = new Mat(); Imgproc.cvtColor(inputFrame, calcFrame, […]

Gradle android构建用于不同的处理器架构

我想使用Gradle为4种不同的Android CPU处理器架构(armeabi armeabi-v7a x86 mips)构建4个独立的apks。 我在libs文件夹中为4个CPU架构构建了本机OpenCV库。 libs -armeabi -armeabi-v7a -x86 -mips 我想每个apk只包含对应正确CPU架构的OpenCV库。 当前的构建脚本如下: apply plugin: ‘android’ dependencies { compile fileTree(dir: ‘libs’, include: ‘*.jar’) compile project(‘:workspace:OpenCV4Android:sdk:java’) } android { compileSdkVersion 11 buildToolsVersion “18.1.0” sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs = [‘src’] res.srcDirs = [‘res’] assets.srcDirs = […]

更改Android应用程序中对象的颜色

基本上我的目标是实时改变涂料应用的颜色。 为了实现这一目标,我遵循以下概念: 我使用canny()方法来查找对象。 使用findContours()进行边缘检测。 使用drawContours()为对象着色。 如果有任何其他概念需要达到目标,请向我建议。 我试过但没有准确的轮廓边缘。 原始输入: 预期产量: 当前输出: 我得到灰度图像,但我想在rgb模式。 这是我的代码: package com.example.imageprocess; import java.util.ArrayList; import java.util.List; import org.opencv.android.BaseLoaderCallback; import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame; import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2; import org.opencv.android.LoaderCallbackInterface; import org.opencv.android.OpenCVLoader; import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.MatOfPoint; import org.opencv.core.Point; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.imgproc.Imgproc; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.WindowManager; public class MainActivity […]

当OpenCV for Android使用GaussianBlur时,Eclipse会给出错误

我发布了我的代码的一小部分,因为我不断得到一个奇怪的错误,我似乎无法摆脱。 这个问题可以在这行find: Imgproc.GaussianBlur(mGray,mGray,new Size(5,5),2.2,2); public Mat onCameraFrame(Mat inputFrame) { mGray = new Mat(); Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY); // doing a gaussian blur prevents getting a lot of false hits Imgproc.GaussianBlur(mGray, mGray, new Size (5,5), 2.2, 2); // Values 3 and 4are the LowerThreshold and UpperThreshold. Imgproc.Canny(inputFrame, mIntermediateMat, 80, 100); Imgproc.cvtColor(mIntermediateMat,mRgba, Imgproc.COLOR_GRAY2BGRA, 4); return mIntermediateMat; } 我从Eclipse获得的错误是: […]

ClassNotFoundException:android.hardware.camera2.CameraAccessException与OpenCV 3.1.0

我正在使用Android Studio 2.2使用OpenCV 3.1.0库的Android项目。 我根据这个答案导入了库。 情况如下: 当我编译API> = 21(完全API 23)的设备的项目时,一切顺利。 当我为API <21(正好是API 19,我想支持的最小API)的设备编译项目时,出现以下编译错误: Gradle日志 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:transformClassesWithInstantRunForDebug'. > java.lang.ClassNotFoundException: android.hardware.camera2.CameraAccessException * Try: Run with –info or –debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithInstantRunForDebug'. at […]

用FAST检测SURF描述更快?

对于我的硕士论文,我正在对SIFT SURF en FASTalgorithm进行一些testing,以便在智能手机上进行徽标检测。 当我简单的时间检测,描述相匹配的一些方法,我得到以下结果。 对于SURF检测器和SURF描述符: 发现了180个关键点 关键点计算时间(SURF):1,994秒 描述时间(SURF)4,516秒 匹配时间0.282秒(SURF) 当我使用FAST检测器代替SURF检测器时 find319个关键点 0.023秒关键点计算时间(FAST) 描述时间(SURF)1.295秒 0.397秒匹配时间(SURF) FAST检测器比SURF检测器快得多,甚至可以快100倍地检测到两倍的关键点。 这些结果是可以预测的。 下一步虽然不是预测的结果。 SURF描述符在319个FAST关键点和180个SURF关键点之间有多快? 据我所知,描述与检测algorithm没有关系,但这些结果并不如预测的那样。 有人知道这有可能吗? 这里是代码: FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF); //FeatureDetector detector = FeatureDetector.create(FeatureDetector.FAST); Imgproc.cvtColor(image1, image1, Imgproc.COLOR_RGBA2RGB); Imgproc.cvtColor(image2, image2, Imgproc.COLOR_RGBA2RGB); DescriptorExtractor SurfExtractor = DescriptorExtractor .create(DescriptorExtractor.SURF); //extract keypoints long time= System.currentTimeMillis(); detector.detect(image1, keypoints); Log.d("LOG!", "number of query Keypoints= " + […]