0

私はJavaの完全な初心者です。私の最終年度のプロジェクトでは、リアルタイムの画像処理に関連する何かをしなければなりません。私が今していることは、JavaCv の助けを借りて Matlab プログラムを Java に変換しようとしていることです。3D マトリックスを扱うことは本当にできません。ここに3つの質問があります。

  1. RGB 3-D 画像から赤のコンポーネントを取得します: Matlab コード: Red=I(:,:,1);Java コード: JavacvInRangeS(imgRGB, cvScalar(0, 0, 0, 0), cvScalar(255, 0, 0, 0), imgR);でこの方法を実行できますか?

  2. 1-D マトリックスで、次のコードを Java に変換する方法は? Matlab コード: Matlab コードは、 imgA の非ゼロ ピクセルごとに255 をimgB(find(imgA~=0))=255;入れることを意味します。intimgB

  3. 1-DIplImageタイプの画像から座標を抽出できますか? はいの場合、どうすればいいですか?

4

1 に答える 1

2

1 - RGB 3-D イメージから R を取得します Matlab コード:Red=I(:,:,1); Javaコード:cvInRangeS(imgRGB, cvScalar(0, 0, 0, 0), cvScalar(255, 0, 0, 0), imgR); Javaでこのようにできますか?

画像から赤色を取得したい場合は、これを試すことができます:

    BufferedImage image = ImageIO.read(new File("////////image path"));
    for (int i = 0; i < image.getWidth(); i++) {
        for (int j = 0; j < image.getHeight(); j++) {
            Color c = new Color(image.getRGB(i, j));
            int red = c.getRed();//////////here you get the Red color , you can make it array 2D 
            System.out.println(red);
        }
    }

2- 1-D マトリックスで、次のコードを Java に変換する方法は? Matlab コード:imgB(find(imgA~=0))=255; Matlabコードは、imgAからのゼロ以外のピクセルごとにimgBにint 255を入れることを意味します。

あなたはこれを行うことができます

  for (int i = 0; i < imgA.getWidth(); i++) {
        for (int j = 0; j < imgA.getHeight(); j++) {
            if (Color.BLACK.getRGB() != imgA.getRGB(i, j)) {
                imgB.setRGB(i, j, 255);
            }
        }

注 : BufferedImageを使用して画像を定義する

于 2013-01-27T19:28:17.483 に答える