У меня вопрос по формуле совместного использования.Как я могу реализовать в Java вычисление GLCM изображения?
Конкретно я пытаюсь выяснить, как вычислить количество раз, когда пиксель имеет интенсивность x
, а пиксель в его непосредственном правом имеет интенсивность y
.Мне также нужно сохранить полученное значение в x
-ой строке и y
-ом столбце полученной матрицы совместного вхождения.
Ожидаемое поведение показано ниже:
Вот что я получил до сих пор:
КОД (еще не завершен)
public class MainClass {
final static int[][] matrix= {
{2,4,1,3},
{7,2,1,6},
{1,1,2,2},
{1,2,5,8}
};
static int i;
static int j;
static int x;
static int y;
static int c;
static int d;
static int maxValue = matrix[0][0];
static int minValue = matrix[0][0];
public static void main(String[] args) {
// TODO Auto-generated method stub
for(i = 0; i< matrix.length; i++) {
for(j=0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + "");
if(matrix[i][j] > maxValue) {
maxValue=matrix[i][j];
}
else if(matrix[i][j] < minValue) {
minValue=matrix[i][j];
}
}
System.out.println();
}
System.out.println("maxValue = "+ maxValue);
int count = 0;
for(int i=0; i< matrix.length; i++) {
for (int j=0; j<matrix[i].length; j++) {
int x = i;
int y = j;
if(matrix[x][y] == 1 & matrix[x][y+1] ==1) {
count ++;
}
System.out.println(matrix[x][y+1]);
}
}
}
OUTPUT (ОШИБКА)
2413
7216
1122
1258
maxValue = 8
4
1
3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at main.MainClass.main(MainClass.java:45)
Я бы предпочел не использовать сторонние библиотеки, такие как OpenCV или jfeaturelib.