Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 11x11盒过滤器内核_Python_Image Processing - Fatal编程技术网

Python 11x11盒过滤器内核

Python 11x11盒过滤器内核,python,image-processing,Python,Image Processing,我正在尝试使用11x11盒过滤器内核模糊图像。但我一直得到以下错误: add = image.item(i+k, j+l) IndexError: index 600 is out of bounds for axis 1 with size 600 此部件的我的代码: for i in np.arange(3, height-3): for j in np.arange(3, width-3): sum = 0 for k in np.arange(-5,6)

我正在尝试使用11x11盒过滤器内核模糊图像。但我一直得到以下错误:

    add = image.item(i+k, j+l)
    IndexError: index 600 is out of bounds for axis 1 with size 600
此部件的我的代码:

for i in np.arange(3, height-3):
for j in np.arange(3, width-3):
    sum = 0
    for k in np.arange(-5,6):
        for l in np.arange(-5,6):
            add = image.item(i+k, j+l)
            sum = sum+add
    avg = int(sum/121.0)  #for 11x11, average is sum/121
    image_output3.itemset((i,j), avg)
表示np中的i。arange(3,高度-3)
表示在图像上循环并留下3像素的边界

np.arange(-5,6)中k的
表示您正在一个需要5像素边界的内核上循环

图像。项目(i+k,j+l)
显示了
i+k
必须介于0(包括)和
高度之间的项目。鉴于上述限制,它实际上介于
3-5=-2
(包括)和
height-3+6=height+3
(不包括)之间。很明显,你将索引超出范围


然后,解决方案是调整外部循环中的边界,因此它们是
np。arange(5,高度-5)

你知道指数是以零为基础的吗?所以对于长度为600的容器,最后一个索引是599?请修复代码中的缩进。像素周围的11x11框会导致相对于像素索引的+6和-5索引。两个选项:在所有边上填充数组,这样就不会得到索引器,或者在索引周围有足够空间的地方开始/停止迭代。或者以从(0,0)到
(image.shape[0]-11,image.shape[1]-11)的起始点迭代切片