m_capture->grab();
m_capture->retrieve( m_image, CV_CAP_OPENNI_GRAY_IMAGE );
}
- else
+ else*/
{
- (*m_capture) >> m_image;
- }
+ cv::Mat m_image;
- if(threaded)
- {
- QFutureWatcher<uint> *watcher = new QFutureWatcher<uint>();
- connect(watcher,SIGNAL(finished()),this,SLOT(imageGrabCompleted()));
+ *(shared->m_capture) >> m_image;
- QFuture<uint> future = QtConcurrent::run(this, &OpenCvLuxPlugin::evalImage, m_image);
- watcher->setFuture(future);
+ uint lux = evalImage(m_image,shared);
+
+ shared->parent->updateProperty(lux);
}
- else
- {
- uint lux = evalImage(m_image);
- updateProperty(lux);
+ if(shared->mRequests.size())
+ {
+ return true;
}
+ delete shared->m_capture;
+ shared->m_capture = NULL;
+ return false;
+
}
- uint OpenCvLuxPlugin::evalImage(cv::Mat qImg)
+ static uint evalImage(cv::Mat qImg, OpenCvLuxPlugin::Shared *shared)
{
-#ifdef OPENCL
cv::Scalar avgPixelIntensity;
- cv::Scalar stdDev;
- cv::ocl::meanStdDev(qImg, avgPixelIntensity, stdDev);
-#else
- cv::Scalar avgPixelIntensity = cv::mean(qImg);
+
+ if(useOpenCl)
+ {
+#ifdef OPENCL
+ cv::Scalar stdDev;
+ cv::ocl::meanStdDev(qImg, avgPixelIntensity, stdDev);
#endif
+ }
+ else
+ {
+ cv::Scalar avgPixelIntensity = cv::mean(qImg);
+ }
+
double val = avgPixelIntensity.val[0];