Articles of opencv

AndroidStudio中的OpenCV库错误

我正在处理我正在处理的当前Android项目的问题,它将OpenCV库作为模块导入并设置为依赖项。 将Android Studio从0.8.14更新为1.0后,尝试同步Gradle我收到以下错误: 错误:库项目无法设置applicationId。 applicationId在默认配置中设置为“org.opencv”。 我想发布我的项目结构和成绩文件,但我还无法上传图片。

android.hardware.camera2.CaptureRequest可以与OpenCV一起使用吗?

我已经为此工作了好几天了。 我有一个基于OpenCV / JavaCameraView的项目我试图与Android android.hardware.camera2.CaptureRequest对象集成,我用来控制相机对光的敏感度。 CameraBridgeViewBase.CvCameraViewListener2/JavaCameraView项目可以工作(我可以在屏幕上看到一个图像), CaptureRequest项目也可以工作(也可以看到这个),但是将这两种技术结合在一个项目中已经certificate是个大问题。 有没有人让这两种技术一起工作? 我的目标是让摄像头处于CaptureRequest(有限的SENSOR_SENSITIVITY + SENSOR_EXPOSURE_TIME)的控制之下,但屏幕显示通过我写的OpenCV共享库过滤的流图像。 要控制相机,我可以使用这样的东西: mCameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()), new CameraCaptureSession.StateCallback() { @Override public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) { // The camera is already closed if (null == mCameraDevice) { return; } long exposureTime = 66259688,frameDuration = 1000; int sensitivity = 1512; mCaptureSession = cameraCaptureSession; try { mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); setAutoFlash(mPreviewRequestBuilder); […]

OpenCV for Android,我是否需要单独安装OpenCV Manager?

刚开始研究适用于Android的OpenCV。 我注意到在运行使用它的应用程序之前我需要安装一个名为OpenCV Manager的东西。 有没有办法将此经理与我的应用程序捆绑在一起,以便用户不必单独安装它? 如果可能的话,这确实会有所帮助。 我还没有写过使用OpenCV的应用程序,但我只是outlook未来。 非常感谢。

数字识别的建议

我正在编写一个Android应用程序来从图片中提取数独谜题。 对于9×9 Sudoku网格中的每个单元格,我需要确定它是否包含数字1到9之一或是空白。 我从像这样的Sudoku开始: 我使用OpenCV预处理数独,以提取各个数字的黑白图像,然后通过Tesseract将它们放入。 但Tesseract有一些限制: Tesseract很大,包含许多我不需要的function(即全文识别),并且需要英语培训数据才能运行,我认为必须将其放到设备的SD卡上。 至少我可以告诉它只使用tesseract.setVariable(“tessedit_char_whitelist”, “123456789”);查找数字tesseract.setVariable(“tessedit_char_whitelist”, “123456789”); Tesseract经常将单个数字误解为一串数字,通常包含换行符。 它有时也只是简单地弄错了。 以下是上述数独的几个例子: 我有三个问题: 有什么方法可以克服Tesseract的局限性吗? 如果没有,那么检测在Android上实现的个别数字(不是k-最近邻居)的有用, 准确的方法是什么 – 这可以是免费的库或DIY解决方案。 如何改进预处理以定位该方法? 我考虑过的一种可能性是使用细化算法,正如本文所建议的那样,但我不打算去实现它,除非它会有所作为。

使用opencv在android中裁剪图像

我在android中使用OpenCV 2.3.1。 我需要将图像裁剪成一半。 我在做什么 Mat mIntermediateMat2 = new Mat(frame_height,frame_width,rgba.type); mIntermediateMat2 = rgba.clone(); mIntermediateMat2 = mIntermediateMat2.rowRange(0,frame_height/2); 第三步是完成工作还是我必须添加更多内容? 我在opencv 2.3文档中看到了Mat :: operator(),但遗憾的是无法在opencv android包中find它。

Android:OpenCV:imwrite总是返回false并且无法写入

这个代码以前工作但是在Android 4.2和OpenCV 2.4.4上它失败了,但我不知道为什么。 任何人都可以为我阐明它吗? 谢谢你的帮助。 巴兹 public void SaveImage (Mat mat) { Mat mIntermediateMat = new Mat(); Imgproc.cvtColor(mRgba, mIntermediateMat, Imgproc.COLOR_RGBA2BGR, 3); File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); String filename = “barry.png”; File file = new File(path, filename); Boolean bool = null; filename = file.toString(); bool = Highgui.imwrite(filename, mIntermediateMat); if (bool == true) Log.d(TAG, “SUCCESS writing image to […]

Gradle Android Build System NDK问题

我会第一个承认我对Gradle和新的Android构建系统并不是非常专业,但不幸的是,由于问题21479( https://code.google ),我不得不转移到它(来自ant) .com / p / android / issues / detail?id = 21479 )和评论“这将不会修复。我们正专注于完成将取代Ant的基于Gradle的构建系统。” 不幸的是,在我添加Millenium Media广告库之后,我无法再次构建这些内容。 这是除了Android OpenCV库,Chilkat的加密库和支持v4库之外,但MMedia库是破坏它的一个。 因此,我认为,这是一个很好的理由,可以迁移到新的基于Gradle的构建系统。 不幸的是,尽管留下了破坏的ant构建系统,新系统似乎还没有完成; 特别是ndk的支持。 我正在使用的应用程序使用OpenCV进行一些image processing,并且一些操作运行速度太慢,除非它们被编译为本机(很多内存移动并比较在JNI边界上的速度太慢)。 因此,我不是试图在VM和本机代码之间来回传递数据,而是将所有这些内容留在本机端,只需从VM调用一次即可获得结果。 第一个问题是编译ndk的东西。 我无法让ndk闭包中的设置工作,所以我不得不求助于使用ndk-build命令并将其作为任务执行: task ndkBuild(type: Exec) { String MainDirectory = System.getProperty(“user.dir”) + ‘/app/src/main’ println “Main app directory for NDK build ” + MainDirectory if (Os.isFamily(Os.FAMILY_WINDOWS)) { commandLine ‘gradle-ndk-build.cmd’, MainDirectory, ‘-j’ } […]

您的设备似乎不支持相机(或已锁定)

android opencv示例和教程运行良好,突然有一天我得到了所有这些“似乎你的设备不支持相机(或它被锁定)。应用程序将被关闭”请帮助如何解决 我重新安装了opencv并再次导入并制作了新的模拟器,但问题仍然存在

Android中的OpenCV图像比较和相似度

我是OpenCV学习者。 我正在尝试图像比较。 我用过OpenCV 2.4.13.3我有这两个图像1.jpg和cam1.jpg 。 当我在openCV中使用以下命令时 File sdCard = Environment.getExternalStorageDirectory(); String path1, path2; path1 = sdCard.getAbsolutePath() + “/1.jpg”; path2 = sdCard.getAbsolutePath() + “/cam1.jpg”; FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.BRIEF); DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING); Mat img1 = Highgui.imread(path1); Mat img2 = Highgui.imread(path2); Mat descriptors1 = new Mat(); MatOfKeyPoint keypoints1 = new MatOfKeyPoint(); detector.detect(img1, keypoints1); […]

Android OpenCV对象检测

我试图在Android上实现这样的东西: http : //www.youtube.com/watch?v = zjxWpKCQqJc。 这是我的代码: public Mat onCameraFrame(CvCameraViewFrame inputFrame) { Mat novo = new Mat(); Mat resp = new Mat(); Mat homer = new Mat(); //resp = inputFrame.gray(); novo = inputFrame.gray(); Mat lido = new Mat(); try { lido = Utils.loadResource(this, R.drawable.homer); } catch (IOException e) { e.printStackTrace(); } Imgproc.cvtColor(lido, homer, Imgproc.COLOR_RGB2GRAY); FeatureDetector […]