前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cws图像分割

Cws图像分割

作者头像
裴来凡
发布2022-05-28 16:57:45
4970
发布2022-05-28 16:57:45
举报
文章被收录于专栏:图像处理与模式识别研究所
代码语言:javascript
复制
import cv2
import numpy as np
from skimage.segmentation import felzenszwalb, slic, quickshift, watershed
from skimage.segmentation import mark_boundaries
from skimage.util import img_as_float
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
cv2.imshow("img",img)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#将彩色图片转换为灰度图片
gradient=cv2.Sobel(gray,cv2.CV_64F,1,1)#当dx=1,dy=1时,Sobel运算
segments_watershed=watershed(gradient,markers=250,compactness=0.001)#Compact watershed segmentation分割
print('Compact watershed segmentation number of segments: {}'.format(len(np.unique(segments_watershed))))
result=mark_boundaries(img,segments_watershed)#标记边界
cv2.imshow("result",result)
cv2.waitKey()
cv2.destroyAllWindows()

Compact watershed segmentation number of segments: 256

算法:分水岭算法(Compact watershed segmentation)计算图像中已给定标记浸没的分水岭的各集水盆,并将像素分配到标记的集水盆中。该算法需要灰度梯度图像作为输入(将图像视为地表面),其中高亮像素表示区域之间的边界(形成高峰)。从给定的标志开始,然后这个地表面被浸没,直到不同的集水盆在山峰汇合。每个不同的集水盆形成一个不同的图像片段。正如在SLIC中所做的那样,还有一个额外的紧密度参数,它使得标记难以浸没较远的像素。紧密度值越高,集水区域的形状越规则。

dst=skimage.segmentation.watershed(img, markerse, connectivity, offset, mask, compactness, watershed_line)

  • img表示输入图像
  • markers表示所需数量的标记,或用标记矩阵中要分配的值标记盆地的数组
  • connectivity表示具有与图像相同尺寸的数组,其非零元素表示要连接的邻居
  • offset表示连接的偏移量(每个尺寸一个偏移量)
  • mask表示布尔值
  • compactness表示使用具有给定紧密度参数的紧凑分水岭
  • watershed_line表示如果分水岭_line为True,则一条1像素宽的线分隔由分水岭算法获得的区域。该行的标签为0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档