//cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1);
cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_64FC1);//data-type...
for (unsigned int i = 0; i <probp.size(); i++ )
{
uvp.at<float>(0, i) = probp[i].x;
uvp.at<float>(1, i) = probp[i].y;
}
cv::Mat ipmps, xyp;
imagetoground(uvp, xyp, h, roll, pitch, camera_param_KK);

		//cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1);
cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_64FC1);//data-type...
for (unsigned int i = 0; i <probp.size(); i++ )
{
uvp.at<float>(0, i) = probp[i].x;
uvp.at<float>(1, i) = probp[i].y;
}
cv::Mat ipmps, xyp;
imagetoground(uvp, xyp, h, roll, pitch, camera_param_KK);

  

//imagetoground...
void imagetoground(cv::Mat& uv, cv::Mat& xy, double ht, double roll, double pitch, double* camera_param_KK)
{
std::cout << "111" << std::endl;
int height = (int)(ht*1000); //unit-mm.
double fx = camera_param_KK[0];
double fy = camera_param_KK[4];
double cx = camera_param_KK[2];
double cy = camera_param_KK[5]; double c1 = cos(pitch*PI / 180);
double s1 = sin(pitch*PI / 180);
double c2 = cos(roll*PI / 180);
double s2 = sin(roll*PI / 180); cv::Mat Tf = (cv::Mat_<double>(3, 3) << fx, 0, cx,
0, fy, cy,
0, 0, 1); cv::Mat Tx = (cv::Mat_<double>(3, 3) << 1, 0, 0,
0, c1, s1,
0, -s1, c1); cv::Mat T = Tx.inv() * Tf.inv();
T.rowRange(0, 2) = T.rowRange(0, 2)*(-height);
cv::Mat temp = cv::Mat::ones(3, uv.cols, CV_64FC1); uv.copyTo(temp.rowRange(0, 2) ) ;
cv::Mat xyt = T*temp;
xyt.rowRange(0, 1) = xyt.rowRange(0, 1) / xyt.rowRange(2, 3);
xyt.rowRange(1, 2) = xyt.rowRange(1, 2) / xyt.rowRange(2, 3); xyt.rowRange(0, 2).copyTo(xy);//deep-copy...
}

注意 

错误的描述一般是内存冲突memory crruption,abort等等...

完

opencv数据类型和格式的坑的更多相关文章

  1. <学习opencv>opencv数据类型

    目录 Opencv数据类型: 基础类型概述 固定向量类class cv::Vec<> 固定矩阵类cv::Matx<> 点类 Point class cv::Scalar 深入了 ...

  2. Opencv环境配置及踩坑

    Opencv环境配置及踩坑 1.什么是Opencv OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和[ ...

  3. 深度图从ros数据类型转换成opencv数据类型

    摘要:ros下,利用realsense D435采集深度图,并将其转换成opencv的数据类型. 一. RGBD图像采集 通过image_transport包,根据给定的采集速度从realsense ...

  4. 网络传输中利用fastjson将复杂嵌套数据类型Json格式转换(GeoJsonPolygon)

    如果一个对象太复杂了,那么在网络传输键的JSON格式数据转换容易出问题. 比如下面一个类Area.java import lombok.AllArgsConstructor; import lombo ...

  5. opencv中Mat格式的数据访问.at

    opencv3中图形存储基本为Mat格式,如果我们想获取像素点的灰度值或者RGB值,可以通过image.at<uchar>(i,j)的方式轻松获取. Mat类中的at方法对于获取图像矩阵某 ...

  6. [OpenCV]OpenCV常用语法函数与坑点

    目录 1. 加载图像(cv::imread) 2. 显示图像(cv::nameWindows与cv::imshow) 3. 修改图像(cv::cvtColor) 4. 保存图像(cv::imwrite ...

  7. Opencv读取各种格式图片,在TBitmap上面重绘

    //opencv读取图片 cv::Mat image; //const char *fileName = "HeadImage-UI/Photo-001.bmp"; const c ...

  8. openCV(二)---iOS中使用openCV的图片格式转换

    可以实现将UIImage和IplImage类型实现相互转换 //由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构. - (IplImage *)C ...

  9. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 前台request 获取body的格式是正确的 (2018-03-23 16:44:22) 但是Java 后台却格式化成了yyyy-MM-dd的格式 巨坑(@InitBinder搞得贵)

    最近做项目时,同事写的功能总是格式化时间不正确,Java类属性明明注解了@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")  但就是硬 ...

随机推荐

  1. MongoDB(课时11 嵌套集合)

    3.4.2.6 嵌套集合运算 MongoDB数据库里每个集合数据可以继续保存其它的集合数据.例如:有些学生信息中需要保存家长信息. 范例: 增加数据 db.students.insert({" ...

  2. 大数据存储的进化史 --从 RAID 到 Hdfs

    我们都知道现在大数据存储用的基本都是 Hdfs ,但在 Hadoop 诞生之前,我们都是如何存储大量数据的呢?这次我们不聊技术架构什么的,而是从技术演化的角度来看看 Hadoop Hdfs. 我们先来 ...

  3. ng的概念层次(官方文档摘录)

    官方文档是这么说的: You write Angular applications by: composing HTML templates with Angularized markup, writ ...

  4. 20170609批量生成WORD合同

    Sub NextSeven_CodeFrame() Application.ScreenUpdating = False Application.DisplayAlerts = False Appli ...

  5. JavaScript 和 React,React用了大量语法糖,让JS编写更方便。

    https://reactjs.org/docs/higher-order-components.htmlhttps://codepen.io/gaearon/pen/WooRWa?editors=0 ...

  6. Confluence 6 为 Active Directory 配置一个 SSL 连接

    如果你希望配置 Microsoft Active Directory 的读写权限,你需要在你的 Confluence 服务器和JVM keystore 上安装 Active Directory 服务器 ...

  7. zabbix3.0.4 配置邮件报警

    试验环境: LAMP环境 (LNMP环境已经成功了,为了避免干扰,我另一台LAMP主机) ### 我在做实验之前,作了时间同步,不知道这个有木有影响,一起说一下吧! yum -y install nt ...

  8. Leetcode 113

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  9. memory prefix retro,re out 2

    1● retro retr əu 向后,倒退     2● re 重新,一再,   不,反向后

  10. C++基础——new与delete

    本文目录 专业名称 new operator:new操作符,new表达式 operator new:new运算符 placement new:定位new delete operator:delete操 ...