Tag: 投影

iOS恢复相机投影

我正在尝试估算与空间QR码相关的设备位置。 我使用的是iOS11中引入的ARKit和Vision框架,但这个问题的答案可能不依赖于它们。 使用Vision框架,我可以获得在相机框架中绑定QR码的矩形。 我想匹配这个矩形的设备翻译和旋转所需的QR码从一个标准的位置转换。 例如,如果我观察框架: * * B C A D * * 而如果我离QR码1m远,就以它为中心,假设QR码的边长为10cm,我会看到: * * A0 B0 D0 C0 * * 这两个帧之间的设备转换是什么? 我知道一个确切的结果可能是不可能的,因为也许观察到的QR码是非平面的,我们试图估计一个不完全的东西的仿射变换。 我猜sceneView.pointOfView?.camera?.projectionTransform比sceneView.pointOfView?.camera?.projectionTransform?.camera.projectionMatrix更有帮助,因为后面已经考虑到了我不感兴趣的ARKit的变换对于这个问题。 我将如何填写 func get transform( qrCodeRectangle: VNBarcodeObservation, cameraTransform: SCNMatrix4) { // qrCodeRectangle.topLeft etc is the position in [0, 1] * [0, 1] of A0 // expected real world position of the […]

以编程方式纠正鱼眼失真

BOUNTY状态更新: 我发现如何映射线性镜头 ,从destination坐标到source坐标。 你如何计算从中心到鱼眼的直线距离? 1)。 我真的很难扭转它,并将源坐标映射到目标坐标。 什么是相反的,在我发布的转换函数风格的代码中? 2)。 我也看到,我的失真在一些镜头上是不完美的 – 可能是那些不是严格线性的。 这些镜头的等效源和目标坐标是多less? 同样,更多的代码不仅仅是math公式,请… 问题如最初所述: 我有一些观点用鱼眼镜头描述的位置。 我想将这些点转换成直线坐标。 我想要保持形象不变。 我已经find了如何生成鱼眼效果的说明,但没有find如何反转的说明。 还有一篇博客文章介绍了如何使用工具来完成这项工作。 这些照片是从那个: (1) : SOURCE 原始照片链接 input: 鱼眼畸变修复的原始图像。 (2) : DESTINATION 原始照片链接 输出: 校正图像(技术上还有透视校正,但这是一个单独的步骤)。 你如何计算从中心到鱼眼的直线距离? 我的function存根如下所示: Point correct_fisheye(const Point& p,const Size& img) { // to polar const Point centre = {img.width/2,img.height/2}; const Point rel = {px-centre.x,py-centre.y}; const […]

计算LookAtmatrix

我正在编写一个3d引擎,我遇到了DirectX文档中描述的LookAtalgorithm: zaxis = normal(At – Eye) xaxis = normal(cross(Up, zaxis)) yaxis = cross(zaxis, xaxis) xaxis.x yaxis.x zaxis.x 0 xaxis.y yaxis.y zaxis.y 0 xaxis.z yaxis.z zaxis.z 0 -dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) l 现在我知道它是如何工作在旋转的一面,但我不明白为什么它把matrix的翻译部分是那些点积。 仔细检查一下,似乎是根据新的基本vector投影到眼睛/相机的位置上来调整相机的位置。 问题是为什么需要这样做? 它完成了什么?

墨卡托经度和纬度计算在英国的裁剪地图上的x和y

我有这个形象: http : //imgur.com/99tSz.png 。 英国地图(不包括南爱尔兰)。 我已经成功地设法获得了经度和纬度,并把英国的最左边的经度和最右边的经度绘制在这张地图上,并用它们来计算出在地图上的位置。 这是代码(用于Processing.js,但可以用作js或任何东西): // Size of the map int width = 538; int height = 811; // X and Y boundaries float westLong = -8.166667; float eastLong = 1.762833; float northLat = 58.666667; float southLat = 49.95; void drawPoint(float latitude, float longitude){ fill(#000000); x = width * ((westLong-longitude)/(westLong-eastLong)); y = […]

如何在MongoDB中select一个字段?

在我的MongoDB中,我有一个包含10个logging的学生集合,其中包含字段name和roll 。 这个collections的一个logging是: { "_id" : ObjectId("53d9feff55d6b4dd1171dd9e"),<br> "name" : "Swati", "roll" : "80", } 我想通过使用以下方法仅检索集合中所有10个logging的“滚动”字段: SELECT roll FROM student 我经历了许多博客,但都导致一个查询,它必须有WHERE子句。 例如: db.students.find({ "roll": { $gt: 70 }) 该查询等同于: SELECT * FROM student WHERE roll > 70 我的要求是只find一个领域没有任何条件。 那么,查询操作是什么呢。 提前致谢。

鼠标/canvasX,Y到Three.js世界X,Y,Z

我search了一个与我的用例相匹配的例子,但找不到一个例子。 我试图将屏幕鼠标坐标转换为3D世界坐标考虑到相机。 我find的解决scheme都是通过射线交叉来实现对象拾取。 我想要做的是将Three.js对象的中心定位在鼠标当前“结束”的坐标上。 我的相机是在x:0,y:0,z:500(虽然它会在模拟过程中移动),而我所有的物体都在z = 0,具有不同的x和y值,所以我需要知道世界X,Y假定az = 0的对象将遵循鼠标的位置。 这个问题看起来像一个类似的问题,但没有解决scheme: 在THREE.js中获取鼠标的坐标相对于三维空间 给定鼠标在“左上angular= 0,0 |右下= window.innerWidth,window.innerHeight”的范围上的位置,任何人都可以提供一个解决scheme,将Three.js对象移动到鼠标坐标沿z = 0?

OCR和字符相似

我目前正在研究某种OCR(光学字符识别)系统。 我已经写了一个脚本来从文本中提取每个字符,并清除(大部分)违规行为。 我也知道字体。 我现在的图片例如是: M( http://i.imgur.com/oRfSOsJ.png (font)和http://i.imgur.com/UDEJZyV.png (扫描)) K( http://i.imgur.com/PluXtDz.png (font)和http://i.imgur.com/TRuDXSx.png (扫描)) C( http://i.imgur.com/wggsX6M.png (font)和http://i.imgur.com/GF9vClh.png (扫描)) 对于所有这些图像,我已经有了一种二进制matrix(1为黑色,0为白色)。 我现在想知道是否有某种类似math投影的公式来看这些matrix之间的相似性。 我不想依靠图书馆,因为这不是我的任务。 我知道这个问题可能看起来有点模糊,也有类似的问题,但我正在寻找的方法,而不是一个包,到目前为止我找不到任何有关该方法的意见。 这个问题含糊不清的原因是我真的没有开始的意思。 我想要做的是在维基百科实际上这里描述: matrix匹配涉及将图像与存储的字形逐像素地进行比较; 它也被称为“模式匹配”或“模式识别”[9]。 这依赖于input字形与图像的其余部分正确隔离,并且存储的字形具有相同的字体和相同的比例。 这种技术最适合打印文字,遇到新字体时效果不佳。 这是早期的基于光电pipe的OCR技术所实现的技术,相当直接。 ( http://en.wikipedia.org/wiki/Optical_character_recognition#Character_recognition ) 如果有人能帮我解决这个问题,我将非常感激。