学习笔记manifold(二)迈德威视摄像头配置

    科技2023-09-20  147

    强烈建议购买USB摄像头网口不好用

    网口摄像头

    配置静态ip

    把摄像头的网口线拔掉才可以使用WIFI 使用迈德威视的网口摄像头 摄像头型号:MV-SUA31GC-T 第一步:利用官网给的软件先给摄像头一个ip(划重点:每一个需要网口连接的设备,自身需要一个ip):比如:192.168.1.178 子网掩码设置为255.255.255.0 第二步:manifold上的网口不能掉,(一般是eth0)要可以显示的出来,比如在终端输入:ifconfig 如果无法显示,可以直接给eth0一个ip,这样他就可以显示出来

    nmap查看摄像头ip

    那么,如果无法用软件设置摄像头ip,可以通过nmap的方式得知摄像头的ip 使用nmap的指令

    sudo ./jetson_clocks.sh //开风扇 ip a //和ifconfig一样查看ip sudo apt install nmap nmap -nS 192.168.1.0/24 man nmap nmap -sn 192.168.1.0/24 //扫描并展示所有从192.168.1.0到192.168.1.255的ip地址

    -sn 只进行主机发现,不进行端口扫描(只ping,不扫描) 192.168.1.0/24,192.168.1.0是ipv4地址,后边是子网掩码

    迈德威视摄像头进行录像

    为什么要录像,因为装甲板有限,有时候手头就是没有,最好能准备几个录好的视频,用于检验效果。或者自己利用灯条制作一个装甲板(自制装甲板亮度过大,可能无法识别) 其实,使用摄像头录像很简单,因为迈德威视工业摄像头都有一个IDE,下载windows安装包就可以。打开MindVision 演示程序这个快捷方式,选择开始录制视频即可!录制出来的是mp4格式,640X480. 用手机摄像头录制的视频应该也可以打开,还没有尝试

    手机录像

    手机拍摄的视频能够打开,但是视频格式过大,处理缓慢,另外手机视频在代码读取后会旋转九十度

    所以还是选择摄像头拍摄的代码 使用小丸工具箱压制也不顶用 所以还是使用摄像头拍视频最真实

    读取录像视频报错

    OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/highgui/src/window.cpp, line 331 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/highgui/src/window.cpp:331: error: (-215) size.width>0 && size.height>0 in function imshow OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/highgui/src/window.cpp, line 331 terminate called after throwing an instance of 'cv::Exception' what():

    这个报错的意思是说,open cv需要打开一个长宽大于0的视频,但是并没有。所以,意思是没有正确打开视频。网上其他人的错误是

    网口摄像头缺点

    网口摄像头相比USB摄像头,需要两根线,一个电源,一个信号。而usb信号和电源在一根线 另外,manifold的eth0口容易掉,所以需要在开机自启动的时候,都先配置一下ip,再启动代码的可执行程序,至于他们的运行速度,在迈德威视官网看到,网口适合100米等远距离传输,USB3.0>网口>USB2.0

    所以强烈建议购买USB3.0接口摄像头 此外,只要是迈德威视的摄像头,都使用了相同的SDk,也就是说,如果其中任意款摄像头,你的代码可以使用这个摄像头,换用迈德威视其他摄像头,不用做其他任何改动便可以直接使用。只要硬件线连好。

    LinuxSDK安装

    除了拧摄像头上的两个旋钮以调节焦距和曝光之外,还需要在linux上安装LinuxSDK,之后按照文档运行GDK_Demo这个程序,便会出来一个图形界面,通过这个界面可以调节摄像头的Gamma和曝光,但软件的曝光调节范围不如硬件,所以一般只用来调Gamma,Gamma值应该调大。具体作用可以阅读江达小记的博客。 此处要说一个坑,因为在运行install.sh安装SDK的时候,会复制X86的库,但是manifold的核心是arm64,所以需要阅读install.sh里的内容,手动复制。 以下是LinuxSDK中的内容。可以看出其中有个判断,复制了X64和X86里面的库。

    #!/bin/bash CURDIR=`pwd` echo "Your current directory is $CURDIR. This is where the MVSDK software will be installed..." A=`whoami` B=`getconf LONG_BIT` if [ $A != 'root' ]; then echo "You have to be root to run this script" echo "Fail !!!" exit 1; fi cp 88-mvusb.rules /etc/udev/rules.d/ cp include/* /usr/include/ echo "Copy header files" if [ $B == '64' ]; then cp lib/x64/libMVSDK.so /lib echo "Copy libMVSDK.so to /lib" else cp lib/x86/libMVSDK.so /lib echo "Copy libMVSDK.so to /lib" fi echo "Successful" echo "Please restart system now!!!"

    使用事项

    manifold的eth0口容易掉,所以需要在开机自启动。可以在/etc/rc.local 里设置配置eth0的ip命令 在startup application里设置代码可执行程序的自启动 因为rc.local先执行,所以可以先配置ip再执行程序,保证摄像头连接成功 rc.local里添加

    ifconfig eth0 192.168.1.14 netmask 255.255.255.0

    微信公众号

    欢迎大家关注我的个人公众号,现阶段主要总结Robomaster相关的计算机视觉知识。 公众号名称:三丰杂货铺

    Processed: 0.020, SQL: 8