利用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
posted @ 2022-05-21 16:14  九叶草  阅读(404)  评论(0编辑  收藏  举报