donkeycar有一点做的很好,每一个小的应用都会使用自己的工具生成一个库,今天读的就是这一块的代码。 位置在这里,base提供了工具 在库的开始有很多自己的库
这个库是一个显示进度条的库 可以写出这样的程序 特别的,这里的小工具库是我每次都喜欢看的一个东西 你看这个写法,在字符串的文档里面就写了参数和返回值函数的名字也是一目了然,归一化图像。 加载一个图像 传入的参数是,文件的名字和一个参数,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__返回一个绝对路径! 然后会把这个路径加进去,假如不存在的话就会又加进来。 这个是使用了一个反射的功能
|
|