我希望将sdcard图像转换为android中的视频.经过多次搜索,我发现它有可能在javacv.when我在纯java中尝试简单的javacv示例,它在我的eclipse中工作完美.但是当我变成android时,同样的示例不在android.i下载中运行,并在myproject-> libs/armeabi文件夹中添加所有.jar文件和.so文件.我的项目没有显示任何错误.但是在运行时发生错误.
我尝试这堂课,
package com.example.ndkfoo_sample;
import static com.googlecode.javacv.cpp.opencv_core.cvReleaseImage;
import static com.googlecode.javacv.cpp.opencv_highgui.cvLoadImage;
import static com.googlecode.javacv.cpp.opencv_highgui.cvShowImage;
import static com.googlecode.javacv.cpp.opencv_highgui.cvWaitKey;
import static com.googlecode.javacv.cpp.opencv_imgproc.CV_GAUSSIAN;
import static com.googlecode.javacv.cpp.opencv_imgproc.cvSmooth;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
// @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IplImage img=cvLoadImage("helloworld.jpg");
cvShowImage("/mnt/sdcard/helloworld",img);
cvSmooth(img,img,CV_GAUSSIAN,13);
cvShowImage("Blur-Image",img);
cvWaitKey();
cvReleaseImage(img);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
我的错误就像,
opencv error unspecified error.
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在android.is中集成opencv/javacv任何步骤或教程.
谢谢,
我有一个项目,用于收集安装程序(sbt-install4j)的依赖项dependencyClasspath.它大部分时间都有效,除非我有一个特定的依赖:
libraryDependencies += "org.bytedeco" % "javacpp" % "0.10"
Run Code Online (Sandbox Code Playgroud)
"javacpp"不会被添加到dependencyClasspath.您可以创建一个仅包含上述依赖项的简单SBT项目并尝试show dependencyClasspath,它将打印:
[info] List(Attributed(C:\Users\me\.sbt\boot\scala-2.10.4\lib\scala-library.jar))
Run Code Online (Sandbox Code Playgroud)
没有"javacpp".有什么线索可能会发生什么?这是一个SBT错误吗?
我想知道如何使用JavaCV在OpenCV中构造以下C++语句:
float* p = (float*)cvGetSeqElem(circles, i);
int radius = cvRound(p[2]);
Run Code Online (Sandbox Code Playgroud)
使用cvHoughCircles()检测圆的半径.显然Java不使用指针,所以我不知道如何在Java中这样做.到目前为止我的代码所以你可以看到它的上下文:
lines = cvHoughCircles(frame2, storage, CV_HOUGH_GRADIENT, 1, 50, 300, 60, 10, 600);
for (int i = 0; i < lines.total(); i++) {
//Would like the code to go here
CvPoint2D32f point = new CvPoint2D32f(cvGetSeqElem(lines, i));
cvCircle(src, cvPoint((int)point.x(), (int)point.y()), 3, CvScalar.WHITE, -1, 8, 0);
Point p = new Point((int)point.x(), (int)point.y());
points.add(p);
}
Run Code Online (Sandbox Code Playgroud) 在我的项目中,我希望从特定颜色的最大均匀区域获得大小(在我的示例中,它是蓝天).
我的第一个想法是转换原始图像:

到二进制图像,检测天空颜色并使用此区域创建一个遮罩:

但是如何获得这些白色像素的大小和位置?我想要一种有效的方法,如果图片在图片的上1/3处有蓝天,则表示正确.有任何想法吗?我应该创建一个"全局掩码"(参见注释中的图像3)并将其与二进制图片进行比较吗?或者有更简单的方法吗?
谢谢.
如何识别另一个轮廓内的轮廓?我试图通过许多OpenCV教程,但我无法识别它.请一些专家提供简单的代码来解释一下吗?
这是我的输入文件

这个黑暗的部分是我需要识别的轮廓.

请善意与我分享您的经验.
我正在使用新的OpenCV Java绑定来读取图像并对图像进行一些处理.我正在尝试使用Java绑定将C代码转换为Java,但似乎无法找到相关的方法:
C代码:
cv::Mat img = cv::imread(argv[1]);
cv::Mat gray;
cv::cvtColor(img, gray, CV_BGR2GRAY);
int erosion_size = 5;
cv::Mat element = cv::getStructuringElement(cv::MORPH_CROSS,
cv::Size(2 * erosion_size + 1, 2 * erosion_size + 1),
cv::Point(erosion_size, erosion_size) );
cv::erode(gray, gray, element);
Run Code Online (Sandbox Code Playgroud)
我找不到:
imreadcvtcolorgetStructuringElementerode我在这里看了看api:http://docs.opencv.org/java/
我正在使用 videocapture 对象来捕获和处理 opencv/javacv 中的视频帧。我不知道如何获得帧速率。我想要一个在实时视频捕获期间在后台运行的计时器。它应该在检测到人脸时暂停并稍后继续。由于 haarcascade 文件的处理,每个 rame 需要很多时间来处理。如何调整帧率。
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture camera = new VideoCapture(0);
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个可以使用您的计算机网络摄像头检测心跳的应用程序.我从2周开始编写代码并开发了这段代码,到目前为止我已经完成了
它是如何工作的?如下图所示......
在这里,我需要帮助从FFT频谱中提取心跳.谁能帮我.在这里,是在python中开发的类似应用程序,但我无法解释这个代码,所以我在开发过程中开发相同.任何人都可以帮助我低估这个python代码中提取心跳的部分.
//---------import required ilbrary -----------
import gab.opencv.*;
import processing.video.*;
import java.awt.*;
import java.util.*;
import ddf.minim.analysis.*;
import ddf.minim.*;
//----------create objects---------------------------------
Capture video; // camera object
OpenCV opencv; // opencv object
Minim minim;
FFT fft;
//IIRFilter filt;
//--------- Create ArrayList--------------------------------
ArrayList<Float> poop = new ArrayList();
float[] sample;
int bufferSize = 128;
int sampleRate = 512;
int bandWidth = 20;
int centerFreq = 80;
//---------------------------------------------------
void setup() {
size(640, 480); // size of …Run Code Online (Sandbox Code Playgroud) 我想制作一个便携式opencv应用程序,将依赖项添加到 maven 文件中pom.xml。
简化的代码是:
import org.opencv.core.Mat;
public class Builder {
public static void main(String[] args) {
nu.pattern.OpenCV.loadShared();
System.loadLibrary(org.opencv.core.Core.NATIVE_LIBRARY_NAME);
Mat mat = new Mat(4,3,1);
System.out.println(mat.dump());
}
}
Run Code Online (Sandbox Code Playgroud)
我将此添加到pom.xml:
<dependency>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
<version>3.2.0-0</version>
<scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
它适用于 java 9 的以下警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by nu.pattern.OpenCV$SharedLoader (file:/home/martin/.m2/repository/org/openpnp/opencv/3.2.0-0/opencv-3.2.0-0.jar) to field java.lang.ClassLoader.usr_paths
WARNING: Please consider reporting this to the maintainers of nu.pattern.OpenCV$SharedLoader
WARNING: Use --illegal-access=warn to enable warnings of further …Run Code Online (Sandbox Code Playgroud) 我正在 Java 中使用 OpenCV(实际上是在 Scala 中)。我正在使用 org.bytedeco 包装器(opencpp 和 javacv),但文档不是很好。
问题是,根据示例,使用两个不同的 API:org.bytedeco.opencv.opencv_core或org.opencv.core
org.bytedeco.opencv.opencv_core工作正常,但org.opencv.core抛出 java.lang.UnsatisfiedLinkError:
An exception or error caused a run to abort: no opencv_java410 in java.library.path
java.lang.UnsatisfiedLinkError: no opencv_java410 in java.library.path
Run Code Online (Sandbox Code Playgroud)
我完全迷失了:
提前致谢。
使用的库: "org.bytedeco" % "javacv-platform" % "1.5.1" 为所有平台导入 lib。