首先感谢您的时间在一个真实的图像坐标读我的问题:-)如何知道从缩放图像
我有一个原始图像(W“:2124,H”:3204)和缩放的相同图像(w:512,h:768)。宽度比率为4.14(rw),高度比率为4.17(rh)。
我想知道原始图像中的坐标(x',y'),当我收到缩放图像(x,y)中的坐标时。我使用公式:x'= x * rw和y'= y * rh。但是当我画一条线时,或者一个矩形总是出现一个移位,当x或y更高时移位。
请有谁知道如何转换坐标而不失准确性?
提前致谢! 奥斯卡。
首先感谢您的时间在一个真实的图像坐标读我的问题:-)如何知道从缩放图像
我有一个原始图像(W“:2124,H”:3204)和缩放的相同图像(w:512,h:768)。宽度比率为4.14(rw),高度比率为4.17(rh)。
我想知道原始图像中的坐标(x',y'),当我收到缩放图像(x,y)中的坐标时。我使用公式:x'= x * rw和y'= y * rh。但是当我画一条线时,或者一个矩形总是出现一个移位,当x或y更高时移位。
请有谁知道如何转换坐标而不失准确性?
提前致谢! 奥斯卡。
或者您可以使用QTransform::quadToQuad创建转换,并用它来绘制点,rects,线条等:
QVector<QPointF> p1;
p1 << scaledRect.topLeft() << scaledRect.topRight() << scaledRect.bottomRight() << scaledRect.bottomLeft();
QVector<QPointF> p2;
p2 << originalRect.topLeft() << originalRect.topRight() << originalRect.bottomRight() << originalRect.bottomLeft();
QTransform::quadToQuad(p1, p2, mappingTransform);
...
QPointF originalPoint = mappingTransform.map(scalePoint);
始终使用十进制points.Else你会得到转变 在这里还可以看到
为X '= 512 * 4.14 = 2119.68 和y'= 768 * 4.17 = 3202.56
在这里你正在失去坐标。 您正在绘制原始图像或缩放图像的图像? 谢谢希望可以帮助你...
哇...真的你的解决方案对我来说是完美的:-)我使用它,并且工作非常好。谢谢!!! – ocell 2010-06-07 19:11:26
不客气。如果使用quadToQuad创建一些奇特的转换(如扭曲或翻转),请小心。它可能无法创建转换。一定要检查我在示例中跳过的函数返回值。 – 2010-06-07 19:27:23
感谢您的建议,但我正在做非常简单的转换:从缩放图像到实际图像。 – ocell 2010-06-08 10:40:04