вф1 0 Жалоба Опубликовано September 9, 2011 Что-то я не врублюсь никак где затык. Т.е. всё рисует, строб в виде эллипса рисует, но например во внешнем редакторе выдираешь ту часть которая в стробе, перемещаешь, сохраняешь, программа картинку обновляет а строб где стоял там и стоит. Т.е. собственно шифтинг почему-то не работает Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
вф1 0 Жалоба Опубликовано September 9, 2011 Что-то я не врублюсь никак где затык. Т.е. всё рисует, строб в виде эллипса рисует, но например во внешнем редакторе выдираешь ту часть которая в стробе, перемещаешь, сохраняешь, программа картинку обновляет а строб где стоял там и стоит. Т.е. собственно шифтинг почему-то не работает если надо текст программы могу привести (см вложение)Text file.txt Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
вф1 0 Жалоба Опубликовано September 11, 2011 что, никто никогда не пробовал сделать подобного-не надо было? Хотя бы ради прикола попробуйте. lkdemo кстати тоже не работает с картинками. То есть, конкретно-картинки перерисовываются, а точки где стояли-там и стоят. Вот хоть убейте не понимаю в чем разница с ави/потоком с камеры. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 11, 2011 Это я бы вынес из цикла. Пожалейте HDD . И еще goto считается очень плохим тоном программирования, юзайте лучше while или for. label1: image1 = cvLoadImage( "lena.jpg", 1 ); if (image1==NULL) goto label1; cvNamedWindow( "source", 1 ); cvSetMouseCallback( "source", on_mouse, 0 ); //cvCreateTrackbar( "Vmin", "source", &vmin, 256, 0 ); //cvCreateTrackbar( "Vmax", "source", &vmax, 256, 0 ); //cvCreateTrackbar( "Smin", "source", &smin, 256, 0 ); if (!image) { image = cvCreateImage( cvGetSize(image1), 8,3 ); image->origin = image1->origin; hsv = cvCreateImage( cvGetSize(image1), 8,3); // hue = cvCreateImage( cvGetSize(image1), 8, 1 ); mask = cvCreateImage( cvGetSize(image1), 8, 1 ); backproject = cvCreateImage( cvGetSize(image1), 8, 1 ); hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 ); histimg = cvCreateImage( cvSize(320,200), 8, 3 ); cvZero( histimg ); } [/code] и это в конец программы: [code] cvReleaseImage(&image1); cvReleaseImage(&image); cvReleaseImage(&hue); cvReleaseImage(&hsv); cvReleaseImage(&backproject); Еще попробуйте посмотреть значения selection,mask, и backproject. Или загрузите AVI под отладчиком и прогоните покадрово, все станет понятно. И еще посмотрите (я не уверен), у Вас if (!image), а cvReleaseImage(&image); точно обнуляет указатель? Я обычно для верности еще делаю image=0; Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
вф1 0 Жалоба Опубликовано September 11, 2011 я пробовал и со стандартными вариантами программы camshift и/или lkdemo не работают они для jpegoв. Достаточно выкинуть считывание с камеры/ави и заменить его на cvLoadImage. Перерисовка кадра будет,а работа со слежением-не будет Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано September 12, 2011 я пробовал и со стандартными вариантами программы camshift и/или lkdemo не работают они для jpegoв. Достаточно выкинуть считывание с камеры/ави и заменить его на cvLoadImage. Перерисовка кадра будет,а работа со слежением-не будет вестимо потому, что нужно несколько кадров? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах