Qt 已知一张图片放大n倍的图中两点,求图片放大多少倍后图中两点能映射上

Qt 已知一张图片放大n倍的图中两点,求图片放大多少倍后图中两点能映射上

回答不易,求求您点赞关注哦

在 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);

结果点将是原始点在缩放图像中的位置。