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

机关网站建设情况汇报河北关键词排名推广

机关网站建设情况汇报,河北关键词排名推广,站长工具怎么关闭,制作网站的素材贾斯卡兰巴蒂亚 一、说明 图像分割是计算机视觉的一个基本方面#xff0c;多年来经历了巨大的转变。这将是一系列三篇博客文章#xff0c;深入研究三种不同的图像分割技术 - 1使用OpenCV的经典分水岭算法#xff0c;2使用PyTorch实现的基于深度学习的UNet模型#xff0c;3 … 贾斯卡兰·巴蒂亚 一、说明         图像分割是计算机视觉的一个基本方面多年来经历了巨大的转变。这将是一系列三篇博客文章深入研究三种不同的图像分割技术 - 1使用OpenCV的经典分水岭算法2使用PyTorch实现的基于深度学习的UNet模型3 SOTA图像分割模型。同时这部分重点介绍分水岭算法及其使用 OpenCV 的实现。在下一部分中我们还将在人类分割数据集上训练UNet模型展示基于深度学习的技术的强大功能和适用性。 二、什么是图像分割         图像分割涉及将图像分区为多个段或区域每个段或区域包含一组像素。最终目标是将图像的表示简化或修改为更有意义的内容从而使其更易于分析。这些技术已广泛应用于从图像中的物体识别到医学成像诊断的众多应用中。 三、经典路线使用 OpenCV 的分水岭算法         在传统的图像分割方法领域分水岭算法占有重要地位。该算法将图像可视化为地形景观在图像内生成“集水盆地”和“分水岭线”以隔离不同的对象。以简化的方式任何灰度影像都可以被视为地形表面其中高强度表示山峰和丘陵而低强度表示山谷。         尽管在概念上易于理解和有效但分水岭算法有时会导致过度分割即对象被分成许多段。但是微调算法并添加预处理步骤可以提高算法的性能。 四、分水岭算法和OpenCV 阈值在分水岭算法的上下文中阈值在识别图像的某些部分方面起着重要作用。将图像转换为灰度后该算法对灰度图像应用阈值以获得有助于分离前景要分割的对象和背景的二进制图像。 # Load image img cv2.imread(water_coins.jpg) imshow(Original image, img)# Grayscale gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# Threshold using OTSU ret, thresh cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV cv2.THRESH_OTSU) imshow(Thresholded, thresh) 2.开运算侵蚀后扩张在此步骤中执行打开操作即侵蚀操作然后进行扩张操作。此步骤的目的主要是消除噪音。侵蚀操作消除了图像中的小白噪声但它也会缩小我们的对象。在此之后通过膨胀操作我们可以保留物体的大小同时将噪声拒之门外。         先让我们了解侵蚀和扩张 侵蚀此操作会侵蚀前景对象的边界。它的工作原理是创建一个卷积内核并将其传递到图像上。如果内核下区域中的任何像素为黑色则内核中间的像素设置为黑色。此操作可有效消除小白噪声。扩张侵蚀后进行扩张这本质上与侵蚀相反。它将像素添加到图像中对象的边界。如果内核下区域中的任何像素为白色则内核中间的像素设置为白色。 # noise removal kernel np.ones((3,3), np.uint8) opening cv2.morphologyEx(thresh, cv2.MORPH_OPEN,kernel, iterations 2)         让我们分解一下 创建内核 np.ones((3,3),np.uint8) 创建一个 3x3 矩阵所有元素为“1”。这体现了我们形态学操作的“结构元素”。它可以是不同的形状方形、圆形等但在这里我们使用方形。应用开运算 cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations 2) 应用开运算。 thresh 是阈值处理后获得的二值图像cv2.MORPH_OPEN 表示我们要执行开运算kernel是我们的结构元素iterations 2 表示我们要执行该操作两次。用于背景识别的膨胀在此步骤中膨胀操作用于识别图像的背景区域。上一步的结果是噪声已被消除受到膨胀。膨胀后物体或前景周围的很大一部分有望成为背景区域因为膨胀会扩展物体。这个“确定背景”区域有助于分水岭算法的后续步骤我们的目标是识别不同的段/对象。 # sure background area sure_bg cv2.dilate(opening, kernel, iterations3)         4. 距离变换流域算法涉及应用距离变换来识别可能成为前景的区域。下面是此步骤的代码 # Finding sure foreground area dist_transform cv2.distanceTransform(opening, cv2.DIST_L2,5) ret, sure_fg cv2.threshold(dist_transform, 0.7 * dist_transform.max(), 255, 0)         在此步骤中我们将执行两项操作 应用距离变换 cv2.distanceTransform 函数使用 cv2.DIST_L2欧几里德距离计算从每个二值图像像素到最近的零像素的距离。距离变换帮助我们识别可能位于前景的区域。函数 cv2.distanceTransform(opening, cv2.DIST_L2, 5) 计算此变换。对距离变换进行阈值处理计算距离变换后我们对该变换后的图像应用阈值处理以获得确定的前景区域。 cv2.threshold(dist_transform, 0.7*dist_transform.max(), 255, 0) 函数调用应用阈值。第二个参数 0.7*dist_transform.max() 将阈值级别设置为距离变换找到的最大距离的 70%。距离变换值高于此阈值的像素被设置为确定前景。         5.识别未知区域我们识别未知区域即既不是确定前景也不是确定背景的区域。我们首先将确定的前景sure_fg转换为无符号的8位整数。然后我们从确定背景sure_bg中减去确定前景以获得未知区域。未知区域是分水岭算法的关键因为它表示不同对象之间或对象与背景之间的过渡区域。 # Finding unknown region sure_fg np.uint8(sure_fg) unknown cv2.subtract(sure_bg, sure_fg)imshow(SureFG, sure_fg) imshow(SureBG, sure_bg) imshow(unknown, unknown) sure_fg确定前景硬币占据的区域或者更确切地说硬币的中心由于使用了距离变换和随后的阈值将被标识为确定前景。sure_bg确定背景硬币周围的区域以及硬币内部足够大以至于无法通过形态操作去除的任何区域都标记为确定背景。从本质上讲这些是没有硬币的区域。未知未知区域这些区域既不是确定前景的一部分也不是确定背景的一部分。这些是靠近硬币边缘的区域算法没有足够的信心将它们指定为前景硬币或背景硬币周围的区域。 6. 标记sure_bg、sure_fg和未知区域这涉及创建标记并标记其中的区域。我们标记的区域是确定背景 、确定前景 和未知区域。下面是此步骤的代码片段sure_bgsure_fg # Marker labelling # Connected Components determines the connectivity of blob-like regions in a binary image. ret, markers cv2.connectedComponents(sure_fg)# Add one to all labels so that sure background is not 0, but 1 markers markers1# Now, mark the region of unknown with zero markers[unknown255] 0         此外我们希望确定背景的标记与确定前景不同我们为标记图像中的所有标签添加 1。执行此操作后确定背景像素标记为 1确定前景像素从 2 开始标记。 7. 应用分水岭算法         接下来步骤是将分水岭算法应用于标记在前面的步骤中找到的标记区域 markers cv2.watershed(img,markers) img[markers -1] [255,0,0] imshow(img, img)         cv2.watershed() 函数修改标记图像标记本身。对象的边界在标记图像中用 -1 标记。图像中的不同对象用不同的正整数标记。我们不确定是背景还是前景的区域是由分水岭算法确定的——它们要么被分配给背景要么被分配给某个对象从而在对象和背景之间产生清晰的边界划分。 五、分水岭算法如何工作         流域算法中的“洪水”和“大坝建设”概念本质上是一种描述算法如何工作的隐喻方式 泛滥“泛洪”过程是指根据图像的梯度扩展每个标记区域标记。在此上下文中梯度表示地形高程高强度像素值表示峰值低强度像素值表示山谷。洪水从山谷或强度值最低的地区开始。泛洪过程的执行方式是图像中的每个像素都被分配一个标签。它收到的标签取决于哪个标记的“洪水”首先到达它。如果一个像素与多个标记等距则它目前仍作为未知区域的一部分。大坝建设 随着洪水过程的继续来自不同标记代表图像中的不同区域的洪水最终将开始相遇。当他们这样做时就会建造一个“大坝”。在算法方面这种大坝建设对应于标记图像中边界的创建。这些边界被分配一个特殊的标签通常为 -1。大坝建在不同标记的洪水相遇的位置这些位置通常是图像中强度快速变化的区域 - 表示图像中不同区域之间的边界。         应用分水岭算法后我们的标记图像最初具有确定前景、确定背景和未知区域的标签现在包含图像中每个不同对象的标签。我们有效地将图像分割成不同的对象硬币和背景。 六、结论         分水岭算法提供了一种直观高效的图像分割方法允许从复杂图像中有意义地提取特征。使用 OpenCV 库在 Python 中的实际实现进一步简化了该过程并提供了一种执行图像分割的快速方法。虽然它的基本形式可能会受到过度分割的影响但适当的图像预处理和参数调整可以有效地解决这个问题使其成为图像分析领域的强大工具。永远记住分割技术的选择取决于项目的具体要求和约束。 参考资料 What is OpenCV? The Complete Guide (2023) - viso.ai Jaskaran Bhatia – Medium
http://wiki.neutronadmin.com/news/7223/

相关文章:

  • .net 网站域账号自动验证码云南网站建设价格
  • 网站建设服务 杭州营销自动化是什么意思
  • 江西住房和城乡建设信息网站陕西网站建设培训
  • 帮别人做网站赚钱6官方网站建设银行信用卡
  • 粉红色网站欣赏wordpress 腾讯云存储
  • 太原网站搜索优化wordpress注册表格
  • 东莞新闻头条新闻百度推广整体优化网站
  • 智能建站软件哪个好网站权重有什么用
  • 播放swf文件 自动弹出网站怎么做招聘网站的数据分析
  • 电子商务网站建设的具体内容新网站如何做流量
  • 客户评价 网站建设薪火相传网站建设
  • 做啪啪网站建设工程查询网站
  • 中国黄金集团建设有限公司网站免费棋牌网站建设
  • 青岛网站seo建筑设计模板
  • 网站的域名怎么起网站备案价格
  • app定制网站建设应有尽有手机网站模板cms
  • 网站建设邀标函免费下载软件的网站
  • 昆明网站免费制作wordpress主题 qux
  • 深圳做网站乐云seo费用优惠宁波网站建设制作多少钱
  • 个人业务网站建设wordpress 首页摘要
  • 温州专业微网站制作公司云主机多个网站
  • 淘宝网站边上的导航栏怎么做湖北营销型网站建设
  • 网站设计公司产品介绍江苏网络推广专员
  • 网站的建设方案200元自助网站建设
  • 建设行政主管部门网站汉沽网站建设
  • 什么样的网站做百度广告好手机百度收录网站吗
  • 重庆模板网站哪个好ic电子网站建设
  • 网站建设业务开展方案php 学院网站
  • 西安网站开发定制制作专注昆明网站建设
  • 简述网站的设计流程是怎样的宣城网站seo诊断