矩阵卷积原理:矩阵卷积运算的具体过程,很简单
std::vector<std::vector<int>> convolution(const std::vector<std::vector<int>>& src, const std::vector<std::vector<int>>& kernel)
{
std::vector<std::vector<int>> dst(src.size() - kernel.size() + 1, std::vector<int>(src[0].size() - kernel[0].size() + 1));
for (int i = 0; i < dst.size(); ++i)
{
for (int j = 0; j < dst[0].size(); ++j)
{
int sum = 0;
for (int m = 0; m < kernel.size(); ++m)
{
for (int n = 0; n < kernel[0].size(); ++n)
{
sum += src[i + m][j + n] * kernel[m][n];
}
}
dst[i][j] = sum;
//std::cout << dst[i][j] << " ";
}
//std::cout << std::endl;
}
return dst;
}