Valley_Fun.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:DrainageNetworkExtraction 作者: MiladHooshyar 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号