开运算的作用,什么是开运算和闭运算
形态学操作
形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。
结构元素
图像处理经常要用到形态学操作,其中首先要获取结构元素。包括结构元素的大小及形状。
我们使用 Numpy 构建了结构化元素,它是正方形的。但有时我们需要构建一个椭圆形/圆形的核。为了实现这种要求,提供了 OpenCV函数 cv2.getStructuringElement()。你只需要告诉他你需要的核的形状和大小。
腐蚀 (erode)
定义E为欧氏空间,在二值图像A上使用B进行腐蚀运算的定义为: 其中 为B平移向量z得到。
在深蓝色正方形上使用圆盘进行腐蚀运算,结果为浅蓝色正方形。
腐蚀作用:可以用来消除小且无意义的物体。
参数意义如下:
例子
膨胀 (dilate)
定义E为欧氏空间,在二值图像A上使用B进行膨胀运算的定义为: 其中 为A平移向量b得到。
在深蓝色正方形上使用圆盘进行膨胀运算,结果为浅蓝色正方形,带有圆角。
膨胀作用:可以用来填补物体中的空洞。
参数意义同腐蚀。
例子
开运算 在数学形态学中,开运算 被定义为先腐蚀后膨胀。 其中 和 分别表示腐蚀和膨胀。
在深蓝色正方形上使用圆盘进行开运算,结果为浅蓝色正方形,带有圆角。
开运算作用:它被用来去除噪声
参数意义如下:
例子
闭运算
在数学形态学中,闭运算 被定义为先膨胀后腐蚀。 其中 和 分别表示腐蚀和膨胀。
在深蓝色区域(两个相连的正方形)上使用圆盘进行闭运算,结果为深蓝色和浅蓝色的并集。
闭运算作用:经常被用来填充前景物体中的小洞,或者前景物体上的小黑点。
cv2.MORPH_CLOSE代表闭运算,其他参数意义同开运算。
例子
形态学梯度 其实就是一幅图像膨胀与腐蚀的之差。
形态学梯度作用:提取前景物体的轮廓。
cv2.MORPH_GRADIENT代表形态学梯度,其他参数意义同开运算。
例子
礼帽 原始图像与进行开运算之后得到的图像的差。
例子
黑帽 进行闭运算之后得到的图像与原始图像的差。
例子
参考资料: 网址: en.wikipedia.org/wiki/Mathematical_morphology 书籍:《数字图像处理》《OpenCV-Python-Toturial-中文版》
数字图像处理
数字图像处理主要再两个领域,这里介绍空间域的处理操作。 空间域:根据图像像元数据的空间表示 f(x,y)进行处理 变换域:对图像像元数据的空间表示f(x,y)先进行某种变换,然后正对变换数据进行处理。
变换域处理一定有正变换和反变换。
空间域的处理方法有:
单波段操作 , 点运算 邻域运算 多波段操作 , 代数运算 剖面运算
对单幅图像像元进行的逐个像元计算。 直方图扩展(拉伸) 一般用于图像的整体增强
为了突出图像中感兴趣的目标或者灰度区间,抑制那些不感兴趣的灰度区域。 一般用于图像局部的灰度增强 分段拉伸
有很多方法 比如指数变换 对数变换(增强暗的部分,压缩暗的部分) 一般用于图像局部灰度增强:高斯拉伸 两边和中间压缩 平方根拉伸 暗的地方被拉伸 亮的地方被压缩
空间操作 图像裁剪【规则裁剪 不规则裁剪】 图像镶嵌 波段操作 波段提取 波段叠加
图像裁剪 根据我们的需要保留感兴趣的部分,去除其他区域。 如果不是最终的操作,此时需要尽可能比实际的研究区域略微大一点。 图像镶嵌 最大的特点是要无缝镶嵌。把多景相邻遥感影像拼成一块。 注意事项: 1、待镶嵌对图像在重叠去应该具有相似的色调、纹理等特征。 2、拼接线尽量选择在差异明显的自然地物交界处,如河流、山脊、路。 3、对拼接线两边附近的图像作匀色处理。
图像镶嵌步骤:
波段提取 从一个多波段的图像文件中提取某一个特定波段作为一个独立文件。 波段叠加 把同一个地理范围不同波段的文件合并为一个多波段文件。
求反 与 或 异或运算
二值形态学 灰度形态学 腐蚀 膨胀 开运算 闭运算
腐蚀 :是一种消除边界点、使边界向内部收缩的过程,可以用来消除小且无意义的目标物。
开运算:使用同一个结构元素对图像先腐蚀再膨胀的运算。 闭运算:使用同一个结构元素对图像先膨胀再腐蚀的运算。
腐蚀:用结构元素b对输入图像f进行腐蚀。 膨胀 开运算:先腐蚀,后膨胀 闭运算:先膨胀,后腐蚀
形态学的开闭运算与字面上的“开”和“闭”的本来的意义有什么关系?
形态学分很多种呢,我也不知道你想要知道哪种?其实形态学的开闭运算并不能强加以字面的意义,很多人不能完全掌握形态学就是这样的原因。形态学中的开与闭其实是一种现象的逆反过程的代名词。与现实中的区别很大。学习的时候要忘记你现实的开与闭的意义。图像开运算和闭运算
如果您觉得本文不错,帮忙点赞哦! 一. 图像形态学处理 —— 膨胀和腐蚀 二. 开运算与闭运算: 开运算:先腐蚀后膨胀,能够消除图像区域外的小白点(噪声)。 闭运算:先膨胀后腐蚀,能够消除图像区域内的小黑点(噪声)。 为什么有了膨胀、腐蚀还要开运算闭运算呢?其实开闭运算最重要的一点就是,可以保持物体原有大小。然后一个是消除物体外部噪声(开运算)的另一个是增强物体之间连接点(闭运算)的。 三. python实现开运算和闭运算: # Writer : wojianxinygcl@163 # Date : 2023.3.21 import numpy as np # Morphology Dilate def Morphology_Dilate(img, Dil_time=1): H, W = img.shape # kernel MF = np.array(((0, 1, 0), (1, 0, 1), (0, 1, 0)), dtype=np.int) # each dilate time out = img.copy() for i in range(Dil_time): tmp = np.pad(out, (1, 1), 'edge') for y in range(1, H): for x in range(1, W): if np.sum(MF * tmp[y-1:y+2, x-1:x+2]) >= 255: out[y, x] = 255 return out # Morphology Erode def Morphology_Erode(img, Erode_time=1): H, W = img.shape out = img.copy() # kernel MF = np.array(((0, 1, 0), (1, 0, 1), (0, 1, 0)), dtype=np.int) # each erode for i in range(Erode_time): tmp = np.pad(out, (1, 1), 'edge') # erode for y in range(1, H): for x in range(1, W): if np.sum(MF * tmp[y-1:y+2, x-1:x+2]) < 255*4: out[y, x] = 0 return out # Morphology Closing def Morphology_Closing(img, time=1): out = Morphology_Dilate(img, Dil_time=time) out = Morphology_Erode(out, Erode_time=time) return out # Opening morphology def Morphology_Opening(img, time=1): out = Morphology_Erode(img, Erode_time=time) out = Morphology_Dilate(out, Dil_time=time) return out 四. 开闭运算的效果: 可以看到,图像开运算,消除了图像外部的噪声,图像闭运算,连通了更多的图像区域。 五. 参考内容: ① cnblogs/wojianxin/p/12542459.html ② blog.csdn/Ibelievesunshine/article/details/105018063 六. 版权声明:什么叫做一个数的平方根,开平方运算和平方运算有什么关系?
如果一个数的的平方根等于a,那么这个数叫做a的平方或a的二次方求一个数的平方根的运算 叫做开平方。平方是一种运算,比如,a的平方表示a×a,简写成a²,也可写成a×a开平方是平方的逆运算
开根号是什么?可以干什么?有什么用?
开根号是求平方的逆运算。如5的平方是25,25开根号就是5。