Python提取感兴趣区域ROI案例(三)程序结果及代码

本文通过Python展示了如何提取感兴趣区域(ROI),虽然处理单元格密度的方法有待改进,但ROI提取的逻辑正确。文章包含10×10和30×30坐标网格的案例,用随机轨迹和密度阈值确定ROI,并提供了相应的程序截图和代码。
摘要由CSDN通过智能技术生成

引言

处理单元格密度不太妥当(以点经过的单元格计算,其实应该考虑点的领域,让这个领域移动,经过单元格计算),但是提取感兴趣区域(ROI)逻辑应该是正确的。

程序截图

10×10坐标网格 60随机轨迹 密度阈值8
输入
随机轨迹图
轨迹
单元格密度热图
单元格密度热图
ROI
ROI
30×30坐标网格 1000随机轨迹 密度阈值52
输入
随机轨迹图
轨迹
单元格密度热图
单元格密度热图
ROI
ROI

程序代码

import matplotlib.pyplot as plt
import numpy as np
import math

x_l = input('多少列 x轴范围')
y_l = input('多少行 y轴范围')
x_l = int(x_l)
y_l = int(y_l)
num = input('多少轨迹 随机')
num = int(num)

#找到大于等于阈值的所有单元格
def set(X,min_density):
    set = []
    d_max = X[0][0]
    for i in X:
        for j in i:
            if j > d_max:
                d_max = j

    for density in range(d_max,min_density - 1,-1):
        index = np.argwhere(X == density)
        set.append(index)
    return set

#计算一个区域的平均阈值
def get_Avg_Density(X,region):
    x0 = region[0][0]
    y0 = region[0][1]
    x1 = region[1][0]
    y1 = region[1][1]

    x_len = x1 - x0 + 1#x轴方向个数
    y_len = y1 - y0 + 1#y轴方向个数
    num = x_len * y_len#个数

    density = 0
    #计算区域的平均密度
    for x in range(x0,x1 + 1):
        for y in range(y0,y1 + 1):
            density+=X[y][x]

    avg_density = density / num
    return avg_density

#判断一个区域有没有 用过的点 True-有用过的点
def use_Region(use,region):
    x0 = region[0][0]
    y0 = region[0][1]
    x1 = region[1][0]
    y1 = region[1][1]
    for x in range(x0,x1 + 1):
        for y in range(y0,y1 + 1):
            if(use[y][x] == 1):
                return True
    return False

#把一个区域的点都变成用过
def change_To_Use(use,region):
    x0 = region[0][0]
    y0 = region[0][1]
    x1 = region[1][0]
    y1 = region[1][1]
    for x in range(x0,x1 + 1):
        for y in range(y0,y1 + 1):
            use[y][x] = 1

# 画出区域
def draw_Region(region):
    x0 = region[0][0]
    y0 = region[0
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值