云镛 2020-10-20 10:09 采纳率: 50%
浏览 277

Hi3516dv300开发板板载摄像头IMX290在/dev/目录下的设备名是啥?或者说如何虚拟出设备名?

我用opencv打开Hi3516DV300开发板板载的摄像头时,提示错误:

~/mnt/app/src # ./people
[ WARN:0] global /home/vmuser/share/opencv/opencv/modules/videoio/src/cap_v4l.cpp (880) open VIDEOIO(V4L2): can't find camera device
can not open camera or video file

代码是:

VideoCapture cap;//打开摄像头对象

    bool update_bg_model = true;
    cap.open(-1);
   // cap.open("http://113.57.246.23:8080/shot.jpg");
    //cap.open("./v1.avi");
    //cap.open("rtsp://admin:Admin12345@192.168.1.65:554/ch1/main/av_stream?tcp");
    //cap.open("D:\\qq\\demo\\vtest.avi");  
    if (!cap.isOpened())
    {
        printf("can not open camera or video file\n");
        return -1;
    }

求教各位大神,望指点。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-25 02:15
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    可以使用以下方法来获取Dev目录下设备的名字:

    1. 使用ls命令查看设备名称。例如:ls /dev/video0

    2. 如果你想要一个动态的设备名称,你可以尝试使用uuidgen或者uuid命令生成一个新的UUID,并将其附加到你的设备名称后面。例如:ls /dev | grep video | awk '{print $NF}' | uuidgen > new_device_name。然后将新的设备名称设置为/dev/new_device_name。这一步骤会创建一个新的文件系统分区并给它分配一个新的UUID。

    关于虚拟设备名的问题,你可以使用udevadm info --query=all /dev/video0这个命令来查看设备的详细信息,然后根据结果来确定应该使用哪个设备名字。如果你有特定的需求,比如需要在Linux内核中添加一个新的设备节点,那么你需要修改/etc/udev/rules.d/70-persistent-net.rules文件,添加相应的规则。

    评论

报告相同问题?