首先感謝您的時間在一個真實的圖像座標讀我的問題:-)如何知道從縮放圖像
我有一個原始圖像(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