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

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

2、图像形态学操作


       图像形态学与图像的区域和形状有关,用来提取有助于表示形状和区域的图像组件。与前面看到的其他图像处理操作不同,图像形态学将图像视为一堆集合的总和。图像与一种称为结构元素的小模板交互作用,这种小模板定义图像形态学中的感兴趣区域或邻域。这里将逐一解释各种可执行在图像上的形态学操作:


侵蚀:侵蚀将中心像素设置为邻域中所有像素的最小值,邻域由结构元素所定义,结构元素是1和0所组成的矩阵。侵蚀用于扩大物体中的孔、缩小边界、消除孤岛区块,并消除可能存在于图像边界上的狭窄半岛。


膨胀:膨胀将中心像素设置为邻域中所有像素的最大值,膨胀增大了白色块的尺寸并减小了黑色区域的尺寸。它用于填充对象中的孔并扩展对象的边界。


开运算:图像开运算基本上是侵蚀和膨胀的组合,图像开口被定义为先侵蚀,然后膨胀。两个操作都使用相同的结构元素执行,用于平滑图像的轮廓、分解窄桥并隔离彼此接触的物体。它用于分析发动机油中的磨损颗粒、再生纸中的油墨颗粒等。


 闭运算:图像闭运算定义为先膨胀,然后侵蚀。两个操作都使用相同的结构元素执行,用于融合狭窄的断裂并消除小孔。


       通过应用于仅包含黑色和白色的二值图像,有助于理解形态算子。OpenCV和CUDA提供了一个简单的API,可以对图像进行形态转换,代码如下:

       需要首先创建定义形态操作的邻域的结构元素,这可以通过在OpenCV中使用get-StructuringElement函数来完成。需要提供结构元素的形状和大小作为此函数的参数,本代码中定义5×5大小的矩形结构元素。


       使用createMorphologyFilter函数创建形态学操作的滤波器,需要三个强制性参数:第一个参数定义要执行的操作——cv::MORPH_ERODE用于侵蚀、cv::MORPH_DILATE用于膨胀、cv::MORPH_OPEN用于开运算、cv::MORPH_CLOSE用于闭运算;第二个参数是图像的数据类型;第三个参数是先前创建的结构元素。用apply方法在图像上调用这些滤波器。


       图像上的形态学操作输出如图:

       从输出可以看出,侵蚀减少了物体的边界,而膨胀使其变厚。我们认为白色部分是对象而黑色部分是背景。开运算可以平滑图像的轮廓,闭运算消除图像中的小孔。

       总而言之,形态学操作对于找出用于定义图像的形状和区域的组件是重要的,它可用于填充图像中的孔并使图像的轮廓平滑。


3、总结上下部分


       访问图像中特定位置的像素强度的方法,当我们对图像执行逐点运算时,它非常有用。直方图是用于描述图像的非常重要的全局特征,计算直方图的方法和直方图均衡化提高了图像的视觉质量。

       图像滤波是一种有用的邻域处理技术,用于消除噪声、提取图像的边缘特征,并进行了详细描述。

       低通滤波器用于消除噪声,但它也会模糊图像的边缘;

       高通滤波器去除被视为低频区域的背景,同时增强被视为高频区域的边缘。

       不同的形态学操作,如侵蚀,膨胀,开运算和闭运算,可用于描述图像的形状和填充图像中的孔。

相关文章
|
7月前
|
算法 vr&ar 计算机视觉
[笔记]Python计算机视觉编程《二》 基本的图像操作和处理
[笔记]Python计算机视觉编程《二》 基本的图像操作和处理
|
7月前
|
存储 算法 程序员
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(四)
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(四)
|
7月前
|
存储 Serverless C语言
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(三)
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(三)
|
7月前
|
安全 数据挖掘 计算机视觉
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(二)
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(二)
|
7月前
|
XML 算法 计算机视觉
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理(一)
[笔记]Python计算机视觉编程《一》 基本的图像操作和处理
|
9月前
|
机器学习/深度学习 决策智能 计算机视觉
计算机视觉实战(四)图像形态学操作
计算机视觉实战(四)图像形态学操作
|
12月前
|
并行计算 算法 计算机视觉
【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(一)
【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(一)
92 0
|
12月前
|
存储 并行计算 计算机视觉
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(二)
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(二)
85 0
|
12月前
|
存储 并行计算 API
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(一)
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(一)
81 0
|
计算机视觉 Python
计算机视觉中Python如何实现图像操作与处理
学习过flask动画制作或者视频编辑的童鞋应该都知道,我们平时所看到的流畅的视频画面都是由一帧一帧的图像构成的,比如我们以前读书的时候喜欢在书的边角处花一些动作不同的简笔画,当我们快速翻动书本的时候就好像我们的简笔画中的物体活了,就像在看动画一般.所以当我们需要对一个视频文件进行分析时,连续播放的视频并没有那么容易进行采样分析,在计算机视觉中对视频的分析通常都是对视频帧的分析.说白了,其实计算机视觉就是一们研究如何对图像中的信息进行自动提取的学科. 所以学习计算机视觉首先需要学会如何对图像进行处理,那在Python中我们都怎么处理图像的呢? 在Python中处理图像的库有很多,非常丰富,Pyt
148 0

热门文章

最新文章