import cv2
import SimpleITK as sitk
import matplotlib.pylab as pylab
def show_image(img,title=None):
nda=sitk.GetArrayViewFromImage(img)
pylab.imshow(nda,cmap='gray')
pylab.axis('off')
if(title):
pylab.title(title,size=20)
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#将彩色图片转换为灰度图片
img=255*gray
img_T1=sitk.GetImageFromArray(img)
img_T1_255=sitk.Cast(sitk.RescaleIntensity(img_T1),sitk.sitkUInt8)#sitk分割
seed=(100,120)#种子
for upper in [80,85,90]:
pylab.figure(figsize=(18,20))
pylab.subplot(221)
show_image(img_T1,"Original Image")
pylab.scatter(seed[0],seed[1],color='red',s=50)
pylab.subplot(222)
seg=sitk.ConnectedThreshold(img_T1,seedList=[seed],lower=40,upper=upper)
show_image(seg,"Region Growing")
pylab.subplot(223)
show_image(sitk.LabelOverlay(img_T1_255,seg),"Connected Threshold")
pylab.axis('off')
pylab.tight_layout()
pylab.show()
算法:区域生长算法是一种分割算法,是指如果一个像素的邻域的强度与当前像素相似,则认为该邻域处于同一分割片段。初始像素集称为种子点(seed point)——通常是手动选择的。
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!