1
我做了该程序必须遵循常规的练习:当在视频中的任意点的用户点击,它得到的是像素和打开的所有像素的范围为5%到红色。由于它是一个视频,我保存了用户在列表中单击的点(x,y),并为每个点进行了调整。这里是代码:import numpy的为NP进口CV2图中的视频
import numpy as np
import cv2
cap =cv2.VideoCapture(-1)
#creates list
lista= []
#mouse callback function
def getpixel(event,x,y,flags,param):
#adds point (x,y) in pixels ont the current list
if event == cv2.EVENT_LBUTTONDOWN:
lista.append([x,y])
print (x,y),img[x][y]
while(cap.isOpened()):
ret,img= cap.read()
if ret:
cv2.imshow('image',img)
cv2.setMouseCallback('image',getpixel)
i=0
#draw the retangle
while i<lista.__len__():
img[int(0.95*lista[i][0]):int(1.05*lista[i][0]),int(0.95*lista[i][1]):int(1.05*lista[i][1])]=(0,0,255)
i+=1
if cv2.waitKey(20) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
我已经检查,它是创建列表,添加点并输入代码的“而”部分。但是,我看不到纠结。我错过了什么?
请考虑接受我的答案(点击复选标记)是否对你有用(2名声望)。 – MarianD