如何解决USB双目同步摄像头的读取问题呢?

描述

这不是被甲方催的没办法了,快死桌子上面了。这样的同步大模组在眼动里面用不了。

文章主要解决双目摄像头的读取问题,代码我忘了加,但是给了关键代码。

GUI

要这样设计

GUI

俩个摄像头现在用来做

两个摄像头的问题是不好处理图像,如果读取出错就是一个摄像头的图像。

这个摄像头如果使用以前的代码来读取,就可以读到一个摄像头的图像。但是使用Potplayer就可以读到多个。

GUI

两个

GUI

可以看到是2560x720

GUI

可以看到是合理的

GUI

640x472,这个分辨率就是一个画面

GUI

1280x480

问题在于,两个摄像头其实是共用一个ID的,打开一次设备就行。双目摄像头的总分辨率由两个摄像头组成的。

GUI

一般是左上为原点

GUI

一个示意图就是这样

GUI

写出对图像划分的代码

left_frame = frame[0:480, 0:640]: 这行代码将原始帧(假设分辨率为1280x480)裁剪为左半部分。

这里的裁剪坐标[0:480, 0:640]表示从原始帧中取出前480行和前640列的像素,即左半部分的640x480图像。

right_frame = frame[0:480, 640:1280]: 这行代码将原始帧裁剪为右半部分。

裁剪坐标[0:480, 640:1280]表示取出前480行和第640列到第1280列的像素,即右半部分的640x480图像。

GUI

可以写成函数

GUI

这样调用

GUI

函数的参数再加一个

split_frame函数现在接受一个split_x参数,这个参数决定了帧应该在哪个水平位置被分割。

当你调用split_frame(frame, 640)时,它会在640像素点处将帧分割为左右两部分。

这样的设计让你可以根据需要调整分割位置,使函数更加通用。

GUI

成功

GUI

这个是对图像进行缩放,这里是往小搞

GUI

接着是把两个散的图像拼接在一起

  GUI

如图所示

GUI

对于人眼来说,可能可以在近一些,这里是使用的3.6mm的镜头

GUI

这个QtPy不咋会用

GUI

写了一个简单的GUI

GUI

但是问题是检测到的太多了,这里就是简单的拟合了一下,可以看到实时的检测圆的问题是圆太多了。

GUI

这里就写了一个先找到脸再识别眼睛,效果好不少

为了不影响惨淡的阅读量就不放我自己了

GUI

这次加装了人脸识别框,来说明我的程序工作正常

别骂了

GUI

豁出去了,眼睛直接打开

GUI

可以看到在加装圆纸捅好一些

GUI

这个是加了一些高斯模糊后的拟合,可以看到效果好不少

GUI

昨天找到了这个项目,这个项目合适,马上就使用这个

GUI

这个是ESP32-CAM+恒流源,因为要点亮红外灯

GUI

一圈灯光,一个摄像头,分辨率很低

GUI

完整效果

GUI

对称

GUI

这个眼动应该是不可以怼着眼睛做的,这个样子不合理GUI

这个是近红外的,这个好啊,这个是双目里面好用的摄像头,买了!

GUI





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分