songhaibo_branch
2 years ago
parent 29129d21b3
commit e692b89a7a

@ -1,3 +1,5 @@
#include <iostream>
class PixelRatioConverter {
public:
// 构造函数,传入两个现实中的物体面积和它们在图像中所占像素面积
@ -9,21 +11,36 @@ public:
}
// 获取像素比例系数
double getPixelRatio() {
double ratio = (real_area1 / real_area2) * (pixel_area2 / pixel_area1);
double getPixelRatio() const {
double ratio = calculateAreaRatio() * calculatePixelRatio();
return ratio; // 返回像素比例系数
}
// 根据像素比例系数,计算下一步物体在图像中所占像素面积
int getNextPixelArea(int next_real_area) {
int getNextPixelArea(int next_real_area) const {
double ratio = this->getPixelRatio();
int next_pixel_area = static_cast<int>(next_real_area / ratio);
int next_pixel_area = calculateNextPixelArea(next_real_area, ratio);
return next_pixel_area; // 返回下一步物体在图像中所占像素面积
}
private:
double real_area1; // 第一个现实中的物体面积
double real_area2; // 第二个现实中的物体面积
int pixel_area1; // 第一个物体在图像中所占像素面积
int pixel_area2; // 第二个物体在图像中所占像素面积
double real_area1; // 第一个现实中的物体面积
double real_area2; // 第二个现实中的物体面积
int pixel_area1; // 第一个物体在图像中所占像素面积
int pixel_area2; // 第二个物体在图像中所占像素面积
// 计算现实物体面积之间的比例系数
double calculateAreaRatio() const {
return real_area1 / real_area2;
}
// 计算像素面积之间的比例系数
double calculatePixelRatio() const {
return static_cast<double>(pixel_area2) / pixel_area1;
}
// 根据比例系数和下一步物体的实际面积,计算在图像中所占的像素面积
int calculateNextPixelArea(int next_real_area, double ratio) const {
return static_cast<int>(next_real_area / ratio);
}
};

Loading…
Cancel
Save