У меня есть IplImage, который я преобразовал в матрицу, и теперь я хочу перебирать ячейку за ячейкой.
CvMat mtx = new CvMat(iplUltima);
for (int i = 0; i < 100; i++) {
//I need something like mtx[0][i] = someValue;
}
У меня есть IplImage, который я преобразовал в матрицу, и теперь я хочу перебирать ячейку за ячейкой.
CvMat mtx = new CvMat(iplUltima);
for (int i = 0; i < 100; i++) {
//I need something like mtx[0][i] = someValue;
}
Я СДЕЛАЛ ЭТО!! Я разделяю это:
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 = столбец
Во-первых, вам нужно импортировать из JavaCV следующее:
импортировать com.googlecode.javacv.cpp.opencv_core.CvMat;
импортировать статический 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");
}
У меня не установлена 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.