【发布时间】:2019-12-25 23:40:47
【问题描述】:
我的问题是我需要从相机拍摄照片并使用 opencv 和 Python 对其进行处理以获取坐标并将它们发送到机械臂,但是我无法使用以下代码与 Cognex 相机进行通信(我是从 opencv 文档中得到的):
import cv2
cognex = cv2.VideoCapture('192.168.1.5')
while True:
ret, frame = cognex.read()
cv2.imshow('Cognex Camera', frame)
if cv2.readKey(1) & 0xFF == ord('q'):
break
cognex.release()
cv2.destroyAllWindows()
但是当我运行这个例子时,我得到了这个错误:
warning: Error opening file
(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:901)
warning: 192.168.1.5
(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:902)
Traceback (most recent call last):
File "ejemplo.py", line 8, in <module>
cv2.imshow('Cognex Camera', frame)
cv2.error: OpenCV(4.1.0) C:\projects\opencv-
python\opencv\modules\highgui\src\window.cpp:352: error:
(-215:Assertion failed) size.width>0 && size.height>0 in function
'cv::imshow'
我认为这是因为它没有打开与相机的连接。 我在互联网上搜索了可以帮助我的信息,但我无法确定它是否真的可以连接或无法连接 opencv 与 Cognex 相机。
【问题讨论】:
-
我猜你会想要
cv2.VideoCapture('http://192.168.1.5') -
我试过了,还是不行,还是一样的错误。
-
您是否尝试
ping相机?你从哪里得到它的地址?您是否已登录路由器查看 DHCP 分配?它是否通过 http 或 rtsp 提供图像?您应该指定一个端口吗?它是哪款相机?康耐视自己的软件能看到摄像头吗? -
1) 是的,我试过了。我在 in-sight explorer 软件中设置的 IP,我没有使用 DHCP 协议。 2)我尝试使用 http 和 rtsp,但这些都不起作用。也许相机不支持此协议。 3) 我知道这台摄像机的唯一端口是 23,但这个端口用于 Telnet 连接。 4) 相机是 inSight 7000 gen II 5) 是的,康耐视有一个软件来获取连接并对相机进行编程。
-
我认为您应该联系康耐视。 AFAIK 康耐视要求您使用他们的 sdk 连接到相机(与许多其他相机供应商一样),然后您必须将其转换为 OpenCV 图像,然后您才能执行您的过程...