【发布时间】:2019-09-09 13:43:54
【问题描述】:
我从事一个关于自动驾驶汽车的项目。在这个项目中,使用 C++ 中的 Opencv 4.0 在 Raspberry Pi(模型 3B)上进行实时视频处理。车辆前部还有一个距离传感器,可以与偶然的障碍物保持距离。任务是在 1 米内有障碍物时停车。
为了实现这个任务,我想在我的编程结构中使用线程。我将图像处理设计为主线程,将距离传感器测量设计为副线程。我担心的是这种结构是否会影响图像处理速度。你有什么主意吗?另外我想知道主线程是否使用Raspberry Pi的4核?如果是这样,是否将线程引入结构拆分核心,3 用于图像处理,1 用于距离传感器测量?
我对此感到困惑。我脑子里的设计可以看下面的sn-p(注意主线程无限循环):
int measuredDistance;
int distanceThreshold = 1; // 1 meter
void * sensor_thread(void * threadid) {
// measure distance
// update measuredDistance
}
int main () {
while(1){
// do image processing
if (measuredDistance < distanceThreshold)
stopTheCar();
}
}
【问题讨论】:
标签: c++ multithreading opencv image-processing raspberry-pi