Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;OpenCV:应用二维卷积的最简单方法是什么_C++_Opencv_Visual C++ - Fatal编程技术网

C++ C++;OpenCV:应用二维卷积的最简单方法是什么

C++ C++;OpenCV:应用二维卷积的最简单方法是什么,c++,opencv,visual-c++,C++,Opencv,Visual C++,我有一个生成的内核过滤器,我想将其应用于我的图像,但这样做无法获得正确的结果: 实际上,我也可以使用不同的方法,因为我不熟悉opencv,我需要帮助,谢谢 通道[c]是读取的图像 int size = 5; // Gaussian filter box side size double gauss[5][5]; int sidestp = (size - 1) / 2; //我有一个函数来生成gaussiankernel滤波器 float sum = 0; for (int x = 1; x

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

通道[c]是读取的图像

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

int sidestp = (size - 1) / 2;
//我有一个函数来生成gaussiankernel滤波器

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;
    }
}
浮点和=0;
对于(int x=1;xfor(inti=-size;iOpenCV有一个内置函数,可以为您进行这种卷积。

您需要提供源映像和目标映像,以及自定义内核(作为
Mat
)和其他一些参数。看看它是否仍然困扰您。

OpenCV有一个内置函数,可以为您执行此卷积。
您需要提供源图像和目标图像,以及自定义内核(作为
Mat
)和其他一些参数。看看它是否仍然困扰您。

只需补充上一个答案,因为您正在执行高斯模糊,您可以使用OpenCV
GaussianBlur
(检查)。与
过滤器2D
不同,您可以使用标准偏差作为输入参数。

只需添加到上一个答案中,因为您正在执行高斯模糊,所以您可以使用OpenCV
高斯模糊
(检查)。与
过滤器2D
不同,您可以使用标准偏差作为输入参数