形态学-skimage

连通域计算与形态学特征

三维

import numpy as np
import skimage.measure as msr

# Creates a 32x32x32 array with two regions
a = np.zeros((32,32,32),np.int32)
a[5:10,5:10,5:10] = 1
a[20:30,20:30,20:30] = 1

# Assign each region to a unique integer
# then calculate the property of each region
a_regions, num_rgn = msr.label(a,return_num=True)
a_properties = msr.regionprops(a_regions)
for prop in a_properties:
    xmin,ymin,zmin,xmax,ymax,zmax = prop.bbox
    print(xmin,ymin,zmin,xmax,ymax,zmax) 

二维

import cv2
import numpy as np


img=cv2.imread("labelTmp6.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
contours,hierarchy= cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
print(len(contours))
for i in range(len(contours)):
    x,y,w,h = cv2.boundingRect(contours[i])
    cv2.rectangle(img,(x-2,y-2),(x+w+2,y+h+2),(0,255,0),2)
    print(x,y,w,h)

cv2.imwrite('contours.png', img) 

骨架提取

Bone = morphology.skeletonize(img)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容