Я пытаюсь создать алгоритм для свертки матрицы с ядром, я пытаюсь сделать это в C, но я не понимаю, как я могу это сделать, мой код ниже:
#include <stdio.h>
#include <stdlib.h>
#define ROW 10
#define COL 10
#define DIV 10
int main(){
int matrix1[ROW][COL], matrix2[3][3], kernel[3][3], answerx, answery, x, y;
printf("What is the X coordinates?\n");
scanf("%i", &answerx);
printf("What is the Y coordinates?\n");
scanf("%i", &answery);
// Generate Kernel
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
kernel[r][c]=rand()%DIV;
}
}
// Generate User Matrix
for(int r=0;r<ROW;r++){
for(int c=0;c<COL;c++){
matrix1[r][c]=rand()%DIV;
}
}
x=answerx-1;
y=answery-1;
// Generate Matrix with Kernel
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
matrix2[r][c]=matrix1[x][y]*kernel[r][c];
}
}
}
// Print Kernel
printf("\tKernel(Filter)\n");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("\t %i", kernel[r][c]);
}
printf("\n");
}
// Print User Matrix
printf("\t User Matrix \n");
for(int r=0;r<ROW;r++){
for(int c=0;c<COL;c++){
printf("\t %i", matrix1[r][c]);
}
printf("\n");
}
// Print Kernel-Matrix
printf("\t Kernel/Matrix \n");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("\t %i", matrix2[r][c]);
}
printf("\n");
}
printf("Coordiantes X: %i e Y: %i \n", answerx, answery);
}
Я действительно новичок в программировании, это упражнение для моей подготовки, но я не могу понять, как я могу управлять ядром с помощью r и c с помощью x и y, я действительно нужен был ответ