0
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()
我的目標是分配和打印三個點,我將連續點擊圖像。我面臨的問題是,我只能打印圖像上的第三個(最終)點擊點。我被困在循環中。請幫助我。提前致謝 !使用python分配和打印循環中的值到不同的變量
輸出應該是這樣的 { '字符串1':(87,26), '字符串2':(84,78), 'STRING3':(42,62)}
如何測試三個元素的框?我沒有得到你@SSteve – Sugantharaja
現在我能夠訪問。我在盒子裏有三個元素。運行後,我可以打印個人信息。但是,我嘗試在程序本身中打印像[0]這樣的元素。它顯示像 - IndexError:列表索引超出範圍。@ SSteve – Sugantharaja
這聽起來像你需要做一些基本的調試。在嘗試訪問一個元素之前總是檢查數組的長度(或者只訪問由數組長度控制的循環中的元素)。如果您的數組不爲空,那麼您需要跟蹤代碼,在必要時添加調試語句,以查看數組值的變化。 – SSteve