songhaibo_branch
1 year ago
parent aa9974b57f
commit d94135987e

@ -0,0 +1,23 @@
#include "Alarm.h"
#include <iostream>
#include <string>
using namespace std;
int main() {
AlarmSystem alarm; // 创建警报系统对象
alarm.arm(); // 启动警报系统
// 模拟接收到信息并触发警报
string message = "温度异常";
alarm.receiveMessage(message);
alarm.disarm(); // 关闭警报系统
// 再次模拟接收到信息,但由于警报系统已关闭,不会触发警报
string message2 = "火灾警报";
alarm.receiveMessage(message2);
return 0;
}

@ -0,0 +1,46 @@
#include <iostream>
#include <string>
using namespace std;
class AlarmSystem {
public:
// 构造函数,初始化警报系统
AlarmSystem() {
isArmed = false;
alarmMessage = "警报!有异常情况发生!";
}
// 启动警报系统
void arm() {
isArmed = true;
cout << "警报系统已启动" << endl;
}
// 关闭警报系统
void disarm() {
isArmed = false;
cout << "警报系统已关闭" << endl;
}
// 接收信息并触发警报
void receiveMessage(const string& message) {
if (isArmed) {
cout << "接收到信息:" << message << endl;
triggerAlarm();
}
else {
cout << "未启动警报系统,忽略信息:" << message << endl;
}
}
private:
bool isArmed; // 警报系统是否启动
string alarmMessage; // 警报信息
// 触发警报
void triggerAlarm() {
cout << "发出警报:" << alarmMessage << endl;
// 这里可以实现具体的警报动作,例如触发声音、发送通知等
}
};

@ -0,0 +1,19 @@
#include "Distance.h"
#include <iostream>
using namespace std;
int main() {
// 传入相机的基线长度和树木在两个视角下的像素位移
TreeDistanceEstimator treeEstimator(0.1, 30);
// 设置相机的焦距
treeEstimator.setFocalLength(100);
// 估测树木的距离
double distance = treeEstimator.estimateDistance();
cout << "估测的树木距离:" << distance << "" << endl;
return 0;
}

@ -0,0 +1,19 @@
class TreeDistanceEstimator {
public:
// 构造函数,传入相机的基线长度和树木在两个视角下的像素位移
TreeDistanceEstimator(double baseline, double pixel_displacement) {
this->baseline = baseline;
this->pixel_displacement = pixel_displacement;
}
// 估测树木的距离
double estimateDistance() {
double distance = (baseline * focal_length) / pixel_displacement;
return distance; // 返回估测的距离
}
private:
double baseline; // 相机的基线长度
double pixel_displacement; // 树木在两个视角下的像素位移
double focal_length; // 相机焦距
};

@ -0,0 +1,19 @@
#include "pixel.h"
#include <iostream>
using namespace std;
int main() {
// 传入现实中两个物体的面积和它们在图像中所占像素面积
PixelRatioConverter p(5, 10, 100, 200);
// 获取像素比例系数
double ratio = p.getPixelRatio();
cout << "像素比例系数:" << ratio << endl;
// 计算下一步物体在图像中所占像素面积
int next_pixel_area = p.getNextPixelArea(15);
cout << "下一步物体在图像中所占像素面积:" << next_pixel_area << endl;
return 0;
}

@ -0,0 +1,29 @@
class PixelRatioConverter {
public:
// 构造函数,传入两个现实中的物体面积和它们在图像中所占像素面积
PixelRatioConverter(double real_area1, double real_area2, int pixel_area1, int pixel_area2) {
this->real_area1 = real_area1;
this->real_area2 = real_area2;
this->pixel_area1 = pixel_area1;
this->pixel_area2 = pixel_area2;
}
// 获取像素比例系数
double getPixelRatio() {
double ratio = (real_area1 / real_area2) * (pixel_area2 / pixel_area1);
return ratio; // 返回像素比例系数
}
// 根据像素比例系数,计算下一步物体在图像中所占像素面积
int getNextPixelArea(int next_real_area) {
double ratio = this->getPixelRatio();
int next_pixel_area = static_cast<int>(next_real_area / ratio);
return next_pixel_area; // 返回下一步物体在图像中所占像素面积
}
private:
double real_area1; // 第一个现实中的物体面积
double real_area2; // 第二个现实中的物体面积
int pixel_area1; // 第一个物体在图像中所占像素面积
int pixel_area2; // 第二个物体在图像中所占像素面积
};
Loading…
Cancel
Save