2

JavaCV を使用します (OpenCV ではありません)。私の目標はMat、リソースとして保存されている画像からオブジェクトを取得することです。Mat次に、これをopencv_imgproc.matchTemplateメソッドに渡します。私はこの悪いコードを書くことができました:

    InputStream in = getClass().getResourceAsStream("Lenna32.png");
    BufferedImage image = ImageIO.read(in);
    Frame f = new Java2DFrameConverter().getFrame(image);
    Mat mat = new OpenCVFrameConverter.ToMat().convert(f);

これは場合によっては機能します。問題は次のとおりです。

  1. 透明度チャネル (つまり 32BPP) を持つ png 画像の場合、チャネルをシフトするため、次のようにR=00 G=33 B=66 A=FFなります。R=33 G=66 B=FF レナ 32BPP カラーシフト

  2. ターゲット環境では、使用できませんImageIO

  3. オブジェクト変換が多すぎますInputStream -> BufferedImage -> Frame -> Mat。これを行うための簡単で効果的な方法が必要だと思います。

リソースからマットを作成する最良の方法は何ですか?

4

1 に答える 1