Python实现指定中心点图像径向等分并提取分区像素值方法咨询
实现思路
- 先确定分割的中心点坐标,支持手动指定,也可默认取图像几何中心。
- 为图像上所有像素计算相对于中心点的极坐标参数:核心是每个像素对应的极角(即像素点和中心点连线与水平轴的夹角,统一映射到0~2π区间)。
- 根据指定的分区总数,计算每个径向扇形分区的角度边界,n个分区对应每个分区的角度跨度为2π/n。
- 逐一生成每个分区的二值掩码:极角落在对应角度区间内的像素标记为有效区域,其余为无效区域。
- 用生成的掩码直接索引图像数组,即可提取对应分区内的所有像素强度值。
参考代码
依赖库为numpy和opencv-python,可直接运行调试:
import numpy as np import cv2 def radial_partition_extract(img, center=None, sector_num=8): """ 径向分割图像并提取各分区像素 :param img: 输入图像,支持单通道灰度图/三通道彩图 :param center: 分割中心点坐标格式为(cx, cy),传None则默认取图像几何中心 :param sector_num: 等角度分割的分区总数 :return: 各分区像素值列表、各分区二值掩码列表 """ h, w = img.shape[:2] cx, cy = center if center is not None else (w//2, h//2) # 构建全图像素坐标网格 y_grid, x_grid = np.ogrid[:h, :w] dx = x_grid - cx dy = y_grid - cy # 计算每个像素相对中心点的极角,范围映射到0~2π theta = np.arctan2(dy, dx) + np.pi angle_step = 2 * np.pi / sector_num sector_pixels = [] sector_masks = [] for sector_idx in range(sector_num): # 计算当前分区的角度范围 angle_low = sector_idx * angle_step angle_high = (sector_idx + 1) * angle_step # 生成分区掩码 cur_mask = (theta >= angle_low) & (theta < angle_high) # 提取当前分区的所有像素 cur_pixels = img[cur_mask] sector_pixels.append(cur_pixels) sector_masks.append(cur_mask) # 可视化验证:弹出窗口显示当前选中分区 vis = img.copy() if len(vis.shape) == 2: vis = cv2.cvtColor(vis, cv2.COLOR_GRAY2BGR) vis[cur_mask] = (255, 0, 0) # 蓝色标记当前分区 cv2.circle(vis, (cx, cy), 5, (0, 0, 255), -1) # 红色标记中心点 cv2.imshow(f"分区{sector_idx+1}", vis) cv2.waitKey(0) cv2.destroyAllWindows() return sector_pixels, sector_masks # 调用示例 if __name__ == "__main__": # 替换为你的本地图像路径 img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED) # 自定义中心点,比如(320, 240) center_point = (320, 240) # 分割为8个等间隔径向分区 pixels, masks = radial_partition_extract(img, center=center_point, sector_num=8) # 例:打印第1个分区的像素数量 print(f"第1个分区提取像素数:{len(pixels[0])}")
补充说明
- 上述代码实现的是和示意图一致的等角度扇形分区,如果需要做环形径向分割,只要额外计算每个像素到中心点的距离
r = np.sqrt(dx**2 + dy**2),再按半径区间生成掩码即可。 - 中心点可根据需求扩展交互选点能力:借助opencv的鼠标回调函数,点击图像即可记录点击位置作为分割中心点。
- 提取出的像素数组保留原图像通道结构,三通道彩图对应数组形状为
(分区像素总数, 3),单通道灰度图为(分区像素总数,),可直接用于后续强度统计、特征计算等操作。

内容的提问来源于stack exchange,提问作者anad
相关产品推荐
相关产品推荐

