Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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 我得到一个索引器,该索引类型不合适,但我使用int()函数对索引进行了类型转换。有人能帮忙解释一下吗?_Python_Numpy_Image Processing - Fatal编程技术网

Python 我得到一个索引器,该索引类型不合适,但我使用int()函数对索引进行了类型转换。有人能帮忙解释一下吗?

Python 我得到一个索引器,该索引类型不合适,但我使用int()函数对索引进行了类型转换。有人能帮忙解释一下吗?,python,numpy,image-processing,Python,Numpy,Image Processing,下面的程序用于使用一阶插值进行缩放。 我正在读取图像,删除行和列,然后尝试通过平均像素值来重新缩放图像 与错误对应的行如下所示。代码还包含一个鼠标处理程序,用于确定单击后要修改的区域 import cv2 import numpy as np import sys #Global Declaration img = cv2.imread("lenna.png") maskSize = 100 gap = 4 #Callback function def clickAndScale(event,

下面的程序用于使用一阶插值进行缩放。 我正在读取图像,删除行和列,然后尝试通过平均像素值来重新缩放图像

与错误对应的行如下所示。代码还包含一个鼠标处理程序,用于确定单击后要修改的区域

import cv2
import numpy as np
import sys
#Global Declaration
img = cv2.imread("lenna.png")
maskSize = 100
gap = 4
#Callback function
def clickAndScale(event, y, x, flags, param):
    if event==cv2.EVENT_LBUTTONDOWN:
        output = img.copy()
        for i in range (x, x+maskSize): #maskSize is for the area to undergo change after mouse click 
            for j in range (y, y+maskSize):
                output[i][j] = temp[i][j]
        cv2.imshow("Interpolation", output)


#Body of the code
height, width = img.shape[0:2]
scaleDown = np.zeros((height//gap, width//gap, 3), dtype=np.uint8)
k, l = 0, 0
for i in range(0, width, gap):
        for j in range(0, height, gap):
            scaleDown[k][l] = img[i][j]
            l += 1
        k += 1
        l = 0     
temp = np.zeros((height, width, 3), dtype=np.uint8)
k, l = 0, 0

for i in range (0, width, 4):
    for j in range (0, height, 4):
        k, l, m = i, j, gap+j
        for t in range (0 ,2):
            for n in range (0,2):
                var1 = int((l+m)//2)
                var2 = int((m+gap)//2)
                temp[k][var1] = int((temp[k][l]+temp[k][l+m])//2) #This is the line which causes the error
                temp[k][var2] = int((temp[k][m]+temp[k][gap])//2)
                m /= 2
            k, l, m  = i+gap, j, gap+j 
        k, l, m = i, j, gap+1    
        for l in range (j , j+gap+1):
            for n in range (0, 2):
                var1 = int((k+m)//2)
                var2 = int((k+gap)//2)

                temp[var1][l] = (temp[k][l]+temp[k+m][l])//2
                temp[var2][l] = (temp[k][l]+temp[gap][l])//2
                m /= 2
            m = gap+j

cv2.imshow("Image",img)
cv2.setMouseCallback("Image", clickAndScale) #Mouse Callback function
cv2.waitKey(0) 
cv2.destroyAllWindows()

这是什么猜谜游戏?“与错误对应的行如下所示。”哪一行?当使用多维数组(如
temp
)时,我们更希望看到索引语法(如
temp[k,var1]
)。