使用 python 将循环中的值分配并打印到不同的变量
To assign and print the values from loop to different variables using python
import cv2
import numpy as np
boxes = []
d={}
global a
def on_mouse(event, x, y, flags, params):
if event == cv2.EVENT_LBUTTONDOWN:
print 'Mouse Position: '+str(x)+', '+str(y)
sbox = [x, y]
boxes.append(sbox)
for a in range(1,4):
d["string{0}".format(a)]=x,y
img = cv2.imread('SAM15.jpg',0)
img = cv2.resize(img, None, fx = 1,fy = 1)
cv2.namedWindow('real image')
cv2.setMouseCallback('real image', on_mouse, 0)
cv2.imshow('real image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我的目标是分配和打印我将在图像上连续单击的三个点。我面临的问题是,我只能在图像上打印第三个(最后一个)点击点。我被循环困住了。请帮帮我。提前致谢!
输出应该是这样的
{'string1': (87, 26), 'string2': (84, 78), 'string3': (42, 62)}
现在,每次单击鼠标按钮时,您都在遍历 a
的值。相反,您需要测试 boxes
中是否存在三个元素,如果存在则只执行 for 循环。
import cv2
import numpy as np
boxes = []
d={}
global a
def on_mouse(event, x, y, flags, params):
if event == cv2.EVENT_LBUTTONDOWN:
print 'Mouse Position: '+str(x)+', '+str(y)
sbox = [x, y]
boxes.append(sbox)
for a in range(1,4):
d["string{0}".format(a)]=x,y
img = cv2.imread('SAM15.jpg',0)
img = cv2.resize(img, None, fx = 1,fy = 1)
cv2.namedWindow('real image')
cv2.setMouseCallback('real image', on_mouse, 0)
cv2.imshow('real image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我的目标是分配和打印我将在图像上连续单击的三个点。我面临的问题是,我只能在图像上打印第三个(最后一个)点击点。我被循环困住了。请帮帮我。提前致谢!
输出应该是这样的 {'string1': (87, 26), 'string2': (84, 78), 'string3': (42, 62)}
现在,每次单击鼠标按钮时,您都在遍历 a
的值。相反,您需要测试 boxes
中是否存在三个元素,如果存在则只执行 for 循环。