记录一种分层聚类的简单统计方法python用于目标测距的距离分类

简单分层聚类统计方法python

下面 直接上代码

#输入数据
dis = a[:,3]
#count 表示距离段的总个数,value 表示区域中所有像素点的个数
MAXD = int(round(max(dis),-2))
INTERVAL = 1000
sec = MAXD/INTERVAL
value = len(dis)

datas ={}
out_sum = []
out_cnt = []

for m in range(0,MAXD+INTERVAL,INTERVAL):
    con = []
    dist_sum = []
    dist_cnt = []

    i = 0
    for i in range(value):
        if dis[i] >= m and dis[i] < m + INTERVAL:
            con.append(dis[i])
            # print(con)
        else:
            pass
    data = {int(m / INTERVAL): con}
    data[int(m/INTERVAL)] = con  # 添加
    datas[int(m / INTERVAL)] = con
    # print(data)
    # 统计存储该距离段0的深度值
    dist_sum = sum(con)
    # print(dist_sum)
    # 统计该距离段深度值的总个数存储
    dist_cnt = len(con)
    # print(dist_cnt)

    out_sum.append(dist_sum)
    out_cnt.append(dist_cnt)
    m = m + INTERVAL
    # print(con)
print('***************输出分段结果**********************')
print(out_sum)
print(out_cnt)
print(datas)
#print(type(out))
 print(type(datas))

 # 求出每个距离段的深度值的个数 dist_cnt 占总像素点个数 value 的百分比;
print('********计算百分比,取出最大占比值******************')
per = []
for i in range(int(sec)):
    num = out_cnt[i]
    # print(num)
    percent = num/sum(out_cnt)
    print(percent)
    per.append(percent)
    per_max = max(per)
    position = per.index(max(per))  # 最大值的位置
print(per_max,position)
print('*************输出目标结果********************')
obj_dis = out_sum[position] / out_cnt[position]
print(obj_dis)
``
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值