Подтвердить что ты не робот

Эквивалентный метод для imshow в opencv Java build

Извините, если я задаю глупый вопрос, я пытаюсь изучить openCV с помощью Java build. В образцах opencv, которые я нашел, есть метод imshow в С++ или showImage в python, но я ищу в opencv Java API, я не могу найти метод imshow.

Каков равный метод imshow() и waitKey() в opencv с Java build?

4b9b3361

Ответ 2

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.getContentPane().add(new JLabel(new ImageIcon(bufImage)));
        frame.pack();
        frame.setVisible(true);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Ответ 3

Это готовое решение для эквивалента Imshow() в Java OpenCV Его прост в использовании. API будет выглядеть так:

Imshow im = new Imshow ( "Название" );

im.showImage(matimage);

Посетите здесь https://github.com/master-atul/ImShow-Java-OpenCV

Ответ 5

Я сделал что-то с качелями и awt.

Сначала получите BufferedImage из Mat img imencode и ImageIo.read

        MatOfByte mMatOfByte = new MatOfByte()
        imencode(".png", img, mMatOfByte);
        byte[] byteArray = mMatOfByte.toArray();
        InputStream in = new ByteArrayInputStream(byteArray);
        BufferedImage srcImage = ImageIO.read(in);

Во-вторых, измените его на ширину и высоту целевого размера (w, h) и используйте Rendering Hint для получения чистого изображения при расширении или уменьшении случаев.

            bufImage = new BufferedImage(w, h, srcImage.getType());
            Graphics2D g = bufImage.createGraphics();
            g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
            g.drawImage(srcImage, 0,0, w, h, 0, 0, srcImage.getWidth(), srcImage.getHeight(), null);

Я использовал цель bufImage в методе JPanel paintComponent().

Для waitKey() я использовал KeyEventDispatcher.