图片的腐蚀,膨胀,开丶闭运算,梯度计算,礼帽与黑帽

1 腐蚀操作

  用于图片的去毛刺,内容削减

  

 1 #腐蚀操作
 2 #cv2.erode(src,kernel,iterations) 
 3 #src是图片数字化数组
 4 #kernel则是一个盒,对该盒内的像素进行复试操作,值越小腐蚀能力越狠
 5 #iterations是一个迭代次数,就是说你对这个图片进行几次的腐蚀操作
 6 kernel = np.ones((30,30),np.uint8)
 7 erosion1 = cv2.erode(img,kernel,iterations=1)
 8 erosion2 = cv2.erode(img,kernel,iterations=2)
 9 erosion3 = cv2.erode(img,kernel,iterations=3)
10 res = np.hstack((erosion1,erosion2,erosion3))
11 Cv_Show('Erode Picture',res)

2 膨胀操作

 1 #膨胀操作 
 2 #因为在进行腐蚀操作后,原本不需要的腐蚀的地方会变细,此时可以通过膨胀操作加回来
 3 #cv2.dilate(src,kernel,iterations)
 4 #src是图像数字化数组
 5 #Kernel为盒,对该盒内的像素进行膨胀操作,值越小膨胀能力越强
 6 #iterations是一个迭代次数,就是说你对这个图片进行几次的膨胀操作
 7 kernel = np.ones((30,30),np.uint8)
 8 dilate1 = cv2.dilate(img,kernel,iterations=1)
 9 dilate2 = cv2.dilate(img,kernel,iterations=2)
10 dilate3 = cv2.dilate(img,kernel,iterations=3)
11 res = np.hstack((dilate1,dilate2,dilate3))
12 Cv_Show('Erode Picture',res)

3 开运算,闭运算

  

 1 #开运算就是先腐蚀后膨胀,闭运算是先膨胀后腐蚀
 2 #cv2.morphologyEx(src,type,kernel)
 3 #src是图像数字化数组
 4 #type有cv2.MORPH_OPEN,cv2.MORPH_CLOSE两种
 5 #cv2.MORPH_OPEN就是开运算
 6 #cv2.MORPH_CLOSE就是闭运算
 7 #Kernel为盒,对该盒内的像素进行膨胀操作,值越小膨胀能力越强
 8 kernel3 = np.ones((30,30),np.uint8)
 9 opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel3) #使用开运算
10 closeing = cv2.MORPH_OPEN(img,cv2.MORPH_CLOSE,kernel3) #使用闭运算
11 res = np.hstack((opening,closeing))
12 Cv_Show('morphologyEx Picture', res)

4 梯度运算

1 #梯度运算
2 #梯度 = 膨胀 - 腐蚀
3 #梯度运算是为了得到边界变化的信息
4 gradient = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel3)
5 Cv_Show('Gradient Picture', gradient)

5 礼帽与黑帽

1 #礼帽和黑帽
2 #礼帽 = 原始输入 - 开运算结果 从理论上来说,一个带毛刺的图片优化后没有毛刺 - 原始有毛刺的图,那结果是毛刺
3 #黑帽 = 闭运算 - 原始输入 同样,因为先对毛刺先膨胀后腐蚀,所以有些毛刺可能没腐蚀掉,减去原始后,结果是那些没腐蚀掉的毛刺的边缘
4 topHat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel3)
5 blackHat = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel3)
6 res = np.hstack((topHat,blackHat))
7 Cv_Show('TopHat vs BlackHat Picture', res)

 

原文链接:https://www.cnblogs.com/mingrufeng/p/17342105.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:图片的腐蚀,膨胀,开丶闭运算,梯度计算,礼帽与黑帽 - Python技术站

(0)
上一篇 2023年4月22日
下一篇 2023年4月22日

相关文章

  • Python爬虫之爬取我爱我家二手房数据

    Python爬虫之爬取我爱我家二手房数据 在本攻略中,我们将介绍如何使用Python爬虫爬取我爱我家二手房数据,并提供一些示例。 步骤1:分析网页结构 在爬取我爱我家二手房数据之前,我们需要分析网页结构。我们可以使用浏览器开发者工具分析网页结构,也可以使用其他工具分析网页结构。 以下是一个示例,用于分析网页结构: import requests from b…

    python 2023年5月15日
    00
  • python用tkinter实现一个gui的翻译工具

    下面是详细讲解“Python用Tkinter实现一个GUI的翻译工具”的完整攻略。 1. 确定需求 在开始编写Python GUI应用之前,需要先确定应用的功能和界面设计。在这个例子中,我们需要一个翻译工具的GUI界面,用户可以输入需要翻译的文本,然后选择翻译的源语言和目标语言进行翻译,并将翻译结果显示在GUI界面上。 为了实现这个应用,我们需要调用第三方翻…

    python 2023年6月3日
    00
  • python 实现读取csv数据,分类求和 再写进 csv

    以下是实现读取csv数据、分类求和并将结果写回csv文件中的完整攻略: 1. 读取csv数据 Python中可以使用标准库中的csv模块来处理csv文件。该模块提供了一个csv.reader函数,可以用来读取csv文件中的数据。 示例1:假设我们有一个csv文件,名为example.csv,它包含以下数据: name,age,gender,score Tom…

    python 2023年6月3日
    00
  • 如何在Python中使用PyMongo库连接MongoDB数据库?

    以下是如何在Python中使用PyMongo库连接MongoDB数据库的完整使用攻略,包括安装PyMongo库、连接MongoDB数据库、插入数据、查询数据等步骤。同时,提供了两个示例以便更好理解如何使用PyMongo库连接MongoDB数据库。 步骤1:安装PyMongo库 在Python中,我们可以使用pip命令安装Py库。以下是安装PyMongo库的基…

    python 2023年5月12日
    00
  • Python最长公共子串算法实例

    下面是详细讲解“Python最长公共子串算法实例”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 最长公共子串算法是一种用于查找两个字符串中最长公共子串的算法。其主要思想是将两个字符串分别以行和列的形式,然后查找它们的交叉点,找到最长的交叉点序列,即为最长公共子串。最长公共子串算法的实现过程如下: 构建一个二维数组,用于存储两个字符串中…

    python 2023年5月14日
    00
  • Python中的字符串类型基本知识学习教程

    Python中的字符串类型基本知识学习教程 基本概念 在Python中,字符串是一种基本数据类型,用于表示文本信息或字符序列。可以使用单引号或双引号来创建字符串。 例如: str1 = ‘hello, world!’ str2 = "I’m a Python programmer" 字符串的索引和切片 字符串的每个字符都有一个索引,从0开…

    python 2023年5月20日
    00
  • Python提取PDF发票信息保存Excel文件并制作EXE程序的全过程

    让我来详细讲解一下“Python提取PDF发票信息保存Excel文件并制作EXE程序的全过程”的完整实例教程。 1. 安装Python及相关库 首先,我们需要安装Python及相关的库,这里我们使用Python 3.x版本,推荐使用Anaconda作为Python的集成开发环境。需要安装的相关库主要有以下几个: PyPDF2:用于读取PDF文件; openp…

    python 2023年5月14日
    00
  • python中%格式表达式实例用法

    下面是详细的攻略: Python中%格式表达式实例用法 在Python中,我们可以使用%格式表达式来格式化字符串。%格式表达式是一种非常方便的字符串格式化方式,可以将变量插入到字符串中。本文将详细讲解Python中%格式表达式的语法和用法,并提供两个示例说明。 %格式表达式语法 Python中%格式表达式的语法如下: string % values 其中,s…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部