为什么cv :: gpu :: GaussianBlur比cv :: GaussianBlur慢?

时间:2013-02-23 01:18:58

标签: c++ opencv cuda gpu

我不是C ++,OpenCV和CUDA的专家,也不明白为什么

cv::gpu::warpPerspective(g_mask, g_frame, warp_matrix, g_frame.size(), 
    cv::INTER_LINEAR, cv::BORDER_CONSTANT, cv::Scalar(255,255,255));
cv::gpu::GaussianBlur(g_frame, g_frame, cv::Size(blur_radius, blur_radius), 0);
g_frame.download(mask);

cv::gpu::warpPerspective(g_mask, g_frame, warp_matrix, g_frame.size(), 
    cv::INTER_LINEAR, cv::BORDER_CONSTANT, cv::Scalar(255,255,255));
g_frame.download(mask);
cv::GaussianBlur(mask, mask, cv::Size(blur_radius, blur_radius), 0);

告诉我,为什么会这样?或者我写错了代码?

1 个答案:

答案 0 :(得分:1)

GPU对GPU的开销通常是罪魁祸首。您应该考虑使用cv :: Stream接口来最小化开销。