我试图用cv2
在图像中显示矩形。但是由于以下错误,我无法在图像上制作它们。在
我已经将图像转换成numpy
数组,并尝试以不同的方式记下顶点,但一般格式是正确的。我不知道元组错误是从哪里出现的。在
def draw_rect(img, dims, color = None):
img = img.copy()
dims = dims.reshape(-1, 4)
if not color:
color = (255, 255, 255) #rgb values for white color
for dim in dims:
x, y = (dim[0], dim[1]) , (dim[2], dim[3])
x = int(x[0]), int(x[1])
y = int(y[0]), int(y[1])
img = cv2.rectangle(img, x, y, color, int(max(img.shape[:,2])/200)) # error
return img
def main():
addr = 'test1_sec0.jpg'
bbox = 'test1_sec0.jpg.csv'
img_show(addr) # used to read and show the image using cv2. Works fine.
dims = bbox_read(bbox) # used to read the boundary boxes. Works fine
img = cv2.imread(addr, 1)
img_data = np.asarray(img, dtype = 'int32')
print(img_data)
plt.imshow(draw_rect(img_data, dims)) # error
plt.show( )
if __name__ == '__main__':
main()
'
^{pr2}$
img.shape
是一个元组,但是img.shape[:,2]
正试图用另一个元组索引它,这是无效的:如您所见,
something[:,2]
实际上生成了一个元组作为索引。在相关问题 更多 >
编程相关推荐