gpt4 book ai didi

opencv - GpuMat 上传小图片太慢

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:34 24 4
gpt4 key购买 nike

我想将图像上传到以下变量 gpu::GpuMat test;。首先将输入图像 (src) 转换为灰度图像 cvtColor( src, src_gray, COLOR_BGR2GRAY ); 然后上传 test.upload(src_gray); .不幸的是,上传花了很多时间。超过两分钟。图像尺寸为 169x90。我知道由于带宽的原因通常会有一些延迟,但我认为对于这么小的图像来说两分钟太多了。最后,我想提一下,在上传第一张图片后,下一张图片的上传几乎是即时的。有什么初始化程序吗?我们可以改善这种延迟吗?

int main( int, char** argv )
{
/// Load source image and convert it to gray
string filename = argv[1] ;//"yourfile.avi";
VideoCapture capture(filename);
if( !capture.isOpened() )
throw "Error when reading steam_avi";

int framenumber=1;
Mat src, src_gray;
gpu::GpuMat test;

namedWindow( "w", 1);
time_t start,end;
time (&start);
for( ; ; )
{
//printf("Frame %d: \n", framenumber++ );
capture >> src;

cvtColor( src, src_gray, COLOR_BGR2GRAY );

test.upload(src_gray);//it takes too long even for an image of 169x90
if( src_gray.empty() )
break;
imshow("w", src_gray);



waitKey(20); // waits to display frame

}
time (&end);
double dif = difftime (end,start);
printf ("Elasped time is %.2lf seconds.", dif );
getchar();

return(0);
}

enter image description here

使用 --memory=pageable 参数。

PS:Win 7 64x,CUDA SDK 5.5,Opencv 2.4.6,GeForce 9600。

最佳答案

由于 CUDA 上下文初始化,任何 gpu 函数的第一次调用都很慢。所有接下来的电话都会更快。在时间测量之前调用一些 gpu 函数:

gpu::GpuMat test;
test.create(1, 1, CV_8U); // Just to initialize context
time(&start);
...
time(&end);

关于opencv - GpuMat 上传小图片太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19454373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com