web-dev-qa-db-ja.com

opencvのimshowの同等のメソッドJava build

愚かな質問をしている場合は申し訳ありませんが、Java build。opencvサンプルでc ++のimshowメソッドまたはpythonのshowImageメソッドがありますが、opencv =で検索しますJava API、imshowメソッドが見つかりません。

Java build?

28
Orochi

Java highgui wrapperはまだありません( link )。swingまたはswtを使用して画像を表示する必要があります。参照: Opencv Java-GUIに画像をロード

9
ArtemStorozhuk
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();
    }
}
28
Mar

これは、Java OpenCVに相当するImshow()に対応する既製のソリューションです。使用方法は簡単です。APIは次のようになります。

Imshow im = new Imshow( "Title");

im.showImage(matimage);

こちらをご覧ください https://github.com/master-atul/ImShow-Java-OpenCV

7
Atul

私はスイングとAWTで何かを作りました。

まず、BufferedImageおよび_ImageIo.read_によってMat imgからimencodeを取得します

_        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);
_

JPanelのpaintComponent()メソッドでターゲットbufImageを使用しました。

waitKey()には、KeyEventDispatcherを使用しました。

3
Chi Kim

Java swingsまたはawtを使用して画像を表示する必要があります。実行中のコードをご覧ください http://projectimageprocessing.blogspot.in/2013/05/introduction.html

2
RAUSHAN RAJ