BaseImageProcess#

corresponding code file:geodesy/algorithm/ImageFlow/BaseImageProcess.py

图像处理算子的基类/抽象层。

main function:

  • 统一输入输出(数组、灰度图对象)

  • 约束边界条件与数据类型

  • 提供可组合的处理流水线接口

  • windowing logical (开窗逻辑)

class BaseImageProcess#

static method#

method

Description

def get_logical_mask(values, greater=50, less=-50, equal_value=None, fillnan=False)

生成逻辑掩膜:标记大于/小于阈值或等于指定值的元素;可选将 NaN 也纳入掩膜(fillnan=True

def fill_nan_by_interpolate(values, method='linear', dims=None, max_gap=None, coords=None)

对二维数组的 NaN 做插值填充(linear/nearest/cubic);可选限制最大插值距离 max_gap

def inpaint_nan_diffusion(data, sigma=1, max_iter=100, tol=1e-3)

用高斯扩散迭代方式修复 NaN 区域,直到收敛或达到最大迭代次数

def get_deformation_gradients(image_data, guassian_sigma=0.8, guassian_radius=5)

对影像做高斯平滑(可选)后计算梯度幅值与方向(用一阶差分卷积核)

def non_maximization_suppress(gradient_magnitude, gradient_direction)

非极大值抑制(NMS):沿梯度方向保留局部极大值,抑制非边缘响应

def windowing_logical_r_c(r, c, win_radius, shape)

在大小为 shape 的数组中,以 (r, c) 为中心开窗(半径 win_radius),返回窗口内所有像素的行列下标网格

def windowing_logical(win_radius, shape, region=None)

窗口下标迭代器:在 region=[r_start,r_end,c_start,c_end] 范围内遍历每个中心点,逐个 yield 对应的窗口下标

def region_growing(image, seed, threshold, connectivity=8)

基础区域生长:从种子点开始,按阈值 threshold 吸收相似像元;支持 4/8 邻域

def region_growing_adaptive(image, seed, k=1.5, connectivity=8, max_iter=1e6)

自适应区域生长:阈值随当前区域标准差动态变化(threshold = k * std),并限制最大迭代

def region_growing_priority(image, seed, n_per_iter=1, max_points=None, connectivity=8)

优先队列区域生长:每次优先吸收差值最小的候选点;支持 NaN(跳过 NaN 点)并可限制区域最大点数

def build_polygon_to_extract_datas(values, loading_polygon_line_file=None, save_polygon_line_file=None, **kwargs)

构建/读取多段线并生成多边形,用于从栅格中提取多边形覆盖区域(返回布尔掩膜);可选保存多段线