【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(一)

简介: 【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(一)

1、高通滤波器


       高通滤波器可去除图像中的低频成分并增强高频成分,因此当高通滤波器应用于图像时,将可去除属于低频范围的背景并增强属于高频成分的边缘,因此高通滤波器也称为边缘检测器。滤波器的系数需要改变,否则就会与上一节中的滤波器相类似。目前有许多高通滤波器可供选择,如下所示:

       Sobel滤波器

       Scharr滤波器

       Laplacian滤波器


1.1、Sobel滤波器

       Sobel算子或Sobel滤波器是一种广泛用于边缘检测应用的图像处理和计算机视觉算法,是一个3×3滤波器,近似于图像强度的梯度函数,针对水平和竖直方向的梯度提供各自独立的滤波器来计算,使用与本章前面所述相类似的图像卷积方法。水平和竖直3×3 Sobel滤波器如下:

实现这个Sobel滤波器的代码如下:

       OpenCV提供了用于实现Sobel滤波器的createSobelFilter函数,它需要很多参数:前两个参数是源图像和目标图像的数据类型;第三、四个参数分别是x和y导数的阶(order),给定1和0去计算x导数或竖直边缘,并给定0和1去计算y导数或水平边缘;第五个参数是可选参数,表示内核的大小,默认值为3;还有个可选参数,作为导数的规模。

       为了同时看到水平和竖直边缘,将x导数和y导数的结果相加,结果如图:

932b81e6dafa6ba1b352987f316c00c0.png

7d34280ea66fb82900d542a2c9a94a63.png

       以上结果分别是原始图像、Sobel-x导数、Sobel-y导数和Sobel-xy导数输出结果。

       Sobel算子提供的导数近似值虽然并不准确,但在计算机视觉应用中的边缘检测中依旧非常有用,它缺乏旋转对称性。为了克服这个问题,就需要Scharr算子的辅助。


1.2、Scharr滤波器

       由于Sobel不提供旋转对称性,因此使用Scharr算子通过不同的滤波器掩码来克服此问题,如下所示:

1843109b1533601ead0fed519cb2765c.png

       从上面的掩码中可以看出,Scharr算子对中心行或中心列赋予更多权重以查找边缘,实现Scharr滤波器的程序如下:

06609477bef10a5cbd20c41acf2498e3.png

    OpenCV提供了用于实现Scharr滤波器的createScharrFilter函数,它需要很多参数:前两个参数是源图像和目标图像的数据类型,第三、四个参数分别是x和y导数阶,给定1,0去计算x导数或竖直边缘,并给定0,1去计算y导数或水平边缘;第五个参数是可选项,表示内核的大小,默认值为3。

       为了同时看到水平和竖直边缘,将x导数和y导数的结果相加,结果如图:


802c104af5be614ec8c98326b2fd9af4.png

c6483326d3d7c3a4b9cf57f53420473c.png

以上结果分别是原始图像、Scharr-x导数、Scharr-y导数和Scharr-xy导数输出结果。


1.3、拉普拉斯滤波器

       拉普拉斯滤波器也是一种用于找出图像边缘的微分算子,区别于Sobel和Scharr的一阶微分算子,拉普拉斯是一种二阶微分算子,可以同时在水平和竖直方向上找到边缘,这与Sobel和Scharr算子不同。拉普拉斯滤波器计算二阶导数,对图像中的噪声是非常敏感的,因此在使用拉普拉斯滤波器之前最好对图像进行模糊处理并去除噪声。实现拉普拉斯滤波器的代码如下:

       通过createLaplacianFilter函数,生成内核大小为1和3的两种拉普拉斯滤波器来处理图像,除了内核的大小之外,该函数还需要源图像和目标图像的数据类型作为参数。使用apply方法来创建拉普拉斯滤波器,并应用于图像处理。拉普拉斯滤波器的输出如图:

       总结本部分,描述了不同的高通滤波器,包括Sobel、Scharr和Laplacian三种滤波器。

其中Sobel和Scharr用一阶微分算子去计算边缘,对噪声不太敏感;

拉普拉斯算子是用二阶导数算子去计算边缘的,对噪声则是非常敏感的。

相关文章
|
2月前
|
机器学习/深度学习 监控 算法
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
59 3
|
2月前
|
机器学习/深度学习 算法 PyTorch
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
72 1
|
4月前
|
监控 算法 自动驾驶
计算机视觉的实践与挑战:技术深度剖析
【8月更文挑战第21天】计算机视觉技术作为人工智能的璀璨明珠,正逐步深入到我们生活的各个方面,带来前所未有的便利和变革。然而,随着技术的不断发展,我们也面临着诸多挑战和问题。未来,我们需要不断推动技术创新和跨学科合作,加强数据安全和隐私保护,提升算法的鲁棒性和可解释性,以应对这些挑战并推动计算机视觉技术的持续发展。让我们共同努力,探索计算机视觉技术的广阔天地,为创造一个更加智能、安全和美好的世界而不懈努力。
|
7月前
|
文字识别 算法 TensorFlow
【Keras+计算机视觉+Tensorflow】OCR文字识别实战(附源码和数据集 超详细必看)
【Keras+计算机视觉+Tensorflow】OCR文字识别实战(附源码和数据集 超详细必看)
194 2
|
7月前
|
算法 数据库 计算机视觉
【计算机视觉】FCN、Seg-Net、U-Net模型进行图像分割实战(附源码和数据集 超详细必看)
【计算机视觉】FCN、Seg-Net、U-Net模型进行图像分割实战(附源码和数据集 超详细必看)
270 2
|
7月前
|
机器学习/深度学习 算法 TensorFlow
【Keras+计算机视觉+Tensorflow】实现基于YOLO和Deep Sort的目标检测与跟踪实战(附源码和数据集)
【Keras+计算机视觉+Tensorflow】实现基于YOLO和Deep Sort的目标检测与跟踪实战(附源码和数据集)
125 1
|
7月前
|
机器学习/深度学习 计算机视觉 Python
【Python计算机视觉】项目实战之图像增强imguag对关键点变换、标注框变化(附源码 超详细必看)
【Python计算机视觉】项目实战之图像增强imguag对关键点变换、标注框变化(附源码 超详细必看)
216 0
|
7月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Keras+计算机视觉+Tensorflow】DCGAN对抗生成网络在MNIST手写数据集上实战(附源码和数据集 超详细)
【Keras+计算机视觉+Tensorflow】DCGAN对抗生成网络在MNIST手写数据集上实战(附源码和数据集 超详细)
132 0
|
7月前
|
机器学习/深度学习 监控 算法
【Keras计算机视觉】Faster R-CNN神经网络实现目标检测实战(附源码和数据集 超详细)
【Keras计算机视觉】Faster R-CNN神经网络实现目标检测实战(附源码和数据集 超详细)
126 0
|
7月前
|
机器学习/深度学习 并行计算 算法
【计算机视觉+CNN】keras+ResNet残差网络实现图像识别分类实战(附源码和数据集 超详细)
【计算机视觉+CNN】keras+ResNet残差网络实现图像识别分类实战(附源码和数据集 超详细)
209 0

热门文章

最新文章