4,269
社区成员




在一般负载下能够正常读取图像,在导入算法使CPU增大负载后(使用prime95拷机也可以),开始出现丢图问题
这是我读取图像的线程代码内容
while (1)
{
if (!cap.isOpened())
return CAM_ERROR_OPEN;
i = 0;
cap.grab();
res = cap.retrieve(frame, 0);
if (res==0) {
frame_count = frame_count;
printf("no image\n");
}
else {
if (frame_count > c_depth)
{
frame_count = 0;
}
printf("%d frame get\n", frame_count);
///////////////memory copy and split part///////////
memcpy(img_T, frame.data, c_width * c_height * 2);
for (size_t i = 0; i < c_total; i = i + 8)
{
img_L[(i / 2) + 0] = img_T[i + 3];
img_L[(i / 2) + 1] = img_T[i + 2];
img_L[(i / 2) + 2] = img_T[i + 1];
img_L[(i / 2) + 3] = img_T[i + 0];
img_R[(i / 2) + 0] = img_T[i + 7];
img_R[(i / 2) + 1] = img_T[i + 6];
img_R[(i / 2) + 2] = img_T[i + 5];
img_R[(i / 2) + 3] = img_T[i + 4];
}
mtx.lock();
memcpy(img_L_T + (frame_count * c_width * c_height), img_L, c_width * c_height);
memcpy(img_R_T + (frame_count * c_width * c_height), img_R, c_width * c_height);
frame_count++;
mtx.unlock();
}
}
设置较低的分辨率
比如固定跳过一帧获取一帧