Алгоритмы определения расфокусировки изображения?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.134] |
|
|
правила раздела Алгоритмы

| Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Алгоритмы определения расфокусировки изображения?
|
Сообщ.
#16
,
|
|
|
|
**чойто я не пойму, твой препод уже написал подобную программу или нет?
Нет, не написал, иначе зачем ему эту тему мне на диплом втюхивать? просто есть у меня подозрения, что хочет он... эээ, как бы сказать: "на чужом горбу в рай въехать"... НО видать я его разочаровала - сошлись на частичном решение задачи, т.е. не на построении системы технического зрения, а лишь на определении расфокусировки камеры. (по крайней мере на сегодняшний день) **что же касается того, чтобы эту программу написали за тебя, тут возникает ряд вопросов. *на каком языке? думаю на любом)) никто на дипломе в код не полезет)) *надо ли программно обращаться к камере или достаточно написать процедуру вроде function r(a: array[0..255, 0..255] of integer)? это мне и самой не понятно, но было сказано, что работаем токо с компом..."хотелось бы конечно, чтобы программа посылала сигнал камере на снятие контрольных изображений..." Сложно с ним общаться: сам он определиться видать со сложностью задачи не может; спрашиваю про параметры изображения, а в ответ ХЗ - сама выбери типа скоко шариков, какой фон... т.е. я говорит ничего не знаю, есть вот такая задача, а как ты ее реализовывать будешь твои проблемы... **и вообще, ты бы прислала образец фотографии поля зрения камеры, ведь оно может быть совсем не таким, как я его себе представляю, а от этого зависит способ решения. я просила его выслать мылом...но пока нет. Схожу в понедельник в универ - принесу. ****зы. я бы такие вещи не слал в приват, а писал прямо тут Думаешь просто сознаться всему народу, что ты тормоз? Лано, сознаюсь!!! Не знаю как все, но я с рождением ребенка отупела видимо...не покидает надежда, что это временно)) попытки въехать в ситуЁвину в перерывах между кормлениями, гуляниями, катаниями машинки и т.п. + вытуриванию с компа главного ГЕЙМЕРА - мужа пока никчему не привели(((( Поэтому: ЕСЛИ ЕСТЬ ЖЕЛАЮЩИЕ МНЕ ПОМОЧЬ - ОТЗОВИТЕСЬ!!!))) Татулька |
|
Сообщ.
#17
,
|
|
|
|
Но мы ведь точно не сможем
выяснить у препода, чего же он хочет. |
|
Сообщ.
#18
,
|
|
|
|
2татулька
насколько я понимаю, подобный проект должен быть направлен на практическое применение, а у тебя нет никаких аппаратных средств, чтобы проверять работоспособность программы. как вообще будет проходить сдача курсовой? без эксперимента не обойтись. тебе надо или поехать на этот гок, или купить веб-камеру и научиться к ней программно обращаться. добываешь кучу шариков, насыпаешь перед камерой и запускаешь программу. |
|
Сообщ.
#19
,
|
|
|
|
IMHO - не парься на счет работы с камерой. Займись алгоритмом, пусть он работает с последовательностью BMP файлов - для диплома этого достаточно. Главное что бы было что показать экзаминационной комиссии, ты ведь не собираешся на защиту конвеер с окатышами принести. Поэтому последовательности BMP им хватит за глаза и за уши. А на защите уже скажешь, что мол, разработанный алгоритм пригоден для обработки, в реальном времени, данных поступающих с видеокамеры.
Не гарантирую что это будет работать, но попробуй написать что то в этом роде. Я не знаю на чем ты собираешся писать программу, поэтому код достаточно абстрактный. // функция для оценки резкозти изображения long getContrast( CMyImage* img ) { long contrast=0; int x,y; // перебираем все точки изображения for(x=1; x<img->getWidth()-1; x++) for(y=1; y<img->getHeight()-1; y++) { long aY = img->Y(x,y); // яркость точки. если изображение цветное, // то нужно усреднить GRB компоненты. // суммируем отличия яркости текущей точки от яркости окружающих // если, мало ли, оценка окажется неэффективной, попробуй // суммировать квадраты разницы, а не модули. contrast += abs(img->Y(x-1,y) - Y); contrast += abs(img->Y(x+1,y) - Y); contrast += abs(img->Y(x,y+1) - Y); contrast += abs(img->Y(x,y-1) - Y); } } // В твоей программе будет функция, которая будет // обрабатывать поступающие кадры. Выглядеть она будет примерно так: void onNewFrame( CMyImage* img ) { // NORMAL_CONTRAST - константа. Значение функции getContrast(), // характерноедля сфокусированного изображения. // EPS - допустимое отклонение от нормы. if( abs( getContrast( img )-NORMAL_CONTRAST ) > EPS ) { stopConveer(); Alarm(); startSelfDestruction(); } } По большому счету это все что тебе нужно. Конечно остается много "мелочей" - загрузка BMP(или других файлов), вывод их на экран и т.п. Но все это уже на твое усмотрение. На счет тестирования. Твоему алгоритму в общем все равно с чем иметь дело, с окатышами, банками чёрной икры или пакетиками героина. Поэтому проверять можешь на любой картинке. Сделай небольшую последовательность картинок, на которой движеться что то более менее однородное. Потом, в фотошопе, размой эти кадры. И запусти программу, заменив пару кадров из исходной последовательности их размытыми эквивалентами. Если программа это заметит, то все в порядке, если нет, то попробуй поварьировать параметры (EPS например). И запомни, мы живем во время, когда упаковка важнее товара. Напиши хоть как то работающую программу, подготовь хороший отчет, и обяательно сделай красивые плакаты и хорошие раздаточные материалы. Для твоих преподавателей посмотреть "мультик" который ты им покажешь намного интерестнее, чем решенная тобой проблема . |
|
Сообщ.
#20
,
|
|
|
|
Всем здрасте!!
Сдавала госсы... У меня к вам вопрос, может мне кто помочь с написанием проги? Можно даже обсудить материальный аспект,...если альтруистов не найдеться... Надо определить произошла рассфокусировка изображения или нет.. и все, т.е. аппаратное управление камерой не требуется, обрабатываются файлы с уже отцифрованным изображением.. Татулька |
|
Сообщ.
#21
,
|
|
|
|
А препод предложил какой-то конкретный метод обработки ?
А то ведь как - потом, бывает, оказывается, что ему бы хотелось видеть что-то совсем-совсем другое... |
|
Сообщ.
#22
,
|
|
|
|
нет, не предложил...
сказала, что у меня уже нет времени - буду делать через Фурье))) не возражал |
|
Сообщ.
#23
,
|
|
|
|
ну так тебе надо определить размер окатышей или резкость?
если резкость, то фактически wintermute уже всё написал, и без всякого фурье. или тебе лучше на паскале? когда у тебя защита? |
|
Сообщ.
#24
,
|
|
|
|
Да и с фурье что за проблемы в интернете программ до фига (да и сам могу поделится)
Гистограмму это вооб ще не фиг делать. |
|
Сообщ.
#25
,
|
|
|
|
Защита у меня в июне..но еще оформлять)))
Гистаграммы может и фигня, но я, каюсь, не программировала года три - вообще))) тока не спрашивайте, как это я до пятого курса на радиофаке доучилась))) Татулька. |
|
Сообщ.
#26
,
|
|
|
|
Определить надо резкое изображение или нет...на размер окатышей уже точно забили)))
|
|
Сообщ.
#27
,
|
|
|
|
а в ответ тишина(((
|
|
Сообщ.
#28
,
|
|
|
|
а я-то думал, что надо создать искусственный интеллект..
ну тогда разбирайся в исходнике, присланном wintermute. кстати можно придумать ещё одно улучшение: нормировать резкость на разброс яркости (или её дисперсию). |