gpt4 book ai didi

C++ OpenCV : What is the easiest way to apply 2-D convolution

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:24 25 4
gpt4 key购买 nike

我有一个我生成的内核过滤器,我想将它应用到我的图像,但我无法通过这样做获得正确的结果:实际上我也可以使用不同的方法,因为我不熟悉 opencv 我需要帮助谢谢。

channel[c]为读取图像;

int size = 5; // Gaussian filter box side size
double gauss[5][5];

int sidestp = (size - 1) / 2;

//我有一个生成高斯核滤波器的函数

float sum = 0;
for (int x = 1; x < channels[c].cols - 1; x++){
for (int y = 1; y < channels[c].rows - 1; y++){
for (int i = -size; i <= size; i++){
for (int j = -sidestp; j <= sidestp; j++){
sum = sum + gauss[i + sidestp][j + sidestp] * channels[c].at<uchar>(x - i, y - j);
}
}
result.at<uchar>(y, x) = sum;
}
}

最佳答案

OpenCV 有一个内置函数 filter2D为你做这个卷积。您需要提供源图像和目标图像,以及自定义内核(作为 Mat)以及更多参数。参见 this如果它仍然困扰着你。

关于C++ OpenCV : What is the easiest way to apply 2-D convolution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26350265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com