def segment_size_curvature(curve_Array):
min_c = np.nanmin(curve_Array)
max_c = np.nanmax(curve_Array)
max_c = max(max_c , -min_c)
max_num_label_valley = 0
max_num_label_ridge = 0
d_curve = max_c / (5 * 100)
for i in range (0 , 100):
k_tresh_valley = 1 * ( float(i) * d_curve)
k_tresh_ridge = -1 * k_tresh_valley
Val_Array = np.where(curve_Array >= k_tresh_valley, 1, 0)
Rid_Array = np.where(curve_Array <= k_tresh_ridge, 1, 0)
Lab_Val_Array, num_label_val = ndimage.label(Val_Array , structure = np.ones((3 , 3)))
Lab_Rid_Array, num_label_rid = ndimage.label(Rid_Array , structure = np.ones((3 , 3)))
labels_val = np.arange(1, num_label_val + 1)
labels_rid = np.arange(1, num_label_rid + 1)
try:
area_label_val = ndimage.labeled_comprehension(Val_Array, Lab_Val_Array, labels_val, np.sum, int, 0)
num_sig_label_valley = np.sum(area_label_val >= 1)
except ValueError:
num_sig_label_valley = 0
try:
area_label_rid = ndimage.labeled_comprehension(Rid_Array, Lab_Rid_Array, labels_rid, np.sum, int, 0)
num_sig_label_ridge = np.sum(area_label_rid >= 1)
except ValueError:
num_sig_label_ridge = 0
if num_sig_label_valley >= max_num_label_valley:
max_num_label_valley = num_sig_label_valley
valley_thresh = k_tresh_valley
if num_sig_label_ridge >= max_num_label_ridge:
max_num_label_ridge = num_sig_label_ridge
ridge_thresh = k_tresh_ridge
return valley_thresh , ridge_thresh
Valley_Fun.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录