板卡摄像头
使用gstream或使用jetcam
gstream本人使用失败了,下次有机会尝试再更新
jetcam安装过程忘了,自行查找
jetcam调用简单 与cv2.VideoCapture()类似,可以参考以下例子
from jetcam.csi_camera import CSICamera
import cv2
def onboard():
# 板载摄像头
camera0 = CSICamera(capture_device=0, width=224, height=224)
#camera1 = CSICamera(capture_device=1, width=224, height=224)
image0 = camera0.read()
print(image0.shape)
#image1 = camera1.read()
#print(image1.shape)
print(camera0.value.shape)
#print(camera1.value.shape)
while 1:
image0 = camera0.read()
#image1 = camera1.read()
cv2.imshow("CSI Camera0", image0)
#cv2.imshow("CSI Camera1", image1)
kk = cv2.waitKey(1)
if kk == ord('q'): # 按下 q 键,退出
break
网络摄像头
1
使用前确认电脑开启了DHCP功能,确保摄像头在同一局域网下。
目前我的做法是电脑和摄像头连接同一个路由器,NX板卡连接电脑的热点。
win10可打开网络连接,以太网,属性,ipv4属性中设置为自动获得IP
2
获取网络摄像头的IP地址
方法1:使用SADP软件搜索设备,如图
方法2:打开CMD命令,输入ipconfig,找到本机的ipv4地址,例如222.204.50.208,然后开始ping 之后的ip,例如ping 222.204.50.209.
能够ping通的就是同一局域网的设备,依次尝试
3
win10可使用portplayer进行播放,本次使用的是海康威视摄像头
在浏览器输入
rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
参数的意思点击常见网络摄像头rtsp
例如:
rtsp://admin:GBYPKF@222.204.50.209:554/h264/ch1/main/av_stream
各品牌摄像头rtsp可参考常见网络摄像头rtsp
确认摄像头和ip有效后
使用NX板卡打开:
def net_cam():
url = 'rtsp://admin:[email protected]:554/mpeg-4/ch1/main/av_stream'
cam = cv2.VideoCapture(url)
#
# def open_cam_rtsp(uri, width, height, latency):
# gst_str = ('rtspsrc location={} latency={} ! '
# 'rtph264depay ! h264parse ! omxh264dec ! '
# 'nvvidconv ! '
# 'video/x-raw, width=(int){}, height=(int){}, '
# 'format=(string)BGRx ! '
# 'videoconvert ! appsink').format(uri, latency, width, height)
# return cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)
# cam = open_cam_rtsp(url,224,224,200)
print(cam.isOpened())
while cam.isOpened():
ret,img = cam.read()
print('success read!')
cv2.imshow("test",img)
kk = cv2.waitKey(1)
if kk == ord('q'): # 按下 q 键,退出
break
不出意外,摄像头可以正确打开,usb摄像头到手后会继续记录。