Перейти к содержимому
Compvision.ru

mell

Пользователи
  • Количество публикаций

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем mell


  1. Всем привет!

    Использую связку qt + vs2010 + QT

    Вывожу видео с камеры кинекта на форму(испольую таймер) и имею след. проблему:

    Видео на форме играется только тогда, когда оно параллельно выводится в окно opencv, если его не выводить cv::imshow("dd", view); то программа просто зависает

    причем не ему все равно что выводить, например на форме rgb, то в окошко можно вывести хоть карту глубины.

    В прошлой программе я выводил на форму 4 видео, три из них работали нормально, а четвертому тоже необхожимо было вводить еще и в окно , иначе на форме не показывало ничего.

    Ваши идеи, в чем проблема?

    Я предполагаю что что то с таймером, но черт его знает

    
    if (capture.isOpened()==true)
    
    		{
    
    			capture.grab();
    
    			capture.retrieve( depth_mat, CV_CAP_OPENNI_DEPTH_MAP );
    
    			capture.retrieve( bgr_mat, CV_CAP_OPENNI_BGR_IMAGE);
    
    			capture.retrieve(world, CV_CAP_OPENNI_POINT_CLOUD_MAP);
    
    			double min_val, max_val;
    
    			cv::minMaxIdx(depth_mat, &min_val, &max_val);
    
    			double scale=255/max_val;
    
    			depth_mat*=scale;
    
    			view=depth_mat;	
    
    
    
                            cv::imshow("dd", view);
    
    
    		}
    
        key=cv::waitKey(50);
    
    	}
    
    	capture.release();
    
    
    
    

    или imshow прерывает цикл как то? или из за key=cv::waitKey(50), вообщем не знаю


  2. и что это значит?

    можно просто пройтись по контурам и посмотреть их длину и кол-во или посчитать несколько простых моментов.

    Там вообщем есть площадка, где рука человеческая ходит 10 на 400 точек, я должен ее положение определять, когда человек руку в ящик засунет, но нужна опция, которая позволит человеку дать время на "подумать" тоесть если он просто рукой водит перед ящиками, как бы выбирая, в какой засунуть (ищет что нибудь).

    А если он например больше секунды не двигал, то этот этот контур считать действительным.

    Длина будет одинаковая приммерно


  3. Добрый день!

    Имеется следующая задача:

    на двух изображениях, с интервалом в секунду находятся контуры:

    findContours( gebiet, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );

    Sleep(1000);

    findContours( gebiet, contours2, hierarchy2, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );

    Вопрос следующий:

    Можно ли как нибудь быстро и просто сравнить массивы найденных контуров contours и contours2.

    Если они отличаются например на 10-20 процентов то сигнал есть.

    Если равны, то сигнала нет.

    Перебрать моменты каждого контура в каждом массиве и потом анализировать нет возможности да и это превосходит мою задачу, мне просто нужно знать отличаются сильно, не сильно или вообще не отличаются


  4. Добрый день!

    Подскажите пожалуйста, я измеряю расстояние до объекта с помощью кинекта.

    Сейчас делаю так:

    забираю расстояние тупо с одного пикселя на матрице кинекта (640 на 480)

    Беру из точки (240 на 320) , то есть с середины.

    Проблема такая:

    - иногда может быть ложное срабатывание, шум на точке

    - иногда объект маленький и световой луч проходит рядом, соответственно

    Соответственно хотелось бы брать некое облако точек, небольшой квадратик размером например 15 на 15 точек и смотреть его, как это сказать, некую среднюю глубину.

    Вот здесь статья, про интегральное изображение.

    http://robocraft.ru/blog/computervision/536.html

    Используется для быстрого вычисления яркости заданных участков.

    Если что то похожее для вычисления глубины заданного участка для кинекта.

    Спасибо.

×