python opencv 摄像头_将网络摄像头与opencv python一起使用时显示...

我正在尝试通过opencv python VideoCapture访问基本的网络摄像头(Logitech c270).但是不幸的是,每次我运行该程序时,显示屏都会变黑.我知道相机可以正常工作,因为我可以通过他们的软件观看视频.我很清楚要确保放入waitkey(x),所以这不是问题.我也有这段代码,以防索引更改:

for i in range(4):

capture = cv2.VideoCapture(i)

if not capture:

print "UNABLE TO CAPTURE CAMERA"

else:

print "taken camera from index: ", i

break

但是每次都返回0索引.问题不在于是否有麻烦,因为我有一部分代码告诉我相机是否能够检索帧,所以问题可能出在read()上.

最后,可能的问题是我的等待键已缩进我的代码中,可能缩进了大约四个索引,因此无法每次都引用该等待键.这是涉及到的我的代码块.我是新手,因此我确信优化和技术都非常糟糕.

class ColourTracker(object):

def __init__(self):

#cv2.namedWindow("ColourTrackerWindow", cv2.CV_WINDOW_AUTOSIZE)

self.scale_down = 4

self.start = time.time()

def run(self):

for i in range(4):

capture = cv2.VideoCapture(i)

if not capture:

print "UNABLE TO CAPTURE CAMERA"

else:

print "taken camera from index: ", i

break

...

while True:

marker = marker + 1

if marker % 100 == 0:

print marker

f, orig_img = capture.read()

if not f:

print "Not read"

break

orig_img = cv2.flip(orig_img, 1)

cv2.imshow('orgImage', orig_img)

...

largest_contour = None

for idx, contour in enumerate(contours):

area = cv2.contourArea(contour)

if area > max_area:

max_area = area

largest_contour = contour

if not largest_contour == None:

...

#create an array of coordinates

if marker % 10 == 0:

cycle = [cx,cy,timer]

coordinates.append(cycle)

f = h5py.File(fileName, 'a')

if moment["m00"] > 1000 / self.scale_down:

rect = cv2.minAreaRect(largest_contour)

rect = ((rect[0][0] * self.scale_down, rect[0][1] * self.scale_down), (rect[1][0] * self.scale_down, rect[1][1] * self.scale_down), rect[2])

box = cv2.cv.BoxPoints(rect)

box = np.int0(box)

cv2.drawContours(orig_img,[box], 0, (0, 0, 255), 2)

cv2.imshow("ColourTrackerWindow", orig_img)

#out.write(orig_img)

if cv2.waitKey(20) == 27:

cv2.destroyAllWindows()

...

self.capture.release()

#out.release()

f.close() # be CERTAIN to close the file

#testing_matrix.close()

break

if __name__ == "__main__":

colour_tracker = ColourTracker()

colour_tracker.run()

出于长度考虑,我切出了一些部分,这就是“ …”的含义.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值