4

マトリックスに変換した IplImage があり、セルごとに反復したいと考えています。

CvMat mtx = new CvMat(iplUltima);
for (int i = 0; i < 100; i++) {
     //I need something like mtx[0][i] = someValue;
}
4

3 に答える 3

3

やったよ!!私はそれを共有します:

CvMat mtx = new CvMat(iplUltima);   

for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 100; j++) {
         opencv_core.cvSet2D(mtx, i, j, CvScalar.ONE);
    }
}
iplUltima = new IplImage (mtx); 

ここで、i =行、j=列です。

于 2012-05-18T02:19:44.730 に答える
1

まず、JavaCV から以下をインポートする必要があります。

インポートcom.googlecode.javacv.cpp.opencv_core.CvMat;

import static com.googlecode.javacv.cpp.opencv_core.CV_32F;

主なプログラム:

int rows = 2;
int cols = 2;

CvMat Tab = CvMat.create( rows, cols, CV_32F );

// Manually fill the table
Tab.put(0, 0, 1);
Tab.put(0, 1, 2);
Tab.put(1, 0, -3);
Tab.put(1, 1, 4);

// Iterate through its elements and print them 
for(int i=0;i<rows;i++){
   for (int j =0;j<cols;j++){
    System.out.print(" "+ Tab.get(i,j) );
    }
   System.out.println("\n");
}
于 2014-01-26T16:09:03.170 に答える
-1

Java がインストールされていないため、このソリューションを確認できませんが、問題なく動作するはずです。

CvMat mtx = new CvMat(iplUltima);
val n     = mtx.rows * mtx.cols * mtx.channels

for (i <- 0 until n) {
    // Put your pixel value, for example 200
    mtx.put(i, 200)
}

javaCVでのピクセルアクセスについてのリファレンスはこちらです。

于 2012-05-18T00:04:14.887 に答える