【发布时间】:2018-11-09 03:22:33
【问题描述】:
我正在尝试了解如何进行此转换,但我仍然遇到同样的错误。我需要在 JAVA 中将 ipl 图像转换为 mat 以获取图像的 pyrDown。 这里的错误:类型不匹配:无法从 opencv_core.IplImage 转换为 Mat
public class Image {
IplImage i;
public void downsample(){
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat Out= new Mat();
Mat in(i); // error in this line
//Down sample the image by factor of 2
Imgproc.pyrDown(in, Out);
}
}
【问题讨论】:
-
你根本没有帮助我。在此链接中,他们正在谈论:1)C++ 2)旧的构造函数
-
抱歉,您错过了 Java 标记。另外,有人问here。
IplImage是一种已弃用的格式,将此类作为输入的Mat的构造函数在较新版本的 c++ 中被删除,并且从未在 Java 版本的 OpenCV 中实现。我认为JavaCV虽然使用了它。在链接中有某种解决方案,但似乎会很慢。真的有必要使用 IplImage 吗?或者你可以从一开始就使用Mat? -
感谢您的回复。不幸的是,我需要转换它,否则唯一的解决方案(对于主项目)是将视频的帧直接转换为 mat 或缓冲图像而不是 IplImage,但我不知道这是否可能
-
也许你可以尝试使用
i.getByteBuffer()获取一个字节数组,然后创建一个相同大小的Mat,然后使用put将数据放入其中 -
我做到了。我换了系统。我正在使用 VideoCapture 获取帧并将它们作为垫子对象处理。谢谢你的帮助。祝你有美好的一天
标签: java opencv opencv3.0 mat iplimage