在opencv Java构建中进行imshow的等效方法

Oro*_*chi 28 java opencv

对不起,如果我问一个愚蠢的问题,我正在尝试使用Java构建学习openCV.在opencv示例中,我发现在c ++中有方法imshow或在python中有showImage,但我在opencv Java API中搜索,我找不到imshow方法.

在使用Java构建的opencv中,imshow()和waitKey()的等价方法是什么?

小智 28

public static void showResult(Mat img) {
    Imgproc.resize(img, img, new Size(640, 480));
    MatOfByte matOfByte = new MatOfByte();
    Highgui.imencode(".jpg", img, matOfByte);
    byte[] byteArray = matOfByte.toArray();
    BufferedImage bufImage = null;
    try {
        InputStream in = new ByteArrayInputStream(byteArray);
        bufImage = ImageIO.read(in);
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        frame.getContentPane().add(new JLabel(new ImageIcon(bufImage)));
        frame.pack();
        frame.setVisible(true);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • Java 3.0 中不再有 `HighGUI` 模块,请使用 `Imgcodecs` insead (2认同)

Art*_*huk 9

还没有Java highgui包装器(链接).你应该使用swing或swt来显示图像.请参阅:Opencv java - 将图像加载到GUI


Atu*_*tul 7

这是Java OpenCV中Imshow()等效的现成解决方案.它易于使用.API将如下所示:

Imshow im = new Imshow("Title");

im.showImage(matimage);

请访问 https://github.com/master-atul/ImShow-Java-OpenCV