标签: javacv

从 byte[] 而不是文件加载图像 OpenCV (JavaCV)

我有来自套接字连接的图像数据作为字节[]。我见过的所有示例都cvLoadImage()传递了文件名。我是否必须将每个图像保存到文件并重新打开它才能进行处理?对于需要发生的事情来说,这似乎有很多开销,是否可以从 byte[] 数据加载图像?

java arrays opencv javacv

5
推荐指数
1
解决办法
5308
查看次数

opencv中以下方法的含义是什么?

我正在使用javacv进行对象检测的项目,因为我经历了几个用于检测矩形的代码示例,我发现所有代码示例都包含在这些类中的以下方法.

请一些人解释一下这种方法的含义或用法.

double angle( CvPoint* pt1, CvPoint* pt2, CvPoint* pt0 )
{
    double dx1 = pt1->x - pt0->x;
    double dy1 = pt1->y - pt0->y;
    double dx2 = pt2->x - pt0->x;
    double dy2 = pt2->y - pt0->y;
    return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);
} 
Run Code Online (Sandbox Code Playgroud)

是该方法的来源.

c++ opencv image-processing javacv

4
推荐指数
1
解决办法
240
查看次数

如何在javacv中访问CvSeq中的一个点?

我正在使用javacv开发项目,我能够识别多边形并将其存储在CvSeq中.我尝试访问该结构中的点,但它对我不起作用.那么请一些人解释如何在javacv中访问CvSeq结构中的点?

例如,我需要访问下面图像的8个边缘点.所以我可以访问多边形每一边的长度.

在此输入图像描述

java javacv

4
推荐指数
1
解决办法
5892
查看次数

如何识别不直接相互分离的轮廓?

请一些人解释如何识别彼此不完全分开的轮廓的方形.例如,我需要识别下面图像中的方块数以及它们边缘的x,y坐标.我试着通过这个问题,但它对我不起作用.

在此输入图像描述

所以请使用简单的代码示例解释一下.

这是我可以生成的图像,请您解释如何识别此图像中的上方.

在此输入图像描述

所以请善意解释这一点.

opencv image-processing javacv

4
推荐指数
1
解决办法
208
查看次数

JavaCV/OpenCV:cvLoadImage无法正常工作

我安装了JavaCV/OpenCV库,我遇到了基本示例代码的问题.

根据我看过的几个例子,这段代码应该加载一个图像:

IplImage image = cvLoadImage("C:\\img.jpg");
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,我得到一个"找不到符号"的错误.

由于这是我第一次使用它,我不确定我是否搞砸了安装.

根据最新的JavaCV自述文件,我确实拥有正确版本的OpenCV.我还导入了所有JavaCV jar文件.据我所知,我也正确设置了所有路径.

谁知道问题是什么?

编辑:

完整代码:

import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import java.io.File;


public class demo {

    public static void main(String[] args) 
    {
        IplImage image = cvLoadImage("C:\\img.jpg");

        final CanvasFrame canvas = new CanvasFrame("Demo");
        canvas.showImage(image);
        canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    }

}
Run Code Online (Sandbox Code Playgroud)

我尝试运行它时出错:

线程"main"中的异常java.lang.RuntimeException:无法编译的源代码 - 错误的sym类型:javacv.demo.main中的cvLoadImage(demo.java:17)

Java结果:1

似乎它声称cvLoadImage不接受字符串作为参数.

java javacv

4
推荐指数
1
解决办法
1万
查看次数

JavaCV示例/教程

有很多关于OpenCV C++的书,很多例子等等.但我在Java上找不到.我知道基本知识,如阅读,显示图像,抓取帧并在循环中显示它们,但它是如此之少.我想做ComputerVision,但我在google上找到关于JavaCV的所有内容都是我之前提到的.我在哪里/如何学习?

java opencv javacv

4
推荐指数
1
解决办法
2417
查看次数

使用JavaCV API访问Mat的像素值

我最近从OpenCV C++ API切换到JavaCV,我正在尝试执行基本操作,例如迭代Mat.我正在尝试访问Mat的像素值,但我似乎无法找到方法,而JavaCV项目缺少文档.使用OpenCV C++ API,我曾经使用该.at()方法访问Mat的像素值.

Mat加载为CV_8UC1 Mat(灰度),如下面的代码所示,我想打印/使用像素的0-255值.

    Mat image = imread("images/Text00.png", CV_8UC1);

    // Make sure it was successfully loaded.
    if (image == null) {
        System.out.println("Image not found!");
        System.exit(1);
    }

    System.out.println(image.rows());
    System.out.println(image.cols());

    for (int y = 0; y < image.rows(); y++) {

        for (int x = 0; x < image.cols(); x++) {

            // How to print the 0 to 255 value of each pixel in the Mat image.
        }
    }
Run Code Online (Sandbox Code Playgroud)

类似但不适用的答案:

java opencv javacv mat

4
推荐指数
1
解决办法
3892
查看次数

Javacv Blob检测

我想在我的应用程序中使用一些blob检测,这是用Java编写的,因此使用JavaCV而不是OpenCV.我发现很多课程如下:

SimpleBlobDetector,CvBlobDetector,CvBlob,...但我无法找到任何教程或演示/示例代码在Java中使用这些.任何人都可以告诉我如何使用这些,因为我无法弄明白,并没有很好的文档.谢谢!

java opencv blobs feature-detection javacv

3
推荐指数
1
解决办法
2万
查看次数

导出使用 opencv 的可执行 jar 文件

在 Eclipse 中导出时,我选择“将所需的库打包到生成的 jar 中”。jar 文件仅适用于我的机器。但是,当我在其他机器上测试它时,它给出了这个异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
at com.googlecode.javacpp.Loader.load(Loader.java:489)
at com.googlecode.javacpp.Loader.load(Loader.java:431)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
at mains.<clinit>(mains.java:25)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Run Code Online (Sandbox Code Playgroud)

eclipse ubuntu opencv javacv pandaboard

3
推荐指数
1
解决办法
4646
查看次数

如何使用opencv计算人脸识别的百分比格式预测置信度?

OpenCV FaceRecognizer我正在使用类型进行两张面孔的比较工作LBP。我的问题是如何计算百分比格式预测置信度?给出以下代码(javacv):

int n[] = new int[1];
double p[] = new double[1];
personRecognizer.predict(mat, n, p);
int confidence = p[0];
Run Code Online (Sandbox Code Playgroud)

但信心是一个双值,how我应该convert把它变成一个percentage %值吗probability?有现成的公式吗?

抱歉,如果我没有清楚地表达我的问题。好的,这是场景:

我想比较两张人脸图像,得到两张脸的相似度,例如输入约翰的照片和他同学汤姆的照片,假设相似度是30%;然后输入John的照片和他弟弟Jack的照片,得出的可能性是80%。这两个可能性因子表明杰克比汤姆更像他的兄弟约翰......所以百分比格式的可能性因子就是我想要的,值越大意味着两个输入面孔的可能性越大。目前,我通过使用 opencv 函数 FaceRecognizer.predict 计算输入的置信度值来做到这一点,但置信度值实际上代表特征向量空间中输入之间的距离,那么我如何将距离(置信度)缩放到可能性百分比格式?

c++ java opencv face-recognition javacv

3
推荐指数
1
解决办法
7930
查看次数