Вопрос по matrix – Как перебрать матрицу cvMat в JavaCV?

4

У меня есть IplImage, который я конвертировал в матрицу, и теперь я хочу перебирать ячейку за ячейкой.

CvMat mtx = new CvMat(iplUltima);
for (int i = 0; i < 100; i++) {
     //I need something like mtx[0][i] = someValue;
}
Благодарность! Но в примере повторяем FloatBuffer, а не CvMat. Если мне нужно присвоить значение tu матричной позиции? gal007
это может помочь вам: / Stackoverflow.com вопросы / 9920449 / ... Larry Cinnabar

Ваш Ответ

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

Где я = строка и j = столбец

Пожалуйста, расскажите, как изменить его на CvScalar.RED или что-то еще, что означает 0-255. Я сделал это, но не изменил его на зеленый или красный цвет, какой я хочу GPrathap
Спасибо, я разберусь GPrathap
Здравствуй! Сожалею! Я никогда больше не возвращался в программу с этой технологией, поэтому я не очень хорошо помню. Тем не менее, я помню хорошую книгу: Books.google.com.ar / ... gal007
1

import 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");
}
-1

я не могу проверить это решение, но думаю, что оно должно работать нормально.

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.

Спасибо @Innuendo! Но это не сработало. Я отправлю ответ через несколько минут, я сделал это !!! gal007

Похожие вопросы