图像边缘处理

来源:互联网 发布:广东联合数据科技服务 编辑:程序博客网 时间:2024/05/22 10:44

有时候图像需要增强边缘来达到一定的效果,利用拉普拉斯对孤立像素的响应要比对边缘或线的响应更强烈,因此使用该算子进行图像锐化之前需要对图像作平滑处理。

分析:

当图像像素的灰度值发生剧 烈变化的时候,梯度算子是个很有效的方法,但是当灰度值变化很缓慢的时候,梯度的效果并不是很好,考虑用拉普拉斯算子是非常有效的,拉普拉斯算子是图像在x,y方向上二阶偏导的和。所以,当增强图像边缘时我们选择拉普拉斯分别对图像BGR通道分别增强来处理。

代码:

Mat addAdge(Mat & img)     //增强边缘{Mat result;vector<Mat> channels;split(img, channels);for (int i = 0; i < img.channels(); i++) {Mat result, temp;GaussianBlur(channels[i], temp, Size(3, 3), 0, 0);Laplacian(temp, result, CV_16S, 3, 1, 0, BORDER_DEFAULT);result.convertTo(result, CV_8U);add(channels[i], result, channels[i]);}merge(channels, result);return result;}




0 0
原创粉丝点击