看下面的这个函数与调用,这个时候就会出现非常量引用的初始值必须为左值解决方式的错误
修改方法:函数声明的时候,加一个constPoint3f getWorldPoints(const Point2f& inPoints, Mat& rvec, Mat& tvec, Mat& cameraMatrix)

函数调用:

Points3d_19.push_back(getWorldPoints(Point2f(i, 1.0 * sum / num), rvecsMat[18], tvecsMat[18], cameraMatrix));

原出错的函数声明:

Point3f getWorldPoints(Point2f& inPoints, Mat& rvec, Mat& tvec, Mat& cameraMatrix)
{//initialize parameterMat rotationMatrix;//3*3Rodrigues(rvec, rotationMatrix);double zConst = 0;//实际坐标系的距离,若工作平面与相机距离固定可设置为0double s;//获取图像坐标cv::Mat imagePoint = (Mat_<double>(3, 1) << double(inPoints.x), double(inPoints.y), 1);// cv::Mat::ones(3, 1, cv::DataType<double>::type); //u,v,1// imagePoint.at<double>(0, 0) = inPoints.x;// imagePoint.at<double>(1, 0) = inPoints.y;//计算比例参数Scv::Mat tempMat, tempMat2;tempMat = rotationMatrix.inv() * cameraMatrix.inv() * imagePoint;tempMat2 = rotationMatrix.inv() * tvec;s = zConst + tempMat2.at<double>(2, 0);s /= tempMat.at<double>(2, 0);//计算世界坐标Mat wcPoint = rotationMatrix.inv() * (s * cameraMatrix.inv() * imagePoint - tvec);Point3f worldPoint(wcPoint.at<double>(0, 0), wcPoint.at<double>(1, 0), wcPoint.at<double>(2, 0));return worldPoint;
}

非常量引用的初始值必须为左值解决方式相关推荐

  1. C++中“非常量引用的初始值必须是左值”的处理方法

    原文:https://blog.csdn.net/hou09tian/article/details/80565343 1 左值和右值 在C++中,左值可以出现在赋值语句的左边和右边:右值只能出现在赋 ...

  2. 非常量引用的初始值必须是左值_C++核心编程--引用

    2 引用 2.1 引用的基本使用 作用: 给变量起别名 语法: 数据类型 &别名 = 原名 示例: int main() {int a = 10;int &b = a;cout < ...

  3. [转载]非常量引用的初始值必须为左值的问题

    首先,先看下面一个例子: eg.1 #include<</span>iostream> usingnamespace std; int main(){ int i =2; do ...

  4. 非常量引用的初始值必须为左值

    问题描述 先看一段报错的代码: #include<iostream> using namespace std;int main() {int i = 2;double &r = i ...

  5. ×××××sales_data通过类型转换形成的临时对象不能转换成sales_data (非常量引用)

    文件   sales_data.h #include <iostream> #include <string> using namespace std; struct sale ...

  6. IDEA maven mvn install无法引用手动导入的jar包的解决方式 图文详细

    解决方法: 手动在pom中添加依赖 使用mvn install 本次测试Jar以vertica-jdbc-8.1.1-0.jar驱动包为例子 1.手动添加依赖 在项目中建一个lib的目录,将外部jar ...

  7. 临时变量不能作为非const引用

    int func(a) {return a; }int main() {int r = func(3 + 5);return 0; } 上述代码报错, 非常量引用的初始值必须为左值 .  主要原因如下 ...

  8. c++左值和右值、 左值引用与右值引用

    c++ 左值引用与右值引用--原 左值和右值 综述 C++对于左值和右值没有标准定义,但是有一个被广泛认同的说法: 可以取地址的,有名字的,非临时的就是左值:--变量.返回引用.const 不能取地址 ...

  9. 左值右值,左值引用和右值引用及其用途

    目录 1.左值和右值 2.引用 (1)左值引用 (2)右值引用 3.左值引用的用途 (1)作为复杂名称变量的别名 (2)用于rangeFor循环 (3)避免复制大的对象 (4)参与函数中的参数传递 4 ...

最新文章

  1. ubantu mysql允许外部链接_ubuntu 下mysql 设置允许远程连接
  2. 查看windows 端口进程
  3. Caliburn笔记-基本Command(wpf框架)
  4. 查看操作系统的UUID
  5. Azure Site Recovery之启用复制
  6. NOI数据结构:后缀树
  7. dos命令窗口光标闪烁_10 分钟上手 Vim,常用命令大盘点
  8. Unity3D入门(二):碰撞检測
  9. php 中的关联数组 介绍
  10. FastDFS简单介绍
  11. 19n20c的参数_供应IC芯片 745653-3 329056 品牌、价格、PDF参数 - 电子产品资料
  12. 于的繁体字有几种写法_“二”的繁体字有几种写法
  13. 原码一位乘法和补码一位乘法
  14. pymysql操作MySQL数据库表-----爬虫豆瓣top250电影并存入数据库
  15. 光耦应用电路设计方法
  16. 科技感十足五款APP软件,让你的手机不再低调!
  17. VERITA Netbackup日常巡检详细说明
  18. OpenVINO工具套件高级课程第一课:如何充分使用OpenVINO工具套件?
  19. 3dmax 建模插件 Rappa Tools 3 笔记
  20. 中国蚁剑连接一句话木马

热门文章

  1. 【Scrapy】OAuth 学习笔记
  2. springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM
  3. 我所知道的flex布局 —— 上篇
  4. nagios结合pnp4nagios图表
  5. MATLAB优化——减少for的使用
  6. 了解EF CodeFirst的Migrator功能与Migrator.Net对比
  7. NameNode任务线程之FSNamesystem$ReplicationMonitor
  8. 手把手带你入门Java中File类
  9. Spark源码阅读02-Spark核心原理之调度算法
  10. 页面性能优化详细总结