一种近似方法将场地坐标转为像素坐标

先上代码:

for (int i = 0;i < WIDTH;i++){for (int j = 0;j < HEIGHT;j++){nNewi = int((pMain->ground.groundInfo[i][j].x - GROUND_WIDTH / 2)*5.4)  + WIDTH / 2;nNewj = int((pMain->ground.groundInfo[i][j].y - GROUND_HEIGHT / 2)*5.4 ) + HEIGHT / 2;//5.4代表着场地坐标一厘米占据5.4个像素.根据短边180厘米占据大恒相机1000个像素左右算出//这样将场地坐标大致转为像素坐标,画出来的图和原图大小相似(pBoundset + nNewi + (HEIGHT - 1 - nNewj) * WIDTH)->rgbtRed = (pOrigin + i + (HEIGHT - 1 - j) * WIDTH)->rgbtRed;(pBoundset + nNewi + (HEIGHT - 1 - nNewj) * WIDTH)->rgbtGreen = (pOrigin + i + (HEIGHT - 1 - j) * WIDTH)->rgbtGreen;(pBoundset + nNewi + (HEIGHT - 1 - nNewj) * WIDTH)->rgbtBlue = (pOrigin + i + (HEIGHT - 1 - j) * WIDTH)->rgbtBlue;}}

场景介绍

在我们现在的场景之下:相机光心和长方形场地中心几乎共线且成像面和场地平面几乎平行,那可以用一种近似方法将场地坐标转换为像素坐标。
下面的代码中,ground.groundInfo[i][j]为标定后存放的真实场地坐标(世界坐标),我们在这种情况下,将世界坐标的z坐标设为0。
我们这一段代码的目的就是用pBoundset存入标定之后的图像(矫正畸变后的图像),然后显示出来,这就要我们从标定算法算出来的世界坐标转换到像素坐标用来显示。
转换方法
前两行的代码的意义就是:求出未矫正图片中像素(i,j)对应的矫正后的像素点(nNewi,nNewj)。而ground.groundInfo[i][j]是以左上角为原点的坐标,GROUND_WIDTH和GROUND_HEIGHT是场地的长和宽,减去运算之后就转成了以中心点为原点的坐标,5.4代表着场地坐标一厘米占据5.4个像素.根据短边180厘米占据大恒相机1000个像素左右算出,这样将场地坐标大致转为像素坐标,画出来的图和原图大小相似。

nNewi = int((pMain->ground.groundInfo[i][j].x - GROUND_WIDTH / 2)*5.4)  + WIDTH / 2;
nNewj = int((pMain->ground.groundInfo[i][j].y - GROUND_HEIGHT / 2)*5.4 ) + HEIGHT / 2;

转换图片
第三和第四行和第五行代码作用就是用pBoundset存入标定之后的图像(矫正畸变后的图像)

(pBoundset + nNewi + (HEIGHT - 1 - nNewj) * WIDTH)->rgbtRed = (pOrigin + i + (HEIGHT - 1 - j) * WIDTH)->rgbtRed;
(pBoundset + nNewi + (HEIGHT - 1 - nNewj) * WIDTH)->rgbtGreen = (pOrigin + i + (HEIGHT - 1 - j) * WIDTH)->rgbtGreen;
(pBoundset + nNewi + (HEIGHT - 1 - nNewj) * WIDTH)->rgbtBlue = (pOrigin + i + (HEIGHT - 1 - j) * WIDTH)->rgbtBlue;

一种近似方法将场地坐标转为像素坐标相关推荐

  1. 高德地图轨迹回放、点的弹跳效果、浏览器环境监测、设置地图的主题样式、GPS坐标转为高德坐标、地图加载提示、地图DOM事件、修改图层等API接口

    1.轨迹回放 https://lbs.amap.com/api/javascript-api/example/marker/replaying-historical-running-data 2.点的 ...

  2. 经纬度坐标转换成px_经纬度坐标转像素坐标

    "```\n// 经纬度坐标转像素坐标\nfunction latlng2px(lat, lng) {\n var LatLng = (function(){\n function LatL ...

  3. matlab 相机焦距,世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真...

    照相机是日常生活中最常见的.它能把三维的空间图片等比例缩小投影在照片上,称为一个二维图像. 以下我们就讲一讲原理,并相应的进行matlab仿真. 在学之前,先要了解几个概念: 什么是世界坐标? 也就是 ...

  4. gcj02坐标转为wgs84坐标

    //定义一些常量 const PI = 3.1415926535897932384626 const a = 6378245.0 // 长半轴 const ee = 0.006693421622965 ...

  5. (一)GDAL计算图像坐标与像素坐标之间的关系

    1. 原理 使用GDAL处理地理图像时,不可避免的会遇到一个问题,图像的地理坐标问题,因为有了这个地理坐标,地理图像才和普通图像有了最本质的区别,那么在使用GDAL时,如果处理与地理坐标相关的信息呢? ...

  6. 相机模型之世界坐标、相机坐标、归一化坐标、图像坐标、像素坐标、内参、外参、转换关系总结

    2021.04.12重新修改版:

  7. 光学成像模型\和物距、像距、焦距、三者关系\和世界坐标、相机坐标、图像坐标、像素坐标关系\和图像畸变标定处理(二)

    来自百度百科:https://zhidao.baidu.com/question/55907940.html 原文链接:https://blog.csdn.net/qq_35250841/articl ...

  8. 格子地图 像素坐标 地图坐标 转化

    /*** 像素坐标转换为地图坐标* */public SpaceToTiled(point: egret.Point): egret.Point {var y = Math.floor(point.y ...

  9. GPS坐标转百度坐标总结

    我就直接把我整理的模块摆上去吧!有需要的可以直接复制过去导入就可以用了. /*** 采用百度地图的转换方法,向百度地图服务器请求转换结果,* 普通用户有次数限制,另外异步转换,改方法可以无限转换,* ...

最新文章

  1. 持续交付会如何影响测试
  2. TableCellRenderer和TableCellEditor(一)
  3. 前端攻城狮学习笔记七:常见前端面试题之HTML/CSS部分(二)
  4. 【java笔记】IDEA debug调试
  5. 深度学习(三)----算法岗面试题
  6. Excel:合并两个单元格内容
  7. 关于商城商品表设计(一)
  8. Bootstrap框架----标签Tag输入用法--Bootstrap-tagsinput
  9. 推荐 :如何全面解析数据并创造数据故事
  10. AutoResetEvent与ManualResetEvent区别
  11. 面向过程、基于对象、面向对象、分析
  12. 解决‘vue‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件的方法
  13. 从0到1一个文件,用Python 实现 Web 框架
  14. matlab去除大跳变,一种快速灰度校正算法(处理亮度不均等情况)(含MATLAB代码)...
  15. 信道检测手机软件 ios_如何在iOS设备上用PS4或Xbox One的手柄玩游戏?
  16. 上行参考信号-SRS
  17. Qt Linguist 介绍和简单应用
  18. 查看网页原代码时遇到中文汉字乱码
  19. 在GT 820M显卡的笔记本上安装PyTorch的尝试
  20. JS数据库:手机处理器列表

热门文章

  1. 超出父控件怎么才能点击
  2. Excel—SUMPRODUCT用法指南
  3. 软件测试体系划分与职业素养
  4. 世界各国钱币(ZT)
  5. java实现简单窗体小游戏----球球大作战
  6. matlab数据的拼接
  7. python作图一览
  8. 先本地仓库中国添加jar包
  9. autofac 的好博文
  10. stopImmediatePropagation函数和stopPropagation函数的区别