Toybrick

rk3588 opencv 是否支持打开MIPI摄像头

zhangzhenzhao

中级会员

积分
222
楼主
发表于 2023-8-22 09:12:12    查看: 3574|回复: 2 | [复制链接]    打印 | 只看该作者
本帖最后由 zhangzhenzhao 于 2023-8-22 11:42 编辑

如题,请问rk3588 安装的opencv 是否支持打开MIPI摄像头并预览?
mipi摄像头节点为video0,使用gst打开是没问题,可以预览
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! queue ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1  ! glimagesink


使用opencv无法打开摄像头
报错如下
  1. [ 8621.495155] rockchip-mipi-csi2 fdd30000.mipi2-csi2: stream ON
  2. [ 8621.563468] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x1, cnt 1
  3. [ 8621.563468] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x1, cnt 1
  4. [ 8621.596562] mipi2-csi2 ERR1:0x10 (fs/fe mis,vc: 0)
  5. [ 8621.596686] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000[ 8621.596562] mipi2-csi2 ERR1:0x10 (fs/fe mis,vc: 0)
  6. [ 8621.596686] rkcif-mipi-lvds2: ERROR: csi size 0err, intstat:0x1000001, lastline:0x2, cnt 2
  7. 1, lastline:0x2, cnt 2
  8. [ 8621.629946] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0x1, cnt 3
  9. [ 8621.629946] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0x1, cnt 3
  10. [ 8621.663327] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0x1, cnt 4
  11. [ 8621.663327] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0x1, cnt 4
  12. [ 8621.696792] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x4, cnt 5
  13. [ 8621.696792] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x4, cnt 5
  14. [ 8621.730033] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x3, cnt 6
  15. [ 8621.730033] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x3, cnt 6
  16. [ 8621.763241] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0x1, cnt 7
  17. [ 8621.763241] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0x1, cnt 7
  18. [ 8621.796796] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x4, cnt 8
  19. [ 8621.796796] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x4, cnt 8
  20. [ 8621.830014] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x3, cnt 9
  21. [ 8621.830014] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x3, cnt 9
  22. [ 8621.863388] rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000001, lastline:0x4, cnt 10
复制代码


代码如下:
  1. int main() {
  2.     cv::VideoCapture cap(0);
  3.     if (!cap.isOpened()) {
  4.         std::cerr << "无法打开摄像头!" << std::endl;
  5.         return -1;
  6.     }
  7.     cap.set(cv::CAP_PROP_FRAME_WIDTH, 1920);
  8.     cap.set(cv::CAP_PROP_FRAME_HEIGHT, 1080);
  9.     cap.set(cv::CAP_PROP_FPS, 30);
  10.     cv::namedWindow("Camera Preview", cv::WINDOW_NORMAL);

  11.     while (true) {
  12.         cv::Mat frame;
  13.         cap.read(frame);
  14.         if (frame.empty()) {
  15.             std::cerr << "无法从摄像头读取图像!" << std::endl;
  16.             break;
  17.         }
  18.         cv::imshow("Camera Preview", frame);
  19.         if (cv::waitKey(1) == 27) {
  20.             break;
  21.         }
  22.     }
  23.     cap.release();
  24.     cv::destroyAllWindows();
  25.     return 0;
  26. }
复制代码



回复

使用道具 举报

jefferyzhang

版主

积分
13574
沙发
发表于 2023-8-22 15:45:44 | 只看该作者
您应该问的是: opencv 是否支持打开MIPI摄像头
据我所知,不修改他们源码情况下是不支持的。他们只支持虚拟地址访问V4L2,并不支持DMA/CMA访问
回复

使用道具 举报

zhangzhenzhao

中级会员

积分
222
板凳
 楼主| 发表于 2023-8-22 17:16:24 | 只看该作者
jefferyzhang 发表于 2023-8-22 15:45
您应该问的是: opencv 是否支持打开MIPI摄像头
据我所知,不修改他们源码情况下是不支持的。他们只支持虚 ...

你好,因为我用opencv打开的是摄像头模组自带isp的模组,那么用opencv是报错就是我之前贴出来的

然后我用另外的不带ISP的摄像头模组,也就是用rk3588的isp的摄像头模组,利用opencv确实可以打开并成功预览

最后我看了下两款摄像头每次在用opencv去打开摄像头的时候,都会有如下打印
  1. :~/opencv_cam$ ./opencv_cam
  2. [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (935) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
  3. [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1186) setProperty OpenCV | GStreamer warning: GStreamer: unhandled property
  4. ^C
复制代码


看上去似乎是opencv底层最终调用了gst的框架去调用的,是否是这样理解的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表