一、实现步骤
- 通过在图像上的相应位置提取一个7x7的区域,并计算该区域点的总和。
从而得到坐标周围点的数量(包括自身)。
- 边界情况需要特别处理,以防坐标超出图像边界。
二、程序
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 25 09:21:18 2024
Ky_Area042.py 计算二值图像某点周围的点的数量.
为删除孤立点 做准备,然后做边缘跟踪
"""
import numpy as np
# 计算某点周围的点的数量
def count_neighbors(image, x, y):
# 确保坐标不会超出图像边界
x = min(max(x, 0), image.shape[1] - 3)
y = min(max(y, 0), image.shape[0] - 3)
# 计算周围的点的数量(7*7,不包括x+4,y+4)
neighbors = image[y-3:y+4, x-3:x+4].sum()
return neighbors
# 示例:创建一个二值图像并计算特定点周围的点的数量
image = np.array([[0, 0, 0, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 1],
[0, 0, 1, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0, 1]], dtype=np.uint8)
# 计算点(2, 2)周围的点的数量
x, y = 3, 3
neighbors = count_neighbors(image, x, y)
print(f"坐标 ({x}, {y}) 周围有 {neighbors} 个点.")
三、运行结果