Я пытаюсь реализовать свертку 2.
Я пытаюсь вычислить новые значения x и y для выходного значения копии в opencv, а затем после математических вычислений копирую изображение в исходный вывод образ. Когда я компилирую и смотрю новое выходное изображение, никаких изменений не было сделано. Правильно ли я вычисляю новые значения для осей x и y?
Может ли кто-нибудь мне помочь? Заранее спасибо.
convolution(const Mat &input, Mat &output, const Mat &kernel) {
Mat copy_of_input = (Mat_<float>(3,3));
int border = 1;
Mat copy_out;
copyMakeBorder(input, copy_of_input, border, border,border,border, BORDER_REPLICATE);
for(int x=0; x < copy_of_input.rows; ++x)
{
for(int y=0; y < copy_of_input.cols; ++y)
{
for(int kx=0; kx < kernel.rows; ++kx)
{
for(int ky=0; ky < kernel.cols; ++ky)
{
x = copy_of_input.at<int>(x,y)*(y+ky-((kernel.rows-1)/2))*kernel.at<float>(ky,kx);
//new x value for copy_of_input
y = copy_of_input.at<int>(x,y)*(x+kx-((kernel.cols-1)/2))*kernel.at<float>(ky,kx);
//new y value for copy_of_input
}
}
}
}
copy_of_input.copyTo(output);
}