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]
)。