当前位置: 首页 > news >正文

做vi网站仪陇网站建设

做vi网站,仪陇网站建设,济南建设主管部门网站,顺义企业网站建站公司文章目录 概要目标腐蚀膨胀开运算结构元素#xff08;内核#xff09;小结 概要 形态学变化是一组简单的图像操作#xff0c;主要用于处理二值图像#xff0c;即只包含黑和白两种颜色的图像。这些操作通常需要两个输入#xff0c;原始图像和一个内核#xff08;kernel内核小结 概要 形态学变化是一组简单的图像操作主要用于处理二值图像即只包含黑和白两种颜色的图像。这些操作通常需要两个输入原始图像和一个内核kernel内核的形状和大小决定了操作的性质。 文章将首先介绍腐蚀和膨胀这两个基本的形态学算子。腐蚀操作通过内核在图像上滑动将像素值置为内核覆盖区域内的最小值用于消除图像中的小物体或者噪点。相反膨胀操作将像素值置为内核覆盖区域内的最大值常用于连接图像中的物体或者填充小的空洞。 随后文章将介绍其他常见的形态学算子如开运算和闭运算。开运算是先进行腐蚀操作再进行膨胀操作常用于去除噪声和分离物体。闭运算则是先进行膨胀操作再进行腐蚀操作常用于填充小洞和连接物体 目标 不同的形态学运算例如腐蚀、膨胀、开运算、闭运算。 不同的函数列如cv.erode()、cv.dilate()、cv.morphologyEx()等等。 腐蚀 是一种基本的形态学操作其原理类似于自然界中的水土流失现象。在腐蚀操作中一个内核kernel在图像上滑动如果内核覆盖下的所有像素都为1即白色表示前景物体那么中心像素点就会被赋值为1否则被腐蚀掉赋值为0。 这种操作导致了图像中前景物体的边界被侵蚀保持前景物体为白色的同时减小了其厚度或尺寸。换句话说图像中的白色区域会逐渐减小。腐蚀操作在去除小白点噪声例如图像中的小杂点和分离连接在一起的对象等方面非常有效。通过选择合适的内核大小可以调整腐蚀的程度使其更加适应不同场景下的图像处理需求。 import cv2 as cv import numpy as np# 读取图像 img cv.imread(img.png, 0)# 创建一个 5x5 的内核矩阵 kernel np.ones((5, 5), np.uint8)# 使用腐蚀操作iterations参数表示腐蚀操作的次数 erosion cv.erode(img, kernel, iterations1)# 显示原始图像 cv.imshow(Original Image, img)# 显示腐蚀后的图像 cv.imshow(Eroded Image, erosion)# 等待用户按下任意键后关闭窗口 cv.waitKey(0) cv.destroyAllWindows() 腐蚀结果 膨胀 膨胀是一种形态学操作与腐蚀相反。它的基本思想是通过内核的滑动只要内核下的像素中有一个为1中心像素就会被赋值为1这类似于逻辑或运算。膨胀操作会扩大白色物体或前景物体的区域或大小。在去除噪声时通常会先进行腐蚀操作然后再进行膨胀操作。这是因为腐蚀能够去除小的白色噪声但同时也可能腐蚀掉我们需要保留的物体。膨胀操作的目的就是扩大物体使其恢复到原始大小和形状。 在膨胀操作中噪声已经在腐蚀阶段被去除因此在膨胀时不会再次引入噪声但物体的大小和体积会得到恢复。此外膨胀操作还对有破损或间断连接的物体部分进行恢复使其更加完整。通过膨胀操作可以使图像中的白色区域逐渐增大从而更好地突出物体的特征。 开运算 开运算只是先腐蚀后膨胀的另一个名称。正如我们上面所解释的它对于消除噪音很有用。这里我们函数cv.morphologyEx()。 import cv2 as cv import numpy as np# 读取图像 img cv.imread(img.png, 0)# 创建一个 5x5 的内核矩阵 kernel np.ones((5, 5), np.uint8)# 使用开运算先腐蚀后膨胀可以去除噪声并保持物体的整体形状 opening cv.morphologyEx(img, cv.MORPH_OPEN, kernel)# 显示原始图像 cv.imshow(Original Image, img)# 显示开运算后的图像 cv.imshow(Opened Image, opening)# 等待用户按下任意键后关闭窗口 cv.waitKey(0) cv.destroyAllWindows() 闭运算 闭运算和开运算相反先膨胀后腐蚀。它对于关闭前景对象内的小孔或对象上的小黑点非常有用。 import cv2 as cv import numpy as np# 读取图像 img cv.imread(img.png, 0)# 创建一个 5x5 的内核矩阵 kernel np.ones((5, 5), np.uint8)# 使用闭运算先膨胀后腐蚀可以填充前景物体内部的小孔平滑物体的边界 closing cv.morphologyEx(img, cv.MORPH_CLOSE, kernel)# 显示原始图像 cv.imshow(Original Image, img)# 显示闭运算后的图像 cv.imshow(Closed Image, closing)# 等待用户按下任意键后关闭窗口 cv.waitKey(0) cv.destroyAllWindows() 形态梯度 这是图像的膨胀和腐蚀之间做了一次差 结果将看起来像只留下对象的轮廓。 import cv2 as cv import numpy as np# 读取图像 img cv.imread(img.png, 0)# 创建一个 5x5 的内核矩阵 kernel np.ones((5, 5), np.uint8)# 使用形态梯度通过膨胀和腐蚀的差别突出物体的边缘 gradient cv.morphologyEx(img, cv.MORPH_GRADIENT, kernel)# 显示原始图像 cv.imshow(Original Image, img)# 显示形态梯度后的图像 cv.imshow(Gradient Image, gradient)# 等待用户按下任意键后关闭窗口 cv.waitKey(0) cv.destroyAllWindows() 顶帽 它是输入图像和开运算图像之间的差。下面的示例是针对 9x9 内核完成的。 import cv2 as cv import numpy as np# 读取图像 img cv.imread(img.png, 0)# 创建一个 5x5 的内核矩阵 kernel np.ones((5, 5), np.uint8)tophat cv.morphologyEx(img, cv.MORPH_TOPHAT, kernel)# 显示原始图像 cv.imshow(Original Image, img)# 显示形态梯度后的图像 cv.imshow(Gradient Image, tophat)# 等待用户按下任意键后关闭窗口 cv.waitKey(0) cv.destroyAllWindows() 底帽 它是闭运算图像和输入图像的差 import cv2 as cv import numpy as np# 读取图像 img cv.imread(img.png, 0)# 创建一个 5x5 的内核矩阵 kernel np.ones((5, 5), np.uint8)blackhat cv.morphologyEx(img, cv.MORPH_BLACKHAT, kernel) # 显示原始图像 cv.imshow(Original Image, img)# 显示形态梯度后的图像 cv.imshow(Gradient Image, blackhat)# 等待用户按下任意键后关闭窗口 cv.waitKey(0) cv.destroyAllWindows() 结构元素内核 在形态学变换中我们经常需要定义一个内核来指导图像处理。在前面的例子中我们手动创建了一个矩形内核但在实际应用中可能需要不同形状和大小的内核。为了方便地获取这些内核OpenCV提供了一个函数cv.getStructuringElement()。 使用该函数您只需要传递内核的形状和大小就可以获得所需的内核。 cv.getStructuringElement(cv.MORPH_RECT, (5, 5))如果需要一个椭圆形内核可以使用以下代码 cv.getStructuringElement(cv.MORPH_ELLIPSE, (5, 5)) 类似地如果需要一个十字形内核可以使用 cv.getStructuringElement(cv.MORPH_CROSS, (5, 5))小结 形态学变换是一种基于图像形状的简单而有效的处理方法通常应用于二值图像只包含黑白两种颜色。在形态学变换中我们使用内核也称为结构化元素来定义操作的性质和形状。 腐蚀是一种形态学变换它侵蚀了前景物体白色区域的边界通常用于去除小白点噪声或分离连接的对象。使用cv.erode()函数我们可以将内核滑动在图像上将内核覆盖下的像素点都为1时中心像素点就会被赋值为1其他时候都为0从而缩小白色区域。 膨胀则与腐蚀相反它会扩大白色物体的区域常用于恢复连接对象的大小和形状。使用cv.dilate()函数内核覆盖下的像素点只需有一个为1中心像素点就会被赋值为1从而扩大白色区域。 开运算是先腐蚀后膨胀的组合操作它可以去除噪声并保持物体的整体形状。闭运算则是先膨胀后腐蚀的组合操作它可以填充前景物体内部的小孔平滑物体的边界。这两种操作分别使用cv.morphologyEx()函数中的cv.MORPH_OPEN和cv.MORPH_CLOSE参数实现。 为了方便地定义不同形状和大小的内核OpenCV提供了cv.getStructuringElement()函数。通过传递内核的形状和大小参数可以获得所需的内核。矩形、椭圆和十字形内核是常见的选择可以根据具体任务的要求灵活选择合适的内核形状。
http://www.sadfv.cn/news/46885/

相关文章:

  • 汽车网站建设流程怎么查看网站后台地址
  • 可视化导航网站源码做动画相册在哪个网站好
  • 网站后台内容更换怎么做商务通代码是不是只要放在网站根目录下就可以了
  • 无需登录网页小游戏网站麻将网站开发
  • wordpress集成微博登陆卢镇seo网站优化排名
  • 博客网站需求分析陕西省建设总工会网站
  • 佛山网页建站模板个人帮忙做网站吗
  • 中山网站制作网页网站建设定位分析论文
  • 做网站设计工作的报告书百度云搜索引擎 百度网盘
  • 小程序开发哪家好排行榜一流的镇江网站优化
  • wordpress 流量监控百度问答优化
  • 陕西网站建设费用个人站长还有什么类型的网站可以做
  • 徐州做网站公司哪家好做网站复杂吗
  • 做菠菜网站代理犯法吗比分网站怎么做
  • 城固城乡建设规划网站邢台网站建设的地方
  • html个人网站软件开发的职业规划1000
  • 网站 域名 授权服务器 分布式wordpress varinsh
  • 网站自定义错误页面模板商业广告公司排名
  • 山东济南网站制作优化共享充电宝开发
  • 同一个服务器的网站做友情链接手机网址大全哪个好
  • 潍坊网站seo外包wordpress导入xml失败
  • 成都市城乡建设管理局网站规划一个电子商务网站
  • 自己做图片上传网站个人网页成品
  • 北京开网站建设公司一分钟赚50元的游戏
  • 网站建设公司不挣钱的原因外贸平台app下载
  • 出色的网站设计网站怎么注销备案号
  • 网站建设格式wordpress放nas
  • 深圳免费网站制作哪个好湖北网站设计
  • 广东省消防建设工程申报网站wordpress弹窗下载插件
  • 怎么制作网站应用青岛网站建设与设计制作