源码

使用Python在2d数组(图像)中的像素邻居


我有一个像这样的numpy数组:

x = np.array([[1,2,3],[4,5,6],[7,8,9]])

我需要创建一个函数让我们用以下输入参数称它为“邻居”:

> x:一个numpy 2d数组
>(i,j):2d数组中元素的索引
> d:邻域半径

作为输出,我想得到具有给定距离d的单元i,j的邻居.
所以,如果我跑

neighbors(im, i, j, d=1) with i = 1 and j = 1 (element value = 5) 

我应该得到以下值的索引:[1,2,3,4,6,7,8,9].我希望我说清楚.
是否有像scipy这样的库来解决这个问题?

我做了一些工作,但这是一个粗略的解决方案.

def pixel_neighbours(self, p):

    rows, cols = self.im.shape

    i, j = p[0], p[1]

    rmin = i - 1 if i - 1 >= 0 else 0
    rmax = i + 1 if i + 1 < rows else i

    cmin = j - 1 if j - 1 >= 0 else 0
    cmax = j + 1 if j + 1 < cols else j

    neighbours = []

    for x in xrange(rmin, rmax + 1):
        for y in xrange(cmin, cmax + 1):
            neighbours.append([x, y])
    neighbours.remove([p[0], p[1]])

    return neighbours

我怎样才能改善这个?

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/shiyongpythonzai2dshuzutuxiangzhongdexiangsulinju.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 27, 2019 at 01:04 上午

热评文章