解決策を探してみましたが、RGBA
をRGB
形式に変換できる解決策が見つかりませんでした。BufferedImage RGBAをBufferedImage RGBに変換するには?
のBufferedImageへの変換のBufferedImageから、簡単な解決策が最善になるよう指定された場合、次のようにそれ以外の問題がある:
基本的に私はMAT
形式にBufferedImageを変換する必要があります。 JPG/JPEGイメージでは正しく動作しますが、PNGでは正常に動作しません。コードに次のように変換を使用します:
BufferedImage biImg = ImageIO.read(new File(imgSource));
mat = new Mat(biImg.getHeight(), biImg.getWidth(),CvType.CV_8UC3);
Imgproc.cvtColor(mat,matBGR, Imgproc.COLOR_RGBA2BGR);
byte[] data = ((DataBufferByte) biImg.getRaster().getDataBuffer()).getData();
matBGR.put(0, 0, data);
RGBA値の画像では、このエラーが発生します。だから、解決策を探しています。
ありがとうございます。
"これはRGBA値の画像ではエラーをスローします。"エラーは秘密ですか? |あなたはそのコードをちょっと詳しく説明できますか? 2行目では、biImgと同じサイズのマットを3チャンネル作成し、データは設定しません。次に、このブランクマットを4チャンネル(RGBA)から3チャンネル(BGR)に変換します。入力は3チャンネルなので、私はそれが不満の理由だと考えます。 |次に、 'biImg'のデータを結果の' Mat'にコピーします...最初はRGBAのデータではありませんでしたか? |そのコードは大変混乱しています... –