opencv真是一个无比好玩简单的工具。做一下学习笔记吧
一般使用前需要告诉他用哪个摄像头。 基本上cv2.VideoCapture(0) 就可以了。
cap.read()returns a True/False
fram object就是摄像头拍的内容的object。
如果要显示图片的话:
cv.imshow('title', img)
这句话看起来就不是那么好懂了 cv2.waitKey(1)&0xFF==ord('q')
首先,0xFF =11111111in binary
使用bitwise operation & with 0xFF it leaves only the last 8 bits of the original
取最后8个bit of cv2.waitKey(0)
waitkey()的作用就是睡个几秒钟等有没有人按key。如果有人按,return 一个数
如果没人按,return -1.
Edge Detection: 这个恐怕是OpenCV里最重要的功能。
其实就是使用Cany这个功能。
还有就是如果要展示两个窗口的话 cv2.imshow().
cv2.imshow() 两次就好了。 实时展示给user看。
识别一张图片里的多个人:
参考: https://stackoverflow.com/questions/22249579/opencv-detectmultiscale-minneighbors-parameter
设置了一下minNeighbor的参数。
就是说确认方块里是个人脸只有当附件起码还有一个类似的neighbor时候才算。这样过滤了很多不是人的东西。也可以通过用特征查找的方式。
openCV 自带了一些pre-train的寻找eyes, nose的 方法。 我们找到眼睛以后,他会返回坐标值。然后我们可以在四周造一个矩形。然后围在里面的就是脸。