为什么图像的大小是0 x 0
why the size of the image is 0 x 0
尽管提供路径中的图像存在于 HD 中,大小为 120*80
当我使用 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();
}
这是因为您在 Mat 对象上调用 .release() 。
来自文档:.release() 在需要时释放矩阵。
所以我建议把这个方法注释掉
尽管提供路径中的图像存在于 HD 中,大小为 120*80 当我使用 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();
}
这是因为您在 Mat 对象上调用 .release() 。 来自文档:.release() 在需要时释放矩阵。
所以我建议把这个方法注释掉