我正在研究在opencv中对某些图像应用meanshift的项目,经过四到五次尝试后,我收到此错误,我尝试了诸如关闭配置之类的操作,等等,但是它们都不起作用。任何帮助感激它。我的opencv 2.4.9和我的图形购物车是NVIDIA GeForce 310。
OpenCV Error: Gpu API call (CL_INVALID_COMMAND_QUEUE) in openCLMemcpy2D, file /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140617-1410/modules/ocl/src/cl_operations.cpp, line 227
[ERROR] [1405642960.704963701]: Exception thrown while processing service call: /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140617-1410/modules/ocl/src/cl_operations.cpp:227: error: (-217) CL_INVALID_COMMAND_QUEUE in function openCLMemcpy2D
[ERROR] [1405642960.705466283]: Service call failed: service [/jur_segmentation_interaction] responded with an error: /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140617-1410/modules/ocl/src/cl_operations.cpp:227: error: (-217) CL_INVALID_COMMAND_QUEUE in function openCLMemcpy2D
=================>代码
/// Applying MeanShift
cv::ocl::oclMat ocl_image;
cv::Mat res_mean;
// Converting to CV_8UC4
cv::Mat _img_conv;
cvtColor( _img , _img_conv , CV_BGR2BGRA );
ocl_image.upload(_img_conv.clone());
cv::ocl::meanShiftSegmentation( ocl_image.clone() , res_mean , _sp , _sr , _mean_size );
//cv::ocl::finish();
====================> opencl配置:
cv::ocl::DevicesInfo dev_info;
cv::ocl::getOpenCLDevices( dev_info );
/// Platform Info
cv::ocl::PlatformsInfo plat_info;
cv::ocl::getOpenCLPlatforms( plat_info );
cv::ocl::setDevice( dev_info[0] );
最佳答案
有时在单独的线程中调用代码时发生。
关于opencv - CL_INVALID_COMMAND_QUEUE opencl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24815608/