2016-05-10 99 views
1

我想了解如何进行此转换,但我仍然有相同的错误。我需要将IN JAVA中的ipl图像转换为mat来获取图像的pyrDown。 在这里的错误:类型不匹配:不能从opencv_core.IplImage转换为太如何将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); 
    } 
} 
+0

您没有帮助我的人。在这个链接他们谈论: 1)C++ 2)一个旧的构造函数 – V8607

+0

对不起,你错过了Java标签。此外,它被问到[这里](http://stackoverflow.com/questions/20987989/how-to-convert-ipl-image-to-mat-image-in-java)。 'IplImage'是一个不赞成使用的格式,并且'Mat'的构造函数将这个类作为输入在新版本的C++中被删除,并且从未在Java版本的OpenCV中实现。我认为JavaCV使用它。在链接中有一些解决方案,但它似乎会很慢。真的有必要使用IplImage吗?或者你可以从一开始就使用'Mat'? – api55

+0

感谢您的回复。不幸的是我需要转换这个,否则唯一的解决方案(对于主项目)是直接将视频的帧转换成mat或缓冲的图像而不是IplImage,但我不知道它是否可能 – V8607

回答

0

转换的IplImage来垫很简单。

IplImage iplImage= cvLoadImage("image.png");

Mat matImage = new Mat(iplImage);

反之亦然