2013-02-23 8 views
-1

내가 C++, OpenCV의와 CUDA에서 프로 아니에요, 그리고왜 cv :: gpu :: GaussianBlur가 cv :: GaussianBlur보다 속도가 느린 것입니까?

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

아마도 커널을 적용하는 매트릭스의 크기에 대한 추가 정보가 유용 할 수 있습니다. –

+1

CPU 및 GPU의 모델은 무엇입니까? – sgarizvi

+0

@Max 모두 매트는 동영상입니다. 속도는 크기에 좌우되지 않습니다. 해상도가 낮을수록 두 기능이 비례하여 더 빠르게 작동합니다. –

답변

1

일반적으로 GPU에 대한 IPC 오버 헤드가 원인입니다. 해당 오버 헤드를 최소화하기 위해 cv :: Stream 인터페이스 사용을 고려해야합니다.

관련 문제