将坐标从图像转换为屏幕

Posted

技术标签:

【中文标题】将坐标从图像转换为屏幕【英文标题】:Converting coordinates from Image to screen 【发布时间】:2014-04-02 11:55:47 【问题描述】:

我正在做一个项目,我检测手指移动以在屏幕上移动光标,因此我必须将从图像获得的坐标转换为屏幕上的坐标并将光标移动到那里。示例: 在 (128,127) 上检测到手指我想在屏幕上找到该点的等价物。图像为 (640 x 480),屏幕为 (1366 x 768)。

谁能帮我解决这个问题。尝试了不同的方法,但我在 stack-overflow 上发现的其中一些方法都不令人满意。

提前致谢。

【问题讨论】:

欢迎来到 Stack Overflow!您的问题没有提供太多内容,如果您可以添加一些细节,例如您正在使用的软件或评论您尝试过的内容,将会很有用。这是一个article on how to ask,可以帮助您改进您的问题。 【参考方案1】:

试试这个:

ScreenX = event.X / PhoneWidth * ScreenWidth

ScreenY = event.Y / PhoneHeight * ScreenHeight

event.X 是用户触摸屏幕的 X 坐标。

【讨论】:

嗨,我认为这行不通;我试过了,它总是回馈(0,0)。由于 event.X 取值从 0 到 640 event.Y 取值从 0 到 480 phoneWidth * ScreenWidth 总是 >>> 比 event.X 同样适用于 event.Y【参考方案2】:

尝试使用地图功能。 在 c 语言中它可能看起来像这样:

long map(long x, long in_min, long in_max, long out_min, long out_max)

  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

【讨论】:

以上是关于将坐标从图像转换为屏幕的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何从屏幕空间坐标转换为 WinForms PictureBox 中的图像空间坐标?

将图像从笛卡尔坐标转换为极坐标 - 肢体变暗

将窗口坐标转换为屏幕坐标??

将屏幕坐标中的 NSPoint 转换为窗口坐标

OpenGL:如何将世界坐标转换为屏幕坐标?

在 CUDA 中,如何在内核函数中将屏幕空间坐标转换为世界空间坐标