# Hello BAR4Py
**BXT** Augmented Reality For **Python**「**百晓通客栈** `Python`增强现实开发库」
[TOC]
## 效果预览:
![](../../imgs/hello.png)
## 代码清单:
[**代码文件链接./hello.py**](./hello.py)
**运行方法:**
```
python3 hello.py
```
## 代码解析:
### 1.引入Python增强现实开发常用库
```python
import cv2
import numpy as np
from resconfig import *
from bar4py.debugtools import drawMarkers, drawAxis
from bar4py import CameraParameters, Dictionary, MarkerDetector
```
- `cv2` - OpenCV库
- `numpy` - 矩阵运算相关库,本例中没有用到
- `bar4py.debugtools` - BAR4Py提供的调试方法,常用的有`drawMarkers, drawAxis
`,分别用于绘制标记物的矩形对角,3D坐标轴
### 2.载入一张图片
```python
frame = cv2.imread(opjoin(RES_IMG, 'image-test.png'))
```
其中`cv2.imread`是OpenCV的方法,`opjoin(RES_IMG, 'image-test.png')`是BAR4Py提供的便捷方法,用于返回资源文件中图片image-test.png的相对路径。
### 3.构建相机参数对象
```python
cameraParameters = CameraParameters()
cameraParameters.readFromJsonFile(opjoin(RES_CAM, 'camera_640x480.json'))
```
`cameraParameters = CameraParameters()`实例化一个相机参数对象,`cameraParameters.readFromJsonFile(opjoin(RES_CAM, 'camera_640x480.json'))`通过资源文件当中提供的camera_640x480.json文件设置相机参数。
### 4.构建(标记物)字典对象
```python
dictionary = Dictionary()
dictionary.buildByDirectory(filetype='*.jpg', path=RES_MRK)
```
`dictionary = Dictionary()`实例化一个(标记物)字典对象,`dictionary.buildByDirectory(filetype='*.jpg', path=RES_MRK)`通过资源文件中的marker目录构建(标记物)字典内容,其中filetype为该目录下marker图片的扩展名。
### 5.创建(标记物)检测器
```python
markerDetector = MarkerDetector(dictionary=dictionary, cameraParameters=cameraParameters)
```
通过之前构建的相机参数对象cameraParameters,和(标记物)字典对象dictionary创建(标记物)检测器对象markerDetector
### 6.检测标记物
```python
markers = markerDetector.detect(frame)
```
传入图片数组frame到detect,返回元素为Marker对象的列表。
### 7.绘制Marker对象的对角和3D坐标轴
```python
drawMarkers(markers, frame) # 对角点
drawAxis(cameraParameters, markers, frame) # 坐标轴
```
### 8.显示效果
```python
cv2.imshow('Hello BAR4Py', frame)
cv2.waitKey(0) & 0xFF
cv2.destroyAllWindows()
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
我们可以把过程大致分为以下四步: 识别参考平面 特征提取 特征描述 特征匹配 计算单应性矩阵 转换坐标系 在图像中投影并描绘3D模型 在图像中投影并描绘3D模型 前三个部分在之前的博客都有提及 python计算机视觉编程(三)——Harris角点 SIFT 匹配地理标记图像. python计算机视觉编程(四)图像到图像的映射. 所以主要讲述一下第四点 相机投影模型 相机成像的过程实际是将三维空间中的点映射到二维空间的过程,可以简单的使用小孔成像模型来描述该过程。 针孔相机模型
资源推荐
资源详情
资源评论
收起资源包目录
百晓通客栈-增强现实开发库(with Python).rar (80个子文件)
百晓通客栈-增强现实开发库(with Python)
新建文本文档.txt 19B
BXT-AR4Python-master
setup.py 838B
.gitattributes 30B
LICENSE 1KB
samples
web
res 6B
resconfig.py 15B
webplayer.py 1KB
static
model
rocket.mtl 245B
rocket.obj 45KB
rocket.png 21KB
README.md 2KB
bar4py 12B
res 6B
core
res 6B
preview_core.py 2KB
resconfig.py 15B
README.md 2KB
bar4py 12B
resconfig.py 15B
README.md 331B
hello
res 6B
hello.py 826B
resconfig.py 15B
README.md 2KB
bar4py 12B
README.txt 9B
res
image
image-test.png 333KB
camera
camera_640x480.json 251B
marker
801.jpg 11KB
601.jpg 12KB
901.jpg 11KB
101.jpg 11KB
701.jpg 10KB
mini
601.jpg 12KB
701.jpg 10KB
1001.jpg 11KB
video
video.avi 3.16MB
docs
source
index.rst 492B
tutorial
set_animate.rst 2KB
config.rst 1KB
set_marker.rst 1KB
hello.rst 2KB
set_dictionary.rst 3KB
set_camera.rst 1KB
intro.rst 2KB
conf.py 5KB
tutorial.rst 357B
_static
img
tutorial
markers.png 4KB
701.jpg 10KB
index_0.png 421KB
make.sh 55B
.gitignore 1KB
resconfig.py 252B
imgs
core_preview.gif 8.72MB
hello.png 282KB
webplayer.gif 5.51MB
README.md 688B
bar4py
dictionary.py 4KB
__init__.py 268B
shortfuncs.py 396B
version.py 24B
web.py 8KB
resources
webplayer.py 1KB
static
dictionary
dictionary.json 158B
camera
camera_640x480.json 251B
marker
701.jpg 10KB
model
rocket.mtl 245B
rocket.obj 45KB
rocket.png 21KB
animate
animate.js 171B
command.py 590B
templates
index.tpl 873B
cameraparameters.py 6KB
markerdetector.py 8KB
marker.py 5KB
static
js
barviews.js 8KB
three.min.js 493KB
OBJLoader.js 19KB
MTLLoader.js 11KB
debugtools.py 3KB
共 80 条
- 1
资源评论
野生的狒狒
- 粉丝: 3393
- 资源: 2436
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 九钻美化(PUPG).zip
- Vue.js 框架 - 采用 Material Design 的即用型 Vue 组件,永久免费 .zip
- Vue.js 服务器端渲染指南(适用于 Vue 2).zip
- Vue.js 文件上传组件,多文件上传,上传目录,拖拽上传,拖拽目录,同时上传多个文件,html4(IE 9),`PUT` 方法,自定义过滤器.zip
- java毕业设计SpringBoot+Vue前后端分离的在线考试系统源码+数据库+文档说明(高分项目)
- SpringBoot+Vue前后端分离的在线考试系统源码+数据库+文档说明(毕业设计项目)
- vue.js pdf 查看器.zip
- vue-concise-slider,一个简单的vue滑动组件.zip
- 欢迎使用 EnFocus Pitstop Pro 2023 使用说明书 - 参考指南!本资源文件旨在为您提供详细的指导和参考,帮助您更好地理解和使用 EnFocus Pitstop Pro 2023
- Vue+ElementPlus 构建的 CMS 开发框架.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功