14

不使用OpenCV拉普拉斯内建函数的拉普拉斯算子边缘检测。

 3 years ago
source link: https://panchuang.net/2021/08/10/%e4%b8%8d%e4%bd%bf%e7%94%a8opencv%e6%8b%89%e6%99%ae%e6%8b%89%e6%96%af%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e7%9a%84%e6%8b%89%e6%99%ae%e6%8b%89%e6%96%af%e7%ae%97%e5%ad%90%e8%be%b9%e7%bc%98%e6%a3%80/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

不使用OpenCV拉普拉斯内建函数的拉普拉斯算子边缘检测。

fendouai • 2021年8月10日 am5:10 • Medium

边缘检测是一种寻找图像边界的图像处理技术。这里,我们将介绍在边缘检测方法中相当流行的拉普拉斯方法。

如果您是OpenCV的新手,请参阅以下文档了解所需的安装。我们不会使用拉普拉斯方法的OpenCV内置函数来更好地理解此方法。

为什么我们要用拉普拉斯方法呢?

当涉及到图像时,有斜坡边缘、台阶边缘,如下图所示。

阶跃边缘很容易识别,我们可以使用一个简单的过滤式的逐次差分算子,它只进行一次导数,就可以得到像素颜色等级的变化率。

当涉及到斜坡边缘时,使用相邻像素的颜色值的差异来识别并不容易。所以我们必须找到二阶导数来识别这些边。这里我们得到颜色等级的“变化率变化率”。

在这里,我们在上面的图片中圈出,它是负的,零,正的或正的,零,负的。所以我们可以很容易地辨认出这些边缘。当我们使用二阶导数时。

对于拉普拉斯过滤,我们要做的是找出关于x和y的二阶导数。

最终,我们可以得出如下指标。

拉普拉斯函数对噪声高度敏感,所以当我们应用这个拉普拉斯过滤时。如果我们能降低噪音就更好了,我们可以利用过零特性来避免这些问题。

当涉及到高斯的拉普拉斯算子时,它是一个结合了拉普拉斯算子和高斯算子的算子,这里将首先进行高斯平滑,然后再计算拉普拉斯算子

通过应用下面的5乘5卷积核,我们可以得到高斯的拉普拉斯函数的结果。

现在让我们看看使用这些矩阵进行边缘检测的实际示例。

请参考代码

Mat img = imread(argv[1], 1);

在这里,我们读取图像并获得相关数据,如图像的高度和宽度。在if中,条件用于在图像不存在时发出消息。

然后我们创建灰度图像GR、GR2

Mat output = gr.clone();

这里创建图像以显示输出。

for (int i = 1; i < height - 1; i++) {

在这里,循环像素以应用Laplacian,并对正交像素应用Laplacian(Sum 2),然后将Laplacian应用于考虑正交和对角像素(Sum)

在cv::saturate_cast中(Sum);

我们所做的是将数据正常化。在这里,当我们像下面这样直接赋值时

output.at(y,x)=sum;

那么就会有具有以下属性的值

255+255+255+255-4*0=1020

0+0+0+0-4*255=-1020

为了使这些值在0到255之间标准化,我们使用saturate_cast。

#gray picture without laplacian 
namedWindow("Gray Image");
imshow("Gray Image", gr);

在这里,使用上面的代码,我们已经显示并保存了生成的图像。

高斯的拉普拉斯式

int sum3 = 0;

在这里,我们从值2的“i”和“j”开始,以避免当值超出界限时发生的错误。

在这里,你可以看到,高斯的拉普拉斯,也被称为墨西哥帽子核的使用,可以比其他两个核更好地检测边缘。

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/08/10/%e4%b8%8d%e4%bd%bf%e7%94%a8opencv%e6%8b%89%e6%99%ae%e6%8b%89%e6%96%af%e5%86%85%e5%bb%ba%e5%87%bd%e6%95%b0%e7%9a%84%e6%8b%89%e6%99%ae%e6%8b%89%e6%96%af%e7%ae%97%e5%ad%90%e8%be%b9%e7%bc%98%e6%a3%80/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK