拼接产线标定库api参考_第1页
拼接产线标定库api参考_第2页
拼接产线标定库api参考_第3页
拼接产线标定库api参考_第4页
拼接产线标定库api参考_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

市海思半导 2018。保留一切权利商 注市海思半导 客户服务传客户服务邮箱 概拼接标定库是一套快捷、高性能的运行在Windows系统的库。标定库LUT。标定库完成了标定的主要流程,并对外提供了灵活简单的API,用户可以快速地开发应用程序,未有特殊说明,Hi3559CV100与Hi3559AV100内容一未有特殊说明,Hi3556AV100与Hi3519AV100内容一与本文档相对应的产品版产品名产品版本文档(本指南)主要适用于以下工程技术支持工开发工

在本文中可能出现下列标志,它们所代表的含义如符说表示能帮助您解决某个问题或节省您的表示是正文的附加信息,是对正文的强调和补(4次临时版本发布3.2小节,HIAVSCALSTITEASUREMENTS【成员】涉及修4.3.24-34.3.3.42.3、2.4、4.1.34.3.3(3次临时版本发布1.11-24-35(2次临时版本发布4-2 小节新增鱼眼镜头标定的特殊要求,标定要求涉及修(1次临时版本发布 概 API函数说 hiAVS hiAVS hiAVS hiAVS 数据类型与数据结 开发指 4.2.1和使用 第(PTGui、hugin)标 LUT及BBox表生 API应用实 一个完整的Sample示 图2-1产线标定接口hiAVSCalProd处理流 图2-2产线标定接口hiAVSCalProd输入示 图2-3LUT表输入示 图4-1整体标定方 图4-2产线标定组 图4-3拼接标定库的使用流 图4-4产线标定在拼接标定流所处的环 图4-5产线标定环境示意 图4-6双鱼眼结构产线标定环境示意 图4-7鱼眼镜头产线标定前需要配置 图4-8PqtoolsRadialCROP的配 图4-9边缘模糊,需要配置RadialCROP的图 图4-10不同半径的RadialCROP效果预 图4-11第标定在标定流所处的环 图4-12PTGui标定的主要流 图4-13导出PTGui标定结 图4-14使用hugin快速标定的步 图4-15LUT/Bbox表生成在标定流所处的环 图4-16Mask图像示 表1-1拼接标定库开发包组 表1-2拼接标定库开发运行环 表1-3函数描述方 表1-4函数列 表1-5结构体描述方 表4-1VS2015project常用属性配置 表4-2标定库运行时依赖的动态库列 表4-3产线标定结果的判断 表4-4BboxLUT的差 表4-5Bbox和LUT的差 Windows系统的库。标定库LUT,标定库完成了标定的主要流程,并对外提供了灵活简单的API,用户可以快速地开发应用程序,用于拼接标定库可以为用户提供Windows环境下的动态库和静态库两种调用形式,可极大地方便地开发应用程序。标定库的主要组件及相关说明如表1-1所示。组名说API口hihiavsprod用户工,应该保证先包含hitype.h,再包含hiavsprodcalib.h。静态ibrelease.libHiAVSCalibrationLibrelease.lib,以VisualStudio2015为例(以下简称:VS2015),需要在Project/Properties/Linker/Input中添加HiAVSCalibrationLibrelease.lib;动态ibrelease.libibreleasedllHiAVSCalibrationLibrelease.lib(添加方式和静态库编译完成后,将HiAVSCalibrationLibrelease.dll放在 其 Windows7或更高版本的主流视窗操作系统,兼容In公司和AMD公司推出的绝大部分面向PC机的主流CPU组。其主要开发以及运行环境说明如表1-2所示。分兼容配配说编译VisualStudioVisualStudioOpenCV3.4.0只能使VS2015、VS2017或更操作系WindowsWindows线标定库仅支持x64系统硬InCore系AMDAthlon系高性能工作无函数描述方参数作描简要描述API的主要功能语列出API的语法样式描简要描述API的工作过程参列出API的参数、参数说明及参数属返回列出API的返回值及返回值说错误描述与函数相关的错误需描述函数的头文件依注使用API时应注意的事项举Sample相列出函数有关的结构体及函功页hiAVS获取AVS标定库的版本号hiAVS产线标定算hiAVS的LUT表。hiAVS参数作说简要描述结构体所实现的定列出结构体成列出结构体内的所有成员注意事列出结构体的注意事相关类型及列出与该数据结构有关的其他类型与接API【描述获取AVS标定库的版本【语法HIS32hiAVSVersion(HICHAR【参数参数名描输入/存放获取的版本输【返回值返回描0获取版本号获取失【错误码接口返回含HI返回成HI返回失【需求头文件:hitype.h、hiavsprod【注意需要先包含hitype.h,再包含hiavsprod【举例HICHARcAVSCalibVersion[128];hiAVSVersion(cAVSCalibVersion);cout<< etoHisiAVSCalibration"<<cAVSCalibVersion<<【描述产线标定算【语法HIAVSSTATUSEhiAVSCalProd(HIU32u32Camera,constHICHAR*pcInputCalFile,constHICHAR*pcOutputCalFile,HIFLOATfFixtureRadius,constHICHAR*pcCalImage[],HIAVSCALSTIT EASUREMENTS&stResult);【参数参数名描输入/AVS拼接镜头的数量,范围输根据镜头模型生成的标定文件(.cal文件输产线标定算法输出的标定文件(.cal文件输产线标定环境的半径(长度单位:米)[0.2,输包含完整文件路径的产线标定,其数量输用于评价算法标定情况的输【返回值返回描0成功HIAVSSTATUS【需求头文件:hitype.h、hiavsprod【注意需要先包含hitype.h,再包含hiavsprod如图2-1所示。产产线标Pqtools:模型拼接标定LUT表生(仅产线标定需要模型标定文件、镜头 区的标定,如图2-2所示。图2-2产线标定接口hiAVSCalProd输入示例 PQtools进行模型标定输出的标定文件,镜头区的标定关于标定结果的评价,请参考产线标定后生成一个新的.calhiAVSLutFromCalibrationhiAVSPolyFromCalibration(仅Hi3559AV100ES需要)转换为LUT才能通过SDKMPI接口直接导入到相机设备中。【举例constHICHAR*HIAVSCALSTITEASUREMENTSpcCalImage[0]"..\\..\\test\\forprodcal\\camera0.jpg";pcCalImage[1]"..\\..\\test\\forprodcal\\camera1.jpg";HIS32s32RethiAVSCalProd("..\\..\\test\\forprodcal\\prodstep1.cal","..\\..\\test\\forprodcal\\prodstep1V4.cal",(HIFLOAT)1.1,cout<< "<<s32Ret<<cout<<"umreprojerr:"<<stResuMaxReprojErr<<endl;cout<<"averagereprojerr:"<<stResuAverageReprojErr<<cout<<"totalmatchedpoints:"<<stResuTotalMatchedPoints<<【相关HIAVSCALSTITEASUREMENThiAVShiAVS【描述根据生成的标定文件转成可以直接使用 表,其标定来源有三个:模型标定1hiAVSCalProd、第标定工具(PTgui、Hugin【语法HIAVSSTATUSEhiAVSLutFromCalibration(constHICHAR*pcCalibrationFile,constHICHAR*pcMaskPrefix,constHICHAR*pcOutputPrefix,HIFLOATfStitchDistance,HIAVSLUTACCURACYEenLutAccuracy,HIBOOLbIsHiAvsCal);1模型标定可以使用PQtools【参数参数名描来自于模型标定、产线标定接口hiAVSCalProd输引n处的照相机将使用带有文件名prefixn.png的掩码文件。每个mask文件缀的后面添加n.png,索引从0开始。该掩码文件的分辨率像素表示图像有效显示区域,而黑色像素表示不使用的区域。对于普通非鱼眼图像mask可以使用全白图像。对于鱼眼镜头,将使用和镜头有效像素相同覆盖的白色圆圈。Mask只能使用.png格式输每个镜头输出的LUT表文件前缀。每个镜头的文件名将以prefixn.bin的形式(每个LUT表在 n.bin,n为镜头数字,从0开输对海思标定结果(hiAVSCal、hiAVSCalProd)对应的LUT表(范围:>0.5,单位:米);输LUT的精度配置,只能HiAVSLUTACCURACYHIGH=0HiAVSLUTACCURACYLOW=1更高的性能,需要根据产品性能进行配输配置是否使用海思AVS(来源于:hiAVSCal、hiAVSCalProd);如果不(*.pto)输【返回值返回描0成功HIAVSSTATUS【需求头文件:hitype.h、hiavsprod【注意所有标定结果(包含模型标定、hiAVSCalProd、第标定)都需要使用该接口将标定文件生成对应板端可以直接调用的LUT表。该步骤下所需的文件如图2-3所示。图2-3LUT表输入示例mask需要配置完整的路径前缀,且mask目前只支持PNG文件,若有其他的格式,请先使用图像处理工具(如mspaint画图、Photoshop…)打开,另存为png格式。Mask文件的生成方式可以参考4.3.4“LUT及BBox【举例HIcCalibrationFile[]"D:\\WORK\\AVS\\AVSPCalibrationLib\\PQT\\test\\formeshpoly\\2fisheye.cal";HICHARcMaskPrefix[]"D:\\WORK\\AVS\\AVSPCalibrationLib\\PQT\\test\\formeshpoly\\2fisheyemaHIcOutputPrefix[]"D:\\WORK\\AVS\\AVSPCalibrationLib\\PQT\\test\\formeshpoly\\2fisheyePoly";HIFLOAT HIAVSLUTACCURACYEenLutAccuracy HIAVSLUTACCURACYHIGH;HIBOOLbIsHiAvsCalHITRUE;HIS32hiAVSLutFromCalibration(cCalibrationFile,cMaskPrefix,cOutputPrefix,fStitif(s32Ret!HI{}{}

cout<<"!!Error:"<< <<",ret"<<s32Ret<<endl;cout<<"\t\tcCalibrationFile:"<<cCalibrationFile<<endl;cout<<"\t\tcMaskPrefix:"<<cMaskPrefix<<endl;cout<<"\t\tcOutputPrefix:"<<cOutputPrefix<<endl;cout<<"\t\tfStitchDistance:"<<fStitchDistance<<endl;cout<<"\t\tfenLutAccuracy:"<<enLutAccuracy<<endl;cout<<"\t\tbIsHiAvsCal:"<<bIsHiAvsCal<<endl;cout<<"\tsuceess"<<【相关HIAVSSTATUSHIAVSLUTACCURACYhiAVS【描述【语法HIAVSSTATUSEhiAVSPolyFromCalibration(constHICHAR*pcCalibrationFile,constHICHAR*pcMaskPrefix,constHICHAR*pcOutputPrefix,HIFLOATfStitchDistance,HIBOOLbIsHiAvsCal);【参数参数名描输入/来自于模型标定、产线标定接口hiAVS或第标定工具标定文件的路径输引n处的照相机将使用带有文件名prefixn.png的掩码文件。每个mask文件缀的后面添加n.png,索引从0开始。该掩码文件的分辨率像素表示图像有效显示区域,而黑色像素表示不使用的区域。对于普通非鱼眼图像mask白图像。对于鱼眼镜头 将使用和镜头有效像素输参数名描输入/同覆盖的白色圆圈。Mask只能使用.png格式每个镜头输出的LUT表文件前缀。每个镜头的文件名将以prefixn.bin的形式 (每个LUT表缀后面添加n.bin,n为镜头数 ,从0始输对海思标定结果(模型标定、hiAVSCalProd)可应的LUT表(范围:>0.5,单位:米);对第输配置是否使用海思AVS(来源于:模型标定、hiAVSCalProd);如果不使(*.pto)输【返回值返回描0成功HIAVSSTATUS【需求头文件:hitype.h、hiavsprod【注意【举例HIcCalibrationFile[]"D:\\WORK\\AVS\\AVSPCalibrationLib\\PQT\\test\\formeshpoly\\2fisheye.cal";HICHARcMaskPrefix[]"D:\\WORK\\AVS\\AVSPCalibrationLib\\PQT\\test\\formeshpoly\\2fisheyemaHIcOutputPrefix[]"D:\\WORK\\AVS\\AVSPCalibrationLib\\PQT\\test\\formeshpoly\\2fisheyePoly";HIFLOATfStitchDistance HIBOOLbIsHiAvsCalHITRUE;HIS32hiAVSPolyFromCalibration(cCalibrationFile,cMaskPrefix,cOutputPrefix,fStiif(s32Ret!HI{}{}

cout<<"!!Error:"<< <<",ret"<<s32Ret<<endl;cout<<"\t\tcCalibrationFile:"<<cCalibrationFile<<endl;cout<<"\t\tcMaskPrefix:"<<cMaskPrefix<<endl;cout<<"\t\tcOutputPrefix:"<<cOutputPrefix<<endl;cout<<"\t\tfStitchDistance:"<<fStitchDistance<<endl;cout<<"\t\tbIsHiAvsCal:"<<bIsHiAvsCal<<endl;cout<<"\tsuceess"<<【相 HIAVSSTATUSHIAVSLUTACCURACYhiAVS通用数据类Windowshitype.h中,调用接口前需要先包含hitype.h,具体定义如下:typedefunsigned HItypedefunsigned HItypedefunsigned HItypedefunsigned HItypedefsigned HItypedef HItypedefint HIS32;#ifndefMIX86typedefunsignedlonglong HIU64;typedeflonglong HIS64; HI HIS64;typedef HItypedef HItypedef HItypedef HItypedef HItypedefunsigned HISIZEtypedefunsigned HILENGTH *const typedefenumHI HI }HI#ifndef#defineNULL #defineHINULL #defineHINULLPTR #defineHISUCCESS #defineHI (-HIAVSSTATUSE:AVSHIAVSCALSTITEASUREMENTS:用于评价算法标定结果的数据HIAVSLUTACCURACYE:枚举LUT【说明AVS标定算法库接口返回状态【定义/**thestatusofavsinterfacereturned*/typedefenumhiAVSSTATUSE{HIAVSEOF /*internalerrorcodes*/HIAVSOK /*errorHIAVSUNABLETOFINDOVERLAP,HIAVSFILEREADERROR,HIAVSFILEWRITEERROR,HIAVSFILEINVALID,HIAVSALLOCFAILED,HIAVSINVALIDPARAM,HIAVSSTATUSBUTT}HIAVSSTATUS【成员成员名描HIAVS=-1,错成员名描HIAVS=0,函数执行成HIAVSUNABLETOFIND无法找到区HIAVSFILEREADHIAVSFILEWRITE输出文件无HIAVSFILE文件不存在或路径HIAVSALLOC无法申请内HIAVSINVALID配置参数错【相关数据类型及接hiAVShiAVShiAVS【说明用于评价算法标定结果的数据【定义typedefstructhiAVSCALSTITEASUREMENT{HIDOUBLEHIDOUBLEdAverageReprojErr;HIDOUBLEdTotalMatchedPoints;}HIAVSCAL EASUREMENT【成员成员名描成员名描这是平均反投影错 (以像素为单位),若该值处于范围,标定效果最佳;处于(1,2](2,4]4,则标定效指匹配成功的角点对,与图像数量及棋盘格内角点数相关。【注意事项标定结果的评估仅相对于已检测出角点的,未检测出的无效不会影响结果评估,但它可能对最终的效果是有影响的。【相关数据类型及接hiAVS【说明LUT【定义/**SpecificationoftheLUTaccuracy*/typedefenumhiAVSLUTACCURACYE{HIAVSLUTACCURACYHIGH HIAVSLUTACCURACYLOW HIAVSLUTACCURACYBUTT}HIAVSLUTACCURACY【成员成员名描HIAVSLUTACCURACYHIGH=LUTHIAVSLUTACCURACYLOW=LUTHIAVSLUTACCURACY保留字【注意事项 表精度越高,标定效果越好,但相应的性能要求也越【相关数据类型及接hiAVS整体标定方

每种镜头只需要生成一Mask文

CAL 1

CAL

JPEG5根据JPEG文件产线标定生成CalLUTPC

产线标定的组网环USB、无线网络、有线网络的一种或几种组合的组网方式开发标定应用。如图4-2所示。----产线标定库具体使用流AE/AWB/CCM同步和LSC标定,且要型标定一次,在量产阶段还需要在每台设备出厂前进行一次产线标定,也可以将第标定结果应用于产品中,标定流程如图4-3所示。(AE/AWB/CCM同(AE/AWB/CCM同步、LSC标定LUThiAVS_LutFromCalibra边界表Bbox(仅Pqtools:PTGui标OpenCV动态库,并且基于windows的环境开发和使用。其主要开发过程需要包含OpenCV的编译及基于件的开发。OpenCV用户可以根据自己的需求进行定制化编译,这里仅提供一个可行的方案供参OpenCV简OpenCV是一个基于BSD(开源) Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。拼接产线标定库使用了OpenCV相关的算法加速,因此需要运行时需要额外提供OpenCV动态库。OpenCVOpenCV属于第 开源的库,可以在遵循BSD的情况下 在浏览器中输入官网地址:当OpenCV版本是完成后选择一个路径直接解压CMake工具简CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持C++特性,类UNIX下的automake。这里使用CMake可以较方便的对OpenCV进CMake工 使用Cmake配置OpenCV的编译环可以直接使用cmake-gui.exe配置OpenCV的编译环境,配置前请确OpenCV已,并解压到指 Cmake已,并解压到指 已安装IDEVS2015;Cmake-gui的配置可以参考如下步骤:1.sourcecode(OpenCV源代码所在路径)。步骤2.配置build(OpenCV动态库生成路径)。步骤3.Configure:配置OpenCV,注意首次配置时需要win32还是x64,这里提供的是x64开发库,只能选择对应x64的版本(如:VisualStudio142015Win64)。步骤4.Search:如果第3步没有红色错误信息,则跳过这4、5步,如果有红色信息,需要确对于OpenCV3.4.0来说,IPP和ffmpeg需要然后进行配置,该地址若配置有ffmpeg报错信息,搜索ffmpeg,去掉勾选,不使用以避免配置若配置有IPP报错信息,搜索IPP,去掉勾选,不使用以避免配置错误;步骤5.Configure:如果第3步没有错误信息,则跳过这一步;否则需要重新配置一次。6.Generatevs7.OpenProjectvs打Cmake创----本部分需要先完成如下条OpenCV已,并解压到指 Cmake已,并且配置好已安装好任意一款IDE开发环境,如以VS2015为例,介绍OpenCV的编译VS2015打OpenCVCmakeGUI界面直接点OpenProject”打开选择ReleaseALLBUILD:在CMakes下选择ALLBUILD,编译

径生成的OpenCV动态库的库路径:build\install\x64\vc14\lib开发时将build\install\x64\vc14\lib添加到开发项目中,并添加所需的件名opencvcore340.lib;opencvimgproc340.lib;opencvopencvcalib3d340.lib;由于版本发布库已了所需的OpenCV件,一般不需要在项目中再进行配置,只需要在运行时添加需要的dll即可。开发完毕后,需要拷贝OpenCV动态库到执行路径或者系统库路径,需要的OpenCV动态库和的lib文件是相关的,当前分别是opencvcore340.dll;opencvopencvimgcodecs340.dll;opencvimgproc340.dll;opencvflann340.dll;opencvfeatures2d340.dll产线标定库的开产线标定库需要一个WindowsIDE开发环境,这里以VS2015为例简单介绍工程需要在windows上安装一个IDE开发环境,需要用户根据实际开发选用IDE使用VS20153创建开发1.创solutionsolution,最简单的是使用win32控制台的方式(当然也可以创建其他类型的工程,根据实际情况确定; 库dll、静态库任意其一。2. 创建好的项目,使用Add\ExistingItem添加已有的源代码(包含源码和2ALLBUILD和INSTALL,可以全部选中build(参考方法:按住键盘CTRL,然后使用鼠3VS2015是一款商业,需用户自行,也可以使用其他版本的IDE开发工具替代3.配置参配置说置为ALLConfigurationsWin32配置参配置说置为ALLConfigurationsWin32、根据平台选择,当前只支持Exe、dll、开发工具,exe;动态库dll;静态库Character--和头文件不在同 ,而且include时不带径时,编译会报错,这时要配置头文件所在径,使用绝对路径和相对路径都可注意最好不要删掉系统的配置,面增加自的配置-径,这里如果不配置,后面所有的件要带路径,否则编译报错,找不到指定件建议将发布包里的dll/lib路径添加到-MT、MD、使用默认配置MD-需要连接的静态库或动态库(需要.libbyos配置了路径,这里可以只写库名称,否则要完整的相对或绝对路径;路径配置错误,无法编辑,会提示对应的件找不到HiAVSCalibrationLibrelease.lib配置4.所有的准备就绪后,直接编译即可,注意编译平台(只能使 x64)的配置----运行拼接标定运行需要额外的OpenCVopencvcore340.dll;opencvopencvimgcodecs340.dll;opencvimgproc340.dll;opencvflann340.dll;opencvfeatures2d340.dll,请将OpenCV动态库拷贝至系 或者当前执 分运行依赖的运行opencvcore340.dll;opencvopencvimgcodecs340.dll;opencvimgproc340.dll;opencvflann340.dll;opencvfeatures2d340.dllHiAVSCalibrationLib如果使用静态库,则不需要额外的动态标定库运行需要提供VS2015运行库(concrt140.dll),该动态库一vs2015安装后可以在C:\Windows\System32找到其用户使用的第动态库使用拼接标定拼接标定库主要有三种使用方法:模型标定、产线标定、第标定模型模型标定需要参考文档《拼接调试指南产线标定完图4-4产线标定在拼标定完获取版本hiAVS_VersLUT表生hiAVS_LutFromCal边界表Bbox生模型标产线标产线标拼接标PTGui标产线标定数据 PQtools上的模型标定的标定文件作为标定要 第二步输入,即可使用AVS标定工具生成针对该 的标定结果.cal文件。4-5所示。球2米,南北36个格子,赤道一周72个格子,即一个格5°。当然为了使格子均匀分布,南北极区域格子数相应减少,如图(b)所示。标(a)正视 (b)俯视产线标定环境的大小与最佳拼接距离没有关联,标定完成后可在生成LUT时配置任意由于双鱼眼结构的区为环形,故可将球面两侧区域裁剪掉,保留赤道附近型即可。每个格子依旧5°,故环形一周仍然72个格子,垂直方向格子数量根据重叠区大小设计即可,比如镜头FOV200°,则有40°区,此时垂8个格子以上,上下预留1个格子,10个格子较为合适。正视 (b)俯视为降低产线标定时存在的干扰,镜头画面范围内尽量避免出现纹理细节复杂的物品,毯鱼眼镜头标定的特殊要针对鱼眼镜头,由于靠近镜头边缘(如图4-7所示红色线条和绿色线条之间的部分)hiAVShiAVSLUT表生hiAVShiAVSLUT表生边界表Bbox生hiavspolyfromcalibr(仅Pqtools:模型标PTGui标该方案需要在标定(产线标定抓图)前,在RadialCROP模块配置鱼眼叠区域。注意使用PQtools配置时,需要配好对应的pipe,多个pipe要分别配置一般来说,一批就可以。中心设定为镜头图像实际的RadialCROP;板端图像拼接时可以不用配置RadialCROP。RadialCROP建议配置方使用实时预览,可以同时显示多路鱼眼画场景可以选择任意一个实际场景,调整镜头,将有细节的部分移至画面的边(以方便观察模糊情况及图像裁剪情况配置RadialCROP,设置图像的圆心位置(根据实际调整,减小半径大小,使得足够的区;(参考:按半径的长度来计量,可以裁剪掉区域的1/4,如至一批产品 RadialCROP圆心和半径可以配置相同的参数,不需要针对每台设备独产线标定主要产线标定和模型标定类似,会输出一个更精细且体现设备差异的.cal标定文标定结果的成员名描参考值越小,标定结果值越小,标定结果成员名描参考值越小,标定结果值越小,标定结果LUTBBox详细4.3.4“LUTBBox表生成。项对应接备表hiAVSHi3559AV100ES需要额外调用生成表hiAVS第(PTGui、hugin)标产线标定库支持 标定工具及。当前支持的第标定工具有 HuginPTGui为 的全景标定及拼接,标定步骤简单易用,为业界通用工具。PTGui类似,Hugin也是一个常见的拼接标定,并且跨平台开源全景摄影图像拼头的内参及外参,它的标定结果需要导入到AVS标定库,转换成AVS模型所需的查找图4-11第标定在标定流所处的环hiAVShiAVShiavspolyfrom(仅采用第标定不支持修改最佳拼接距离,故生成LUT表时最佳拼接距离配置无PTGui是商业,用户使用需要自行license第标定的数据来第标定需要抓取1组细节纹理丰富的场景的,由于只有一组 PTGui标定的主要步ExportControl1.Load在 sistant中使用1.Loadimages…导入需要标定的在ControlPoints中通过Auto或者Manual成对标记区域的Control在Proje sistant中使用2.Alignimages预览拼接的区域,初步确认拼接效果;如果效果达不到预期,需要返回步骤2重新调整ControlPoints;PTGui导出的文件后缀名修改为.ptoPTGui中File/ExportProject打开导出路径,将标定文件后缀修改为.pto,才能在AVS标定工具识别。hugin标定的主要Hugin快速标定步3.创建全景图Hugin快速标定步3.创建全景图1.步骤1.增加图像:同时打开所有需要拼接标定的一组,并配置镜头信息多路鱼眼请使用“圆形鱼眼使用非鱼 请使用“标准的(直线的2.排列所有图像,创建控制点并且优化图像位置:自动创建控制点并排列图像,只有完步骤3.创建全景图像:生成拼接后的图像,其中 如果以上自动标定结果不理想,需要手动调整控制点,请参考文档进行---第标定数据输AVS标定库,参考4.3.4“LUTBBox表生成”将.pto文件及MaskLUT(BBox表:仅Hi3559AV100ES需采用第标定不支持修改最佳拼接距离,故生成LUT表时最佳拼接距离配置无PTGui是商业,用户使用需要自行license根据标定结果生成LUT及BBox详细步骤参考4.3.4“LUTBBox表生成。项对应接备表hiAVSHi3559AV100ES需要额外调用生成表hiAVS所有标定结果都需要转换为LUT表才能应LUTBBox在模型标定、产品标定或第标定及Mask图像的基础上,可使用标定工具,配置最佳拼接距离,生成硬件所需的LUT查找表及BBox有效区域边界表。 模型模型标产线标Pqtools:模型标拼接标PTGui标定准(AE/AWB/CCMLSC标定产线标hAVS获取版本hiAVSLUT表生hiAVS边界表Bboxhiavspolyfrom标定完Hi3559AV100ESLUTBBoxLUT查找表LUT/BBox表数据来源模型标定生成的.cal文件或者产线标定生成的.cal文件或第标定生成的标定文件.pto、mask文件。Mask文件生LUT表的生成需要制作每路输入的Mask模板图像,用于标识出输入图像的有效区域。Mask图像必须是与输入分辨率相同的.png图像,白域表示有效区域,黑对于双鱼眼结构,mask为白色的圆形图像,如图4-16对于水平环绕四鱼眼结构,由于水平方向区较大,mask为椭圆形图像,将水平方向裁剪剩余大约120°视角,垂直方向不裁剪,如图4-16(b)所示。 区域不低于20%即可,当系统处理压力较大时,可以通过调整Mask的有效区域,减小区,从 心,裁剪过多会导致融合区不够平滑,影响拼接效果异小于2%时,相同产品类型的相机可以共用一套mask。若差异大于存在无效区域,故一般情况下相同产品类型的相机共用一套mask即可。(a)双鱼眼mask示 (b)四鱼眼mask示 (c)非鱼眼mask示意图 (d)非鱼眼mask示意图mask文件可以使用绘图通过可视化步骤简单绘制,以绘图工具Photoshop为例mask图像的生成为快速生成mask图像,直接使用每个Camera抓取的图像(头所在的场景可任意,参考该图像绘制mask图像。针对鱼眼镜使用绘Photoshop打开从Camera使用椭圆工具,使得该形状正好覆盖正常图像显示区将该区域填充为纯白色(RGB=0x000000,边框填充为纯黑或纯白或无边框(RGB=0xFFFFFF使用绘Photoshop打开从Camera,(RGB=0x000000,(RGB=0xFFFFFF 也可以更换为其它可以对图层操作的图像处理工具,方法类似绘图也可以完成该项工作PQtoolsLUTBBox表的生详细的LUT/Bbox的生成可以参考文档《拼接调试指南API使用流程请参考图4-3Sample#include<iostream>#include<windows.h>#include<ctime>#include"hitype.h"#include"hiavsprodHIS32main(intargc,char{HIS32 DWORDstarttime DWORDendtime printfs("\n\n");/*1.hiAVSHICHARcAVSCalibVersion[128];hiAVSVersion(cAVSCalibVersion);printfs("\t1 etousehisiliconAVSCalibrationLibrary%s.",printf/*2.hiAVSprintfs("******2.hiAVSCalProd******\n");HIU32camera HICHARinputcalfile[MAXPATH]"..\\..\\test\\forprodcal\\prodstep1.cal";HIFLOATfixtureradius (HIFLOAT)0.65;constHICHAR*pcCalImage[2]; "..\\..\\test\\forprodcal\\camera0.JPG"; "..\\..\\test\\forprodcal\\cameraHICHARoutputcalfile[MAXPATH]"..\\..\\test\\forprodcal\\prodstep2V4.cal";HIAVSCALSTITEASUREMENTSstarttime hiAVSCalProd(inputcalfile,outputcalfile,fixtureradius,end if(s32Ret!HI{}{

printfs("!!Error:%d,ret%d\n", LINE,s32Ret);printfs("\t\tcamera:%u\n",camera);printfs("\t\tinputcalfile:%s\n",inputcalfile);printfs("\t\toutputcalfile:%s\n",outputcalfile);printfs("\t\tfixtureradius:%f\n",fixtureradius);printfs("\t\tpcCalImage[0]:%s\n",pcCalImage[0]);printfs("\t\tpcCalImage[1]:%s\n",pcCalImage[1]);printfs("\thiAVSCalProd:suceess,time%ldms\n",endtimestartprintfs("\t\t umreprojerr:%f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论