百度图像识别功能十分强大,可以根据一幅图就能识别图片上是什么物品或场景,目前可以识别的物品和场景超过十万种。
在python下利用cv2很容易将摄影头的画面保存为图片,然后调用百度的图像识别接口,就可以知道摄影头现在拍摄的是什么物品。百度图片识别接口会根据优先级,默认返回5种可能的识别接口,当然排在最前面的是最接近真实情况的。
下面是python下开发物品识别接口的运行界面:
核心的代码包括如何将摄影头的画面保存为一幅图片:
def monitorCamera(mw):
mw.lblCamera.setText("正在初始化摄影头...")
# 启动摄影头
cap = cv2.VideoCapture(1)
cap.set(cv2.CAP_PROP_FPS, 1)
cap.set(3, 320)
cap.set(4, 240)
mw.btnStartRec.setDisabled(False)
# 获得图片
while True:
if mw.isExit:
break
ret, frame = cap.read()
# 展示图片
# cv2.imshow("capture", frame)
show = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
showImage = QImage(show.data, show.shape[1], show.shape[0], QImage.Format_RGB888)
mw.lblCamera.setPixmap(QPixmap.fromImage(showImage))
# 存储图片
cv2.imwrite("images/example.jpg", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
time.sleep(1)
cap.release()
cv2.destroyAllWindows()
另外就是调用百度的图片识别接口了,具体可以看百度的相关文档。
本实例的完整源码请参考下面链接:
http://kbase.wave12.com/pythoncode/doc/detail?id=e5b38cbcc73f463fafa7ee3550b73d68