利用cv2.dilate对图像进行膨胀
cv2.getStructuringElement(cv2.MORPH_RECT, (7,7))介绍,请看这个博客。
我简要说一下cv2.getStructuringElement,可用于构造一个特定大小和形状的结构元素,用于图像形态学处理。其中 MORPH_RECT 就是构造一个全1方形矩阵。
代码如下:
#coding:utf-8 import SimpleITK as sitk import numpy as np import cv2 def dilateion(image): kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7,7)) dilate = cv2.dilate(image, kernel, iterations=1) return dilate def save(x, path): predict_seg = sitk.GetImageFromArray(x) sitk.WriteImage(predict_seg, path) def read_nii(path): image = sitk.ReadImage(path) img_num = sitk.GetArrayFromImage(image) return img_num if __name__ == "__main__": path = r"D:\myProject\HDC_vessel_seg\datasets\nii\vessel_1.nii" img_num = read_nii(path) img_num = img_num[20:84,...] slices = img_num.shape[0] result = np.zeros(img_num.shape) for i in range(slices): sli = img_num[i:i+1, ...] s = sli[0,...] slice = dilateion(s) result[i,...] = slice save(result, path.replace("vessel_1", "dilate_vessel_1")) save(img_num, path.replace("vessel_1", "pre_vessel_1")) print(slices)
结果:
未扩张之前:
扩张之后:
请看这个博客
[Qǐng kàn zhège bókè]
Please see this blog