矩阵卷积之边缘计算

目录

note

code

test


note

矩阵卷积之边缘计算_第1张图片

 

code

// 不扩充边缘的矩阵卷积,输出矩阵和输入矩阵一样大
void MyMatConvolute2(Mat& src, Mat& kernel, Mat& res) {
	if (src.type() != CV_8UC1) {
		return;
	}
	if ((kernel.type() != CV_8UC1) || (kernel.rows != kernel.cols) || (kernel.rows / 2 == 0)) {
		return;
	}
	// 先扩大,再缩小为原来大小
	int edge = kernel.rows / 2;
	Mat tmp(src.rows+2*edge, src.cols+2*edge, CV_8UC1, Scalar(0));
	for (int i = 0; i < src.rows; ++i) {
		for (int j = 0; j < src.cols; ++j) {
			tmp.at(i+edge,j+edge) = src.at(i,j);
		}
	}
	MyMatConvolute1(tmp, kernel, res);

test

矩阵卷积之边缘计算_第2张图片

 

你可能感兴趣的:(图像处理,矩阵,opencv,c++)