为什么图像的大小是0 x 0

时间:2015-03-26 12:58:07

标签: java opencv opencv3.0

尽管提供的路径中的图像存在于尺寸= 120 * 80的HD上 当我使用HighGUI.imread()读取它时,返回的图像大小为0 * 0

代码

public class ROI {

static final String PATH_0 = [omitted]///A full path to an image actually existing on my machine

public static void main(String[] args) {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    Mat imgOriginal = Highgui.imread(PATH_0);// this image is 128*80
    showInFrame(imgOriginal);
    system.out.printlin(imgOriginal.size());// results 0 * 0

}

private static void showInFrame(Mat mat) {
    // TODO Auto-generated method stub
    JFrame mediaFrame = new JFrame("Media");
    mediaFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    /*JLabel mediaPanel = new JLabel();
    mediaFrame.setContentPane(mediaPanel);*/

    Highgui.imwrite("c:/private/img.jpg", mat);
    ImageIcon image = new ImageIcon("c:/private/img.jpg");
    JLabel label = new JLabel("label", image, JLabel.CENTER);

    mat.release();
    mediaFrame.setSize(300,300);
    mediaFrame.add(label);
    mediaFrame.setVisible(true);
    mediaFrame.validate();
}

1 个答案:

答案 0 :(得分:1)

这是因为你在Mat对象上调用了.release()。 来自文档:.release()根据需要解除分配矩阵。

所以我建议将此方法评论出来