用织梦做的学校网站建设工程教育网官网学员登录

news/2025/10/2 12:56:04/文章来源:
用织梦做的学校网站,建设工程教育网官网学员登录,全球互联网企业排名,展览公司网站建设方案OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】180.基于距离变换的分水岭算法 【youcans 的 OpenCV 例程200篇】181.基于 Sobel 梯度的分水岭算法 【youcans 的 OpenCV 例程200篇】182.基于形态学梯度的分水岭算法 【youcans 的 OpenCV 例程200篇】183.基…OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】180.基于距离变换的分水岭算法 【youcans 的 OpenCV 例程200篇】181.基于 Sobel 梯度的分水岭算法 【youcans 的 OpenCV 例程200篇】182.基于形态学梯度的分水岭算法 【youcans 的 OpenCV 例程200篇】183.基于轮廓标记的分水岭算法 【youcans 的 OpenCV 例程200篇】183.基于轮廓标记的分水岭算法 7. 图像分割之分水岭算法 分水岭算法是一种图像区域分割法以临近像素间的相似性作为重要特征从而将空间位置相近且灰度值相近的像素点互相连接起来构成一个封闭的轮廓。 分水岭算法是基于形态学的图像分割方法体现了边缘检测、阈值处理和区域提取的概念和思想往往会产生更稳定的分割结果。算法的实现过程可以理解为洪水淹没的过程最低点首先被淹没然后水逐渐淹没整个山谷水位升高到一定高度就会溢出于是在溢出位置修建堤坝不断提高水位重复上述过程直到所有的点全部被淹没所建立的一系列堤坝就成为分隔各个盆地的分水岭。 分水岭的计算过程是一个迭代标注过程通过寻找集水盆和分水岭对图像进行分割。经典的分水岭算法分为排序过程和淹没过程两个步骤首先对每个像素的灰度级从低到高排序然后在从低到高的淹没过程中对每一个局部极小值在 h 阶高度的影响域进行判断及标注。 OpenCV 提供了函数 cv.watershed 实现基于标记的分水岭算法。 使用函数 cv.watershed 需要输入一个CV_32S 类型的标记图像图像中每个非零像素代表一个标签。对图像中部分像素做标记表明它的所属区域是已知的。 cv.watershed(image, markers[, ] ) → markers 参数说明 image输入图像8-bit/3-channel 彩色图像markers标记图像32-bit 单通道图像大小与 image 相同 注意事项 分水岭算法要求必须在标记图像 markers 中用索引勾勒出需要分割的区域每个区域被赋值为 1、2、3… 等索引编号对应于不同的目标物体。图像标记 markers 中未知区域的像素值设置为 0通过分水岭算法确定这些像素属于背景还是前景区域。输出的图像标记 markers 中每个像素都被赋值为 1、2、3… 等索引编号或以 -1 表示区域之间的边界分水岭。 OpenCV 提供了函数 cv.distanceTransform 实现距离变换计算图像中每个像素到最近的零像素点的距离。 函数说明 cv.distanceTransform(src, distanceType, maskSize[, dstNone, dstTypeCV_32F]) → dst cv.distanceTransformWithLabels(src, distanceType, maskSize[, dstNone, labelsNone, labelTypeDIST_LABEL_CCOMP]) → dst, labels参数说明 src输入图像8-bit 单通道灰度图像distanceType距离的类型 cv.DIST_USER用户定义的距离cv.DIST_L1dist∣x1−x2∣∣y1−y2∣dist |x1-x2||y1-y2|dist∣x1−x2∣∣y1−y2∣cv.DIST_L2欧几里德距离cv.DIST_Cdistmax(∣x1−x2∣,∣y1−y2∣)dist max(|x1-x2|, |y1-y2|)distmax(∣x1−x2∣,∣y1−y2∣) maskSize距离变换遮罩的大小通常取 3, 5labelType生成的标签数组的类型 cv.DIST_LABEL_CCOMP每个连接的零组件及最接近连接组件的所有非零像素被指定相同的标签cv.DIST_LABEL_PIXEL每个零像素及离它最近的所有非零像素都有自己的标签 dst计算距离的输出图像8-bit 或 32-bit 单通道图像大小与 src 相同labels标签的输出图像CV_32SC1类型 大小与 src 相同 例程 11.40 基于轮廓标记的分水岭算法 基于标记的分水岭算法的思想是利用先验知识来帮助分割。本例程先用梯度算子进行边缘检测然后通过查找图像轮廓生成标记图像来引导分割。 基于轮廓标记的分水岭算法的步骤为 1对图像进行梯度处理获得梯度图像 2对梯度图像查找和绘制轮廓 3基于轮廓图像生成标记图像 4基于标记图像使用分水岭算法进行分割得到各个分割目标的轮廓 5把目标的轮廓添加到原始图像上 6用随机颜色填充分割图像。 # 11.40 基于轮廓标记图像的分水岭算法img cv2.imread(../images/imgLena.tif, flags1) # 读取彩色图像(BGR)# img cv2.imread(../images/imgTina.png, flags1) # 读取彩色图像(BGR)gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转为灰度图像# 查找和绘制图像轮廓Gauss cv2.GaussianBlur(gray, (5,5), sigmaX4.0)grad cv2.Canny(Gauss, 50, 150) # Canny 梯度算子# grad cv2.Canny(gray, 80, 150) # Canny 梯度算子grad, contours, hierarchy cv2.findContours(grad, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 查找图像轮廓markers np.zeros(img.shape[:2], np.int32) # 生成标识图像所有轮廓区域标识为索引号 (index)for index in range(len(contours)): # 用轮廓的索引号 index 标识轮廓区域markers cv2.drawContours(markers, contours, index, (index, index, index), 1, 8, hierarchy)ContoursMarkers np.zeros(img.shape[:2], np.uint8)ContoursMarkers[markers0] 255 # 轮廓图像将所有轮廓区域标识为白色 (255)# 分水岭算法markers cv2.watershed(img, markers) # 分水岭算法所有轮廓的像素点被标注为 -1WatershedMarkers cv2.convertScaleAbs(markers)# 用随机颜色填充分割图像bgrMarkers np.zeros_like(img)for i in range(len(contours)): # 用随机颜色进行填充colorKind [np.random.randint(0, 255), np.random.randint(0, 255), np.random.randint(0, 255)]bgrMarkers[markersi] colorKindbgrFilled cv2.addWeighted(img, 0.67, bgrMarkers, 0.33, 0) # 填充后与原始图像融合print(len(contours))plt.figure(figsize(10, 6))plt.subplot(231), plt.axis(off), plt.title(Origin image)plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 显示 img(RGB)plt.subplot(232), plt.axis(off), plt.title(Gradient)plt.imshow(grad, gray) # Canny 梯度算子plt.subplot(233), plt.axis(off), plt.title(Contours markers)plt.imshow(ContoursMarkers, gray) # 轮廓plt.subplot(234), plt.axis(off), plt.title(Watershed markers)plt.imshow(WatershedMarkers, gray) # 确定背景plt.subplot(235), plt.axis(off), plt.title(Color Markers)plt.imshow(cv2.cvtColor(bgrMarkers, cv2.COLOR_BGR2RGB))plt.subplot(236), plt.axis(off), plt.title(Cutted image)plt.imshow(cv2.cvtColor(bgrFilled, cv2.COLOR_BGR2RGB))plt.tight_layout()plt.show()本节完 版权声明 OpenCV 例程200篇 总目录-202205更新 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/124813571) Copyright 2022 youcans, XUPT Crated2022-5-15 欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列持续更新中 【youcans 的 OpenCV 例程200篇】180.基于距离变换的分水岭算法 【youcans 的 OpenCV 例程200篇】181.基于 Sobel 梯度的分水岭算法 【youcans 的 OpenCV 例程200篇】182.基于形态学梯度的分水岭算法 【youcans 的 OpenCV 例程200篇】183.基于轮廓标记的分水岭算法 【youcans 的 OpenCV 例程200篇】184.鼠标交互标记的分水岭算法 更多内容请见 【OpenCV 例程200篇 总目录-202206更新】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

400选号网站源码wordpress聚合广告平台

让我们定义dn​为&#xff1a;dn​pn1​−pn​&#xff0c;其中pi​是第i个素数。显然有d1​1&#xff0c;且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<105)&#xff0c;请计算不超过N的满足猜想的素数对的个数。…

2025热熔胶厂家 TOP 企业品牌推荐排行榜,书刊装订,珍珠棉,纸箱包装,环保,书本,试卷,票据,平摊,胶版纸,铜版纸热熔胶公司推荐!

在当前热熔胶应用领域不断拓展的背景下,行业发展虽呈现蓬勃态势,但也面临着诸多亟待解决的问题。从市场层面来看,热熔胶产品质量参差不齐,部分厂家为追求短期利益,降低生产标准,导致产品出现粘性不足、易脆断、有…

cyberstrikelab-lab14

flag1 pluck 后台弱密码 cslab 第一次打的时候任意文件上传上传不上去,怀疑是没配置好 temp 目录的权限,这里用另一个漏洞 先把报错的 album 模块删掉 抓包修改 cont2 cont2=;eval($_POST[x]);//蚁剑连接 http://10.…

GreenHat 中文系列教程 2025.10 更新

10 个 LED 极客项目 20 个简单的树莓派项目 FreeBSD 绝对指南 算法思维 安卓恶意软件手册 安卓安全内部原理 面向 Arduino 爱好者的 Arduino 指南 Arduino 发明者指南 Arduino 游乐场 Arduino 项目手册 Arduino 项目手…

编译器细节:动态链接与静态链接行为分析

gcc 与ld.so (以 Alpine Linux为例)背景:Alpine Linux 是一个基于 musl libc 和 busybox 构建的轻量级 Linux 发行版,专注于安全性、资源效率和简洁性。它被广泛用于 Docker 容器、嵌入式系统和云计算环境。gcc 和…

网站图片特效源码品牌建设工作经验

前言&#xff1a;关于MVC和SSM基本内容的梳理&#xff0c;以及两者之间的关系。 文章目录 1. 三层架构2. MVC3. SSM 1. 三层架构 三层架构是指&#xff1a; 视图层view&#xff08;表现层&#xff09;: 用于显示数据和接收用户输入的数据&#xff0c;为用户提供一种交互式操作…

.net做网站用什么框架长春是几线城市2021

0. cas服务搭建参考:CAS 5.3服务器搭建_cas-overlay-CSDN博客 1. 参照springsecurity适配cas的方式, 一直失败, 无奈关闭springssecurity认证 2. 后端服务适配cas: 参考前后端分离项目(springbootvue)接入单点登录cas_前后端分离做cas单点登录-CSDN博客 1) 引入maven依赖 …

使用虚幻引擎(UE5)制作开箱爆金币功能 - 详解

使用虚幻引擎(UE5)制作开箱爆金币功能 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

网站空间内存公司建设网站带来什么

目录 前言&#xff1a; 题单&#xff1a; P3386 【模板】二分图最大匹配 P1525 [NOIP2010 提高组] 关押罪犯 P3385 【模板】负环 P3371 【模板】单源最短路径&#xff08;弱化版&#xff09; SPFA写法 Dij写法&#xff1a; P3385 【模板】负环 P5960 【模板】差分约束…

网站空间稳定性centos wordpress 搭建

1、什么是混流&#xff1f; 混流就是把多路音视频流合成单流。准确的说&#xff0c;混流应该叫做混音&#xff08;音频流&#xff09;混画面&#xff08;视频流&#xff09; 混流的过程包括解码、混流、编码和推流四个部分。混流这个环节包括做抖动缓冲&#xff0c;目的是把多…

2025 年自动喷砂机厂家 TOP 企业品牌推荐排行榜,从生产规模到技术创新,自动喷砂机推荐这十家公司!

在工业生产领域,自动喷砂机作为关键的表面处理设备,其重要性不言而喻。从汽车制造、工程机械,到航空航天、金属结构等众多行业,都依赖自动喷砂机对工件进行除锈、清洁、强化等处理,以提升产品质量和使用寿命。然而…

有哪些网站可以做电子邀请函家电维修怎么自己做网站

程序遍历MySQL然后插入Redis&#xff0c;效率极低。利用redis-cli命令行工具有一个批量插入模式&#xff0c;是专门为批量执行命令设计的。可以把Mysql查询的内容格式化成redis-cli可用数据格式。1&#xff0c; 根据表创建一个sql&#xff0c;将数据转换为redis可用的格式(1) 表…

深入解析:《考研408数据结构》第三章(3.1 栈)复习笔记

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年光亮剂源头厂家最新推荐榜单:聚焦实力厂商,为电镀企业精选高口碑品牌

当前电镀行业对光亮剂的需求日益增长,但市场乱象却给企业采购带来诸多困扰。一方面,大量小型厂家涌入市场,产品质量缺乏保障,部分产品稳定性差,易导致电镀工件报废,增加企业成本;另一方面,多数厂家技术能力有限…

React前端框架有哪些? - 指南

React前端框架有哪些? - 指南2025-10-02 12:33 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importan…

微信公众号搭建微网站长沙水业网站是哪家公司做的

django实现图片瀑布流布局 我们在一些图片网站上经常会看到&#xff0c;满屏都是图片&#xff0c;而且图片都大小不一&#xff0c;却可以按空间排列。默认一个div是占用一行&#xff0c;当想把div里的图片并排显示的时候&#xff0c;只能使用float属性&#xff0c;但是&#xf…

七宝做网站公司word做网站框架

视频&#xff1a;黑马程序员SpringBoot3Vue3全套视频教程&#xff0c;springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 图示&#xff1a;

公司让我做网站负责人电子商务网站建设需要什么

[ICPC2021 Nanjing R] Klee in Solitary Confinement 题面翻译 给定 n , k n,k n,k 和一个长为 n n n 的序列&#xff0c;你可以选择对区间 [ l , r ] [l, r] [l,r] 的数整体加上 k k k&#xff0c;也可以不加。最大化众数出现次数并输出。 题目描述 Since the travele…

物品“复活”软件开发过程(第一版)

物品“复活”软件开发过程(第一版)| 环节 | 完成时间(h) | | 计划 | 0.5 | | 分析需求 | 0.5 | | 设计文档 | 1 | | 代码规范 | 0.5 | | 具体设计 | 0.5 …