Python 增强现实中一些问题的解决

   日期:2020-08-20     浏览:95    评论:0    
核心提示:Python 增强现实中一些问题解决(第一部)近期在做一个计算机视觉方向的项目,需要加载obj文件并进行一些操作,需要使用到增强现实技术(AR),在网络上寻找,发现很多博客讲解的代码都是一样的,都是在一本书上加正方体、茶壶,还有对实时视频流的操作。但是我在本机进行调试的时候,却发现那些代码都或多或少有些问题,在这里我记录遇到的一些问题以及解决方法。(我在一些相应的博客下也有评论,这里也进行一个整理)给一个传送门,https://blog.csdn.net/limmmy/article/details/8_

近期在做一个计算机视觉方向的项目,需要加载obj文件并进行一些操作,需要使用到增强现实技术(AR),在网络上寻找,发现很多博客讲解的代码都是一样的,都是在一本书上加正方体、茶壶,还有对实时视频流的操作。但是我在本机进行调试的时候,却发现那些代码都或多或少有些问题,在这里我记录遇到的一些问题以及解决方法。(我在一些相应的博客下也有评论,这里也进行一个整理)

给一个传送门,https://blog.csdn.net/limmmy/article/details/88973467 。这个博客中的代码还不错。

  1. 有朋友问objloader_simple模块怎么安装,这里给出一个github网址,clone下来,objloader_simple.py与代码文件处于同一级目录下,即可进行导入。如果觉得clone网速太慢,可以将链接转到gitee中,直接下载zip压缩包。
    git网址: https://github.com/noobwsz/python-ar

  2. 出现如下运行结果:Not enough matches found - 0/10。出现这个问题,说明你的matches是一个空的list,可能的原因是你在更换成自己的图片时,路径名包含中文,导致model中的cv2.imread的读取结果为None,所以对应的model也为None。那么在暴力匹配器BF进行匹配时,就无法匹配相应的两个描述符。因为参考的model为None,也就意味着匹配将是一个空列表。举个例子:

model = cv2.imread(r'C:\Users\dell\Desktop\change_size.jpg', 0)  # 参考图像,需要英文路径。`
  1. 将obj文件更换为自己的文件时,却发现在视频流中没有相应的加载。摄像头可调用,obj实例化也成功,但是就是没有在视频流中加载出相应的obj文件。后来发现,是加载文件之后,3D模型大小的问题。所以我们需要改动的就是objloader_simple.py中的代码了。obj文件被加载后,是v(顶点坐标),vt(纹理坐标),vn(法向量)和f(面),要变化obj文件的大小,就需要对v进行修改。代码块中,在原有代码的基础上,添加第三行的代码,如下所示:
if values[0] == 'v':  # 开头为v,添加至vertices,v为顶点坐标
    v = list(map(float, values[1:4]))
    v = list(map(lambda x : x * 20, v))  # 对顶点进行数值更改,从而对obj文件进行缩放
    if swapyz:
        v = v[0], v[2], v[1]
        self.vertices.append(v)

修改匿名函数lambda后的表达式,对顶点v进行增大或减小。需要了解obj和mtl文件的同学,可以看下方博客:
https://blog.csdn.net/weiming8517/article/details/47037225
如果有什么新的问题发现,我会及时分享给大家。第一次写博客,写的不好的地方希望大家见谅!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服