Qt 已知一张图片放大n倍的图中两点,求图片放大多少倍后图中两点能映射上
1条回答 默认 最新
- 普通网友 2023-01-02 00:09关注
回答不易,求求您点赞关注哦
在 Qt 中,您可以使用QTransform该类对图像执行变换,例如缩放。以下是如何使用QTransform缩放图像和确定比例因子的示例:
#include <QImage> #include <QTransform> int main() { // Load the image QImage image("path/to/image.png"); // Scale the image by a factor of 2 QTransform transform; transform.scale(2, 2); image = image.transformed(transform); // Determine the scale factor qreal scaleFactor = transform.m11(); // This should be 2 return 0; }要确定图像缩放了多少次,您可以检索表示水平缩放因子m11的矩阵元素的值。QTransform在这个例子中,比例因子是 2,这意味着图像被缩放了 2 倍。
要将原始图像中两个点的位置映射到缩放后的图像,您可以使用以下map方法对这些点应用相同的变换QTransform:
QPoint point1(x1, y1); QPoint point2(x2, y2); point1 = transform.map(point1); point2 = transform.map(point2);结果点将是原始点在缩放图像中的位置。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 2无用