分享

DonkeyCar源码阅读.4(项目文件创建)

 云深无际 2022-07-27 发布于内蒙古

DonkeyCar源码阅读.1(简单安装+创建系统)

DonkeyCar源码分析.2(官方硬件+相机处理)

DonkeyCar源码阅读.3(操作记录+若干图像处理)

donkeycar有一点做的很好,每一个小的应用都会使用自己的工具生成一个库,今天读的就是这一块的代码。

位置在这里,base提供了工具

在库的开始有很多自己的库

from progress.bar import IncrementalBar

这个库是一个显示进度条的库

可以写出这样的程序

特别的,这里的小工具库是我每次都喜欢看的一个东西

你看这个写法,在字符串的文档里面就写了参数和返回值函数的名字也是一目了然,归一化图像。

加载一个图像

传入的参数是,文件的名字和一个参数,cfg一般就是config的意思。最后返回一个u8的图像数组。里面依赖的是另外一个函数,在下面会讲这个。

抱歉有点没有选够

在这里有,就是对真实的图像的参数和我们给的参数做这样比较计算,如果大小不一致,这里就会开始执行一个reszie的工作,之后来处理图像的深度通道。PIL有九种不同模式: 1,L,P,RGB,RGBA,CMYK,YCbCr,I,F。

img.convert('L')

为灰度图像,每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。

转换公式:L = R * 299/1000 + G * 587/1000+ B * 114/1000

关于配置其实是一个比较复杂的文件,之后说,以为我不确定是不是是这个关联的代码文件。

这个是另外一个错误的修改代码

这里是对图像的数组转换工作,其实就是说无论怎么样都要保证我们的返回文件的正确性。

这个代码的意思其实是扩展一个通道的代码

另外有个math的库,里面定义的几种常见的变量,都是使用float来定义的

返回目录的名称

顺手又可以看看这个函数的实现,打印目录的名字

返回一个路径的文件系统的表示

在内部的话,是使用这个来实现

join是拼接多个路径,其实是加进去

包,模板,帮助文件

新生成一个目录

这个函数是把现在的目录补全返回

先来打印这个目录:

如果没有的话,就创建一个新的目录,之后返回

加载一个配置的文件

把配置文件的和路径补全,接着判断一下路径是不是真的创建成功。然后会打印一个错误的日志,也会打印:没有配置文件在地方。之后就返回一个None。

下面是一个错误的处理代码,但是这个加载配置的函数,是实现的一个新的函数,和上面本身的函数的实现不一样。把西面的也看了,except就是日志了,后面都一样了。

这个函数比较大

如果配置的路径是空的话,就导入下面这个__main__。

__file__表示显示文件当前的位置

但是:

如果当前文件包含在sys.path里面,那么,__file__返回一个相对路径!

如果当前文件不包含在sys.path里面,那么__file__返回一个绝对路径!

然后会把这个路径加进去,假如不存在的话就会又加进来。

这个是使用了一个反射的功能

https://docs.python.org/zh-cn/3/library/os.path.html?highlight=path#os.path.expanduser
https://developer.horizon.ai/api/v1/fileData/documents_pi/index.html
https://docs.python.org/zh-cn/3/library/os.path.html?highlight=path#module-os.path
https://www.py.cn/jishu/jichu/19324.html
https://www.cnblogs.com/haifwu/p/12825741.html

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多