双目视觉嵌入式移植后校正矩阵的生成方法

首先要利用标定得到的参数,通过调用OpenCV中的函数来得到校正矩阵。



   
    double LM[] = {

     4.0178810502329486e+002, 0, 1.5950000000000000e+002,
     0,4.0178810502329486e+002,1.1950000000000000e+002,
     0,0, 1
     };
     double LD[] = {

    -4.5141575299933429e-001, 2.3998422552817714e-001,
     1.5081252615814692e-002, 1.8419337906291466e-003, 0
     };
     double RM[] = {

     4.0178810502329486e+002, 0, 1.5950000000000000e+002,0,
     4.0178810502329486e+002, 1.1950000000000000e+002,0,0, 1
     };
     double RD[] = {

     -5.1762688060193929e-001,6.3474560985437023e-001,
     -2.5303249541511292e-003, -2.7165709692779268e-003, 0
     };
     double Rotate[] = {

     9.9952858710662951e-001,1.4994693512808868e-002,
     2.6791094100126738e-002,-1.1568939379481839e-002,
     9.9224798371307799e-001,-1.2373398263599662e-001,
     -2.8438762249064085e-002, 1.2336570829767958e-001,
     9.9195369792039845e-001
     };
     double translation[] = {

     -8.8108837791674333e+001, -1.3412948452799096e+000,
     9.4102431499505457e+000
     };



cv::Mat    cameraMatrix_L = cv::Mat(3,3,CV_64FC1,LM);
    cv::Mat	distortionCoefficients_L = cv::Mat(1,5,CV_64FC1,LD);
    cv::Mat    cameraMatrix_R = cv::Mat(3,3,CV_64FC1,RM);
    cv::Mat	distortionCoefficients_R = cv::Mat(1,5,CV_64FC1,RD);

    cv::Mat rotations= cv::Mat(3,3,CV_64FC1,Rotate);
    cv::Mat translations= cv::Mat(3,1,CV_64FC1,translation);
    cv::Mat R1, R2, P1, P2, Q;
    cv::Rect roi1,roi2;
    cv::Mat m_Calib_Mat_Remap_X_L  = cv::Mat(imageSize, CV_32FC1);
    cv::Mat m_Calib_Mat_Remap_Y_L= cv::Mat(imageSize, CV_32FC1);
    cv::Mat m_Calib_Mat_Remap_X_R = cv::Mat(imageSize, CV_32FC1);
    cv::Mat m_Calib_Mat_Remap_Y_R = cv::Mat(imageSize, CV_32FC1);

    cv::stereoRectify(
         cameraMatrix_L,
         distortionCoefficients_L,
         cameraMatrix_R,
         distortionCoefficients_R,
         imageSize,
         rotations,
         translations,
         R1,R2,P1,P2,Q,
         1024
         );
    initUndistortRectifyMap(
         cameraMatrix_L,
         distortionCoefficients_L,
         R1,P1,
         imageSize,
         CV_16SC2,
         m_Calib_Mat_Remap_X_L, m_Calib_Mat_Remap_Y_L);
     initUndistortRectifyMap(
         cameraMatrix_R,
         distortionCoefficients_R,
         R2, P2,
         imageSize,
         CV_16SC2,
         m_Calib_Mat_Remap_X_R,m_Calib_Mat_Remap_Y_R);

嵌入式运行后可以得到相关校正参数。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将 Asterisk 移植嵌入式设备上可能需要一些额外的工作,因为嵌入式设备通常具有有限的资源和特殊的硬件要求。以下是一些步骤和注意事项,可供您参考: 1. 了解嵌入式设备的硬件要求:首先,您需要仔细了解目标嵌入式设备的硬件规格和限制。这包括处理器类型、内存大小、存储容量、操作系统和网络接口等信息。 2. 选择适合的 Asterisk 版本:根据嵌入式设备的硬件要求,选择适合的 Asterisk 版本。较新的版本可能包含更多功能和改进,但同时也可能需要更高的系统资源。 3. 交叉编译 Asterisk:由于嵌入式设备和开发计算机架构不同,您需要使用交叉编译的方式将 Asterisk 编译成适用于目标设备的可执行文件。您可能需要设置交叉编译工具链和相关环境变量。 4. 配置和裁剪 Asterisk 功能:根据嵌入式设备的资源限制,您可能需要裁剪 Asterisk 的功能以减少内存消耗和存储空间。在编译过程中,可以通过配置选项来选择需要的模块和功能。 5. 优化系统配置:针对嵌入式设备的特殊需求,您可能需要优化操作系统和网络配置。这可能涉及禁用不必要的服务、调整内核参数和网络设置等。 6. 测试和调试:在完成移植后,进行全面的测试以确保 Asterisk 在嵌入式设备上正常运行。您可能需要检查音频质量、呼叫功能和性能等方面。 请注意,嵌入式设备的移植是一项复杂的任务,需要对 Asterisk 和嵌入式系统有深入的了解。如果您没有足够的经验和技术知识,建议寻求专业的嵌入式开发人员的帮助。 希望以上信息对您有所帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值