void displayImage(const char* windowName, const cv::Mat& image, bool autoSize) { if(useImageDisplayThread) { if(imageDisplayThread == 0) makeDisplayThread(); boost::unique_lock<boost::mutex> lock(openCVdisplayMutex); displayQueue.push_back(DisplayImageObect()); displayQueue.back().autoSize = autoSize; displayQueue.back().img = image.clone(); displayQueue.back().name = windowName; openCVdisplaySignal.notify_one(); } else { if(!autoSize) { if(openWindows.find(windowName) == openWindows.end()) { cv::namedWindow(windowName, cv::WINDOW_NORMAL); cv::resizeWindow(windowName, image.cols, image.rows); openWindows.insert(windowName); } } cv::imshow(windowName, image); } //cv::waitKey(1); }
void displayImage(const char* windowName, const cv::Mat& image, bool autoSize) { // ASMOD - use qt return; if(useImageDisplayThread) //default true { if(imageDisplayThread == 0) makeDisplayThread(); boost::unique_lock<boost::mutex> lock(openCVdisplayMutex); displayQueue.push_back(DisplayImageObect()); displayQueue.back().autoSize = autoSize; displayQueue.back().img = image.clone(); displayQueue.back().name = windowName; openCVdisplaySignal.notify_one(); } else { if(!autoSize) { if(openWindows.find(windowName) == openWindows.end()) { cv::namedWindow(windowName, cv::WINDOW_NORMAL); cv::resizeWindow(windowName, image.cols, image.rows); openWindows.insert(windowName); } } // ASDISPLAY cv::imshow(windowName, image); // AS - added 3 lines below //cv::waitKey(5); //cv::namedWindow("Lalala", CV_WINDOW_AUTOSIZE); //cv::imshow("Lalala", image); } //cv::waitKey(1); }
void displayImage(const char* windowName, const cv::Mat& image, bool autoSize) { if( useImageDisplayThread ) { // Если поток еще небыл запущен if(imageDisplayThread == 0) // Запустить поток makeDisplayThread(); // Заблокировать доступ к данным boost::unique_lock<boost::mutex> lock(openCVdisplayMutex); // Добавить новый экземпляра объекта изображения displayQueue.push_back( DisplayImageObect() ); // Установить прпаметры нового объекта displayQueue.back().autoSize = autoSize; displayQueue.back().img = image.clone(); displayQueue.back().name = windowName; // Если есть потоки, ожидающие расблокировки // Расблокируется один из ожидающих openCVdisplaySignal.notify_one(); } else { // Если параметр не установлен if(!autoSize) { if(openWindows.find(windowName) == openWindows.end()) { cv::namedWindow (windowName, cv::WINDOW_NORMAL); cv::resizeWindow(windowName, image.cols, image.rows); openWindows.insert(windowName); } } cv::imshow(windowName, image); } // cv::waitKey(1); }