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

图形设计网站wordpress微信群多个二维码

图形设计网站,wordpress微信群多个二维码,网站怎么做丰富的tag标签页,网站开发后未付维护费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篇】184.鼠标交互标记的分水岭算法 【youcans 的 OpenCV 例程200篇】182.基于形态学梯度的分水岭算法 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.39 基于形态学梯度的分水岭算法 梯度处理可以使用 Sobel、Canny 梯度算子也可以用形态学梯度操作获得梯度图像。 基于梯度的分水岭算法对微弱的边缘有着良好的响应但图像中的噪声容易导致图像的过分割。对此在对梯度图像进行阈值分割转换为二值图像后运用开运算消除噪点非常重要可以有效地抑制梯度图像的过分割。 # 11.39 基于形态学梯度的分水岭算法img cv2.imread(../images/Fig1039a.tif, flags1) # 读取彩色图像(BGR)gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转为灰度图像# 图像的形态学梯度kernel cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) # 生成 5*5 结构元grad cv2.morphologyEx(gray, cv2.MORPH_GRADIENT, kernel) # 形态学梯度# 阈值分割将灰度图像分为黑白二值图像_, thresh cv2.threshold(np.uint8(grad), 0.2*grad.max(), 255, cv2.THRESH_BINARY)# 形态学操作生成 确定背景 区域kernel cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) # 生成 3*3 结构元opening cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations2) # 开运算消除噪点sure_bg cv2.dilate(opening, kernel, iterations3) # 膨胀操作生成 确定背景 区域# 距离变换生成 确定前景 区域distance cv2.distanceTransform(opening, cv2.DIST_L2, 5) # DIST_L2: 3/5_, sure_fg cv2.threshold(distance, 0.1 * distance.max(), 255, 0) # 阈值选择 0.1*max 效果较好sure_fg np.uint8(sure_fg)# 连通域处理ret, component cv2.connectedComponents(sure_fg, connectivity8) # 对连通区域进行标号序号为 0-N-1markers component 1 # OpenCV 分水岭算法设置标注从 1 开始而连通域编从 0 开始kinds markers.max() # 标注连通域的数量maxKind np.argmax(np.bincount(markers.flatten())) # 出现最多的序号所占面积最大选为底色markersBGR np.ones_like(img) * 255for i in range(kinds):if (i!maxKind):colorKind [np.random.randint(0, 255), np.random.randint(0, 255), np.random.randint(0, 255)]markersBGR[markersi] colorKind# 去除连通域中的背景区域部分unknown cv2.subtract(sure_bg, sure_fg) # 待定区域前景与背景的重合区域markers[unknown 255] 0 # 去掉属于背景的区域 (置零)# 分水岭算法标注目标的轮廓markers cv2.watershed(img, markers) # 分水岭算法将所有轮廓的像素点标注为 -1kinds markers.max() # 标注连通域的数量# 把轮廓添加到原始图像上imgWatershed img.copy()imgWatershed[markers -1] [0, 0, 255] # 将分水岭算法标注的轮廓点设为红色print(img.shape, markers.shape, markers.max(), markers.min(), ret)plt.figure(figsize(10, 6))plt.subplot(231), plt.axis(off), plt.title(Origin xupt)plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 显示 img(RGB)plt.subplot(232), plt.axis(off), plt.title(Gradient)plt.imshow(grad, gray) # 钝化掩蔽plt.subplot(233), plt.axis(off), plt.title(Sure_bg)plt.imshow(sure_bg, gray) # 确定背景plt.subplot(234), plt.axis(off), plt.title(Sure_fg)plt.imshow(sure_fg, gray) # 确定前景plt.subplot(235), plt.axis(off), plt.title(Markers)# plt.imshow(markers, gray) # 图像标注plt.imshow(cv2.cvtColor(markersBGR, cv2.COLOR_BGR2RGB))plt.subplot(236), plt.axis(off), plt.title(Watershed)plt.imshow(cv2.cvtColor(imgWatershed, cv2.COLOR_BGR2RGB))plt.tight_layout()plt.show()本节完 版权声明 OpenCV 例程200篇 总目录-202205更新 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/124813539) 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.zqtcl.cn/news/504366/

相关文章:

  • 宜昌市住房和城乡建设官方网站泗洪网页设计
  • 计算机软件网站建设北京加盟网站建设
  • 推广网站怎么建设和维护strange wordpress主题
  • 安徽省建设厅网站打不开湘潭做网站找磐石网络一流
  • 沈阳做网站哪好网站建设后续说明
  • 给个网站最新的2021在网站的标题上怎么做图标
  • h5做网站用什么框架seo推广计划
  • 亿企搜网站建设百度网盘怎么领取免费空间
  • 天津网站排名提升如何用h5做网站
  • 外贸公司有必要建设网站吗赣州做网站哪家好
  • 功能型网站设计深圳网站优化效果
  • 郑州定制网站开发规模以上工业企业总产值
  • 锡林浩特市长安网站 建设初步方案廊坊百度推广排名优化
  • 搭建论坛网站的流程企业网络推广软件
  • 中国化工建设网站家居装修设计
  • 铜陵公司做网站大淘客网站建设app
  • 网站面包屑导航织梦做网站的教程
  • 建湖网站建设价格小程序商城哪个平台好
  • 网站域名 被别人备案买房的人都哭了吧
  • 自己做网站 套模板工具磨床东莞网站建设
  • 怎么上传图片到公司网站在深圳注册公司需要什么资料
  • 网站建设的公司哪家好用一段话来解释网站建设
  • 没有文字的网站怎么优化wordpress自定义文章类型模板
  • 东营网站设计制作网站建设匠人匠心科技
  • 海外如何淘宝网站建设2022新闻大事件摘抄
  • 仿win8 网站淘宝客网站开发视频教程
  • 宣威做网站建设的公司哈尔滨网站建设公司名字
  • 学网页设计在哪学关键词优化公司前十排名
  • 菏泽定制网站建设推广无固定ip 建设网站
  • wordpress网站制作教程视频百度云域名购买