L@MER 6 Жалоба Опубликовано April 5, 2011 Может русские буквы и пробелы в названиях директорий мешают? Переместил проект в корень (также исключил русские буквы и пробелы) - таже ерунда... Да и использовал тот код который написан выше в вашем проекте - все функции, которые относятся к opencv компилятор пропустил а вот две относящиеся к библиотеке myCV снова забраковал - ошибки те-же что и описаны выше. Библиотека эта состоит из двух файлов h и cpp соответственно. В общем засада какая то... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 5, 2011 Переместил проект в корень (также исключил русские буквы и пробелы) - таже ерунда... Да и использовал тот код который написан выше в вашем проекте - все функции, которые относятся к opencv компилятор пропустил а вот две относящиеся к библиотеке myCV снова забраковал - ошибки те-же что и описаны выше. Библиотека эта состоит из двух файлов h и cpp соответственно. В общем засада какая то... А myCV.CPP-шный файл к проекту подключен? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
L@MER 6 Жалоба Опубликовано April 5, 2011 А myCV.CPP-шный файл к проекту подключен? Спасибо за ответы. Это я натуральный блин сегодня ламер, короче я уже до этого поста догадался, что я чего-то недоделываю (давно к теме компзрения не касался) и ТОЧНО, вы совершенно правы - подключил библиотеку myCV и openCV через ADD Library в билдере и все в моем проекте заработало и завертелося! Еще раз спасибо и звиняйте что такой ерундой мозг сносил и себе и вам Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Halloween 0 Жалоба Опубликовано April 24, 2011 Воспользовался следующей морфологией,но потери слишком большие,как их можно уменьшить: //cvDilate() #include "stdafx.h" #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> #define CV_SHAPE_ELLIPSE 1 IplImage* image = 0; IplImage* dst = 0; IplImage* dilate = 0; int radius = 1; int radius_max=10; // // функция-обработчик ползунка - // радиус ядра void myTrackbarRadius(int pos) { radius = pos; } int iterations = 1; int iterations_max = 10; // // функция-обработчик ползунка - // число итераций void myTrackbarIterations(int pos) { radius = pos; } int main(int argc, char* argv[]) { IplImage* image = cvLoadImage("d:\\test.bmp", 1); // клонируем картинку dst = cvCloneImage(image); dilate = cvCloneImage(image); // окно для отображения картинки cvNamedWindow("original",CV_WINDOW_AUTOSIZE); cvNamedWindow("dilate",CV_WINDOW_AUTOSIZE); cvCreateTrackbar("Radius", "original", &radius, radius_max, myTrackbarRadius); cvCreateTrackbar("Iterations", "original", &iterations, iterations_max, myTrackbarIterations); while(1){ // показываем картинку cvShowImage("original",image); // создаём ядро IplConvKernel* Kern = cvCreateStructuringElementEx(radius+1, radius+1, radius, radius, CV_SHAPE_ELLIPSE); // выполняем преобразования cvDilate(image, dilate, Kern, iterations); // показываем результат cvShowImage("dilate",dilate); //cvSaveImage("dilate.jpg", dilate); cvReleaseStructuringElement(&Kern); char c = cvWaitKey(33); if (c == 27) { // если нажата ESC - выходим cvSaveImage("dilate.jpg", dilate); break; } } // освобождаем ресурсы cvReleaseImage(&image); cvReleaseImage(&dst); cvReleaseImage(&dilate); // удаляем окно cvDestroyWindow("original"); cvDestroyWindow("dilate"); return 0; } Пробовал на изображении: test.bmp потери большие... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Halloween 0 Жалоба Опубликовано May 3, 2011 Доработал свою программу.Результатом удовлетворен на все 100! Особая благодарность Nuzhny,направил на путь истины!Большущее тебе спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано May 4, 2011 выложите код, интересно посмотреть. какие то ограничения есть? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Tsi329 0 Жалоба Опубликовано May 23, 2011 Спасибо за ответы. Это я натуральный блин сегодня ламер, короче я уже до этого поста догадался, что я чего-то недоделываю (давно к теме компзрения не касался) и ТОЧНО, вы совершенно правы - подключил библиотеку myCV и openCV через ADD Library в билдере и все в моем проекте заработало и завертелося! Еще раз спасибо и звиняйте что такой ерундой мозг сносил и себе и вам Выложи плиз конечный готовый проект как для примера(со всеми хедерами и библиотеками). Мне уж очень необходимо из билдера достучаться до opencv 2.1 или 2.2. Заранее спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано June 26, 2011 Много уважаемые форумчане, достаточно долго я искал, как мне сопрячь мой Builder c++ и библиотеку openCV, пересмотрел кучу материалов, и все сходятся примерно в одном и том же мелкой корректировке хидер-файлов, и переводе либов в понятные билдеру, нельзя ли как-нибудь автоматизировать данный процесс , по скольку и новичку въехать в установку достаточно сложно, да и не новичку придётся не мало потратить времени. Как бы я бы и сам мог бы приступить к ваянию архивов с установочными батниками, если бы разобрался более подробнее в данном материале. В общем хотелось бы увидеть подробную инструкцию по установки библиотеки под билдер. Заранее всем благодарен! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано June 26, 2011 lib файлы компилировать нужно в MSVS, затем нужно их сконвертировать в понятный для билдера формат тулзой COFF2OMF. "Мелкая" корректировка проводится так: label1: Пытаемся компилировать проект; if(Получаем сообщения об ошибках){ Исправляем ; }else{goto Enjoy; } goto label1; Enjoy:[/code] Ошибки, в основном, возникают из-за разной интерпретации шаблонов. Бороться с ошибками можно по аналогии с тем, как я сделал для версии 2.1 В теме по HMM на второй странице. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davian 0 Жалоба Опубликовано July 27, 2011 Всем привет! У кого есть дистрибутив или инстркция по установке OpenCV на С++ Builder 2010. Я видел тему по установке на C++ Builder 6, но не получается перенести его на 2010... В прикрепленном архиве проект для C++ builder 2007. Я его так и не смог запустить..TestOCV.rar Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 27, 2011 Я уже давно слез с билдера и перешел на студию. Чего и Вам советую. Что касается запуска opencv на борландовских компиляторах, то на форуме лежали заголовочные файлы для версии 2.2. Да и тема с запуском под 2007-2009 БДС была, посмотрите здесь. Я запускал по той же методике что и для билдера 6. При компиляции в билдере, в основном возникают проблемы с шаблонами. Исправление не сложное, но очень объемное. Плюс скорее всего в билдере не будет поддержки CUDA, хотя в этом не уверен. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davian 0 Жалоба Опубликовано July 28, 2011 Я уже давно слез с билдера и перешел на студию. Чего и Вам советую. Что касается запуска opencv на борландовских компиляторах, то на форуме лежали заголовочные файлы для версии 2.2. Да и тема с запуском под 2007-2009 БДС была, посмотрите здесь. Я запускал по той же методике что и для билдера 6. При компиляции в билдере, в основном возникают проблемы с шаблонами. Исправление не сложное, но очень объемное. Плюс скорее всего в билдере не будет поддержки CUDA, хотя в этом не уверен. Что ж... Именно так я и сделаю... на следующем проекте. Если честно достал Багланд со своими глюками... Одни утечки памяти чего стоят... Но все таки надо доделать текущий проект, который практически закончен на Buildere... Кстати, попутный вопрос (а то может я зря парюсь). Возможно ли в openCV работать с 16-битным монохромным RAW, и изменять ему яркость и контрастность (мне больше ничего не надо отттуда) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано July 28, 2011 Какие-то проблемы с 16-битным монохромным RAW у меня были, но точно не вспомню на каких функциях. То ли Лапласиан не хотел считать, то ли ещё что-то. Я думаю, что такие вещи гораздо проще сделать самому, посмотрев исходники OpenCV. Алгоритм просто: строится гистограма, по ней look up table и меняется значение каждого пикселя. Проблем с настройкой OpenCV будет больше. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davian 0 Жалоба Опубликовано July 29, 2011 Алгоритм просто: строится гистограма, по ней look up table и меняется значение каждого пикселя. Проблем с настройкой OpenCV будет больше. Пример в студию. Дело в том, что я, видимо, чего-то в этом деле не понимаю. У меня алгоритм такой: (по яркости) к исходному raw буферу (массив short) к каждому пикселю прибавляется значение яркости. Далее этот массив урезается до 8 бит. Далее уже 8-битные значения попиксельно превращаются в TBitmap, затем все это дело уже помещается в элемент отображения... И так каждый шаг. По контрастности еще сложнее... HELP кто может подсказать решение.... Что касается LUT, то тут хотелось бы поподробнее услышать. Я плохо себе представляю, как их использовать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано July 29, 2011 Запусти пример demhist из OpenCV. Всё станет ясно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано August 24, 2011 Ребят, а вы могли бы подготовить какой-нибудь автоматический установщик OpenCV 2.0 для Builder C++ 6.0, чтобы не париться с его установкой, как не пробовал его поставить для захвата видео изображения с веб камеры, ни как не выходит. Заранее благодарен!!! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 25, 2011 Да здесь собственно и установки никакой нет. Подключайте либы, dll в директорию с программой, пропишите путь к заголовочникам. Правленные файлы прилагаются. Править для последних версий мне очень лень, пересел на MSVS.Dlls2_0.rarinclude2_0.rarlibs2_0bcb.rarsimple2_0.rar Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано August 25, 2011 Э-э-э-э-э ну тогда у меня не получется пример собрать, позже подробнее опишу проблему... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано August 25, 2011 при сборки примера оно всё компилируется,но при запуске приложение получаю "Ошибка при инициализации приложения (0х0150002). Для выхода из приложения нажмите "ОК". "; понятное дело вылазит в строчке Application->CreateForm(__classid(TForm1), &Form1); но при первом изучении текста криейта там нет, из-за чего это может быть??? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 25, 2011 при сборки примера оно всё компилируется,но при запуске приложение получаю "Ошибка при инициализации приложения (0х0150002). Для выхода из приложения нажмите "ОК". "; понятное дело вылазит в строчке Application->CreateForm(__classid(TForm1), &Form1); но при первом изучении текста криейта там нет, из-за чего это может быть??? надо установить MSVCR. Вроде 2005, но может и 2008. Не помню точно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано August 25, 2011 устанока Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package ATL Security Update ничего не дала ща попробую 2008 если найду Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано August 25, 2011 перезагрузить комп еще нужно после установки. Не нужно его искать: msvcrt2008: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29 msvcrt2005: http://www.microsoft.com/download/en/details.aspx?id=3387 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано January 11, 2012 Ребята, с талкивались с такой проблемой: втавляю два одинаковых устройства , а сигнал он берёт только почему-то от одного из любых двух устройств (хотя раньше забирал с двух устройств одновременно) :-\ capture = cvCaptureFromCAM(0 ); capture1 = cvCaptureFromCAM(1 ); // причём если добавить capture2 = cvCaptureFromCAM(2); и так далее, ещё находятся какие-то устройства, некоторые элементы равны значению NULL (ну по всей видимости их нет просто), .... if( capture ) { if( !cvGrabFrame( capture )) goto skip; frame = cvRetrieveFrame( capture ); if( !frame ) goto skip; if( !frame_copy ) frame_copy = cvCreateImage( cvSize(frame->width ,frame->height), IPL_DEPTH_8U, frame->nChannels ); if( frame->origin == IPL_ORIGIN_TL ) cvCopy( frame, frame_copy, 0 ); else cvFlip( frame , frame_copy, 0 ); ProcessFrame( frame_copy,1 ); } if( capture1 ) { if( !cvGrabFrame( capture1 )) goto skip; frame = cvRetrieveFrame( capture1 ); if( !frame ) goto skip; if( !frame_copy ) frame_copy = cvCreateImage( cvSize(frame->width,frame->height), IPL_DEPTH_8U, frame->nChannels ); if( frame->origin == IPL_ORIGIN_TL ) cvCopy( frame, frame_copy, 0 ); else cvFlip( frame, frame_copy, 0 ); ProcessFrame( frame_copy,2 ); } Где собака здесь зарыта ??? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 11, 2012 Можно попробовать frame_copy1 и frame_copy2 ввести. Может быть он перезаписывает кадр. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
rus.punk 0 Жалоба Опубликовано January 11, 2012 Мне кажется, что это проблема где-то в определении устройств : capture = cvCaptureFromCAM(0); capture1 = cvCaptureFromCAM(1); , вероятно толи не теуказатели получаю, толи их не так как-то получаю :-\ Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах