1.自定义线性滤波–卷积

卷积工作原理–即中心值根据周围定义大小邻域,从而计算成新值


常见的卷积算子:

//Sobel算子--获取边缘比较强,用于边缘检测
Mat SX, SY;
Mat sobel_x = (Mat_<int>(3, 3) << -1, 0, 1, -2, 0, 2, -1, 0, 1);
filter2D(src, SX, -1, sobel_x, Point(-1, -1), 0.0);
//imshow("sobel_x", SX);
Mat sobel_y = (Mat_<int>(3, 3) << -1, -2, -1, 0, 0, 0, 1, 2, 1);
filter2D(src, SY, -1, sobel_y, Point(-1, -1), 0.0);
//imshow("sobel_y", SY);
//拉普拉斯算子--获取比较完整的边缘信息
Mat laplas;
Mat laplas_k = (Mat_<int>(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0);
filter2D(src, laplas,-1,laplas_k, Point(-1, -1), 0.0);
//imshow("lap", laplas);
自定义卷积模糊:

//自定义卷积加深模糊--定义卷积并且随着时间而扩大结构面积,从而加大模糊程度
Mat autoK;
int c = 0;
int index = 0;
int ksize = 3;
while (true)
{
c = waitKey(500);//图像变换延迟时间
if ((char)c == 27) {
//c==27-->按ESC退出
break;
}
ksize = 4 + (index % 8) * 2 + 1;//卷积最小面积从5开始,随后逐渐加大
Mat kernel = Mat::ones(Size(ksize, ksize), CV_32F) / (float)(ksize * ksize);//卷积计算公式
filter2D(src, autoK, -1, kernel, Point(-1, -1));
index++;
imshow("auto", autoK);
}
2.卷积边缘处理


对于高斯模糊,默认为DEFAULT

int top = (int)

--卷积,边缘处理,边缘提取,边缘检测&spm=1001.2101.3001.5002&articleId=107096935&d=1&t=3&u=466cc7add7094dd7b90ed0cbb55ac948)
889

被折叠的 条评论
为什么被折叠?



