利用cv2.dilate對影象進行膨脹
阿新 • • 發佈:2022-05-21
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