按照设备分为三种:扫描仪、手机相机、深度相机(d435)
代码位于“./scanleaf_detached_sample"目录下
基于opencv对扫描仪扫描获得的叶片图片进行处理得到叶片的基本表型(长、宽、长宽比、周长、面积、矩形度、致密度、圆形度、球度、边界能量、颜色)
有三份代码:C++、Python以及C++2Python(使用pybind11将C++写的opencv图像处理代码打包成python接口调用的版本)
C++2Python版本只要打包之后在另一个设备具备相同的opencv环境和Python版本就可以使用(仓库中的.so即是打包过后的链接文件)
基于d435相机拍摄植株照片,通过实例分割得到每个叶片实例,基于opencv和pcl对预测结果处理生成点云,点云处理获得叶片的基本表型(长、宽、长宽比、周长、面积)
代码逻辑:
D435.py:驱动D435相机的模块
MaskRCNN.py:调用detectron2的maskrcnn进行对象实例分割预测的模块
Leaf.py:活体叶片全样本测量主体框架
点云处理模块有两个版本,对应的在Leaf.py中调用点云处理模块的方式也分为两种(调用系统库运行编译好的执行文件/调用封装之后的py模块,使用pybind将C++代码封装成py库的模块):
1.pcl_deal目录下:
将C++的pcl处理代码编译成执行文件
2.pcl_deal_pybind目录下:
将C++的pcl处理代码编译成py库供py代码调用