Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2015, 09:57   #1
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
Сообщение Определить число квадратов на рисунке (delphi)

Народ помогите с заданием
В заданном графическом файле содержится рисунок с некоторым количеством черных квадратов. Известна следующая информация.
1. Размер каждого квадрата – 20 на 20 пикселей.
2. Расположение квадратов носит псевдослучайный характер.
3. При добавлении очередного (кроме первого) квадрата выполнялось условие: расположение должно быть выбрано так, чтобы площадь пересечения с уже существующими квадратами не превосходила 30% от площади располагаемого квадрата (120 пикселей).
4. Изображение может содержать искажения и шумы.

Задача

как можно точнее определить число квадратов на рисунке.
Изображения
Тип файла: jpg task1.jpg (18.0 Кб, 121 просмотров)

Последний раз редактировалось OTGB; 06.05.2015 в 10:08.
OTGB вне форума Ответить с цитированием
Старый 06.05.2015, 10:12   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Что вы ещё сделали кроме того как написать пост на форуме?
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2015, 10:44   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как можно точнее определить
Ну первое что пришло в голову - посчитать площадь фона и разделить на площадь одного квадрата. Только вот с интерференцирующимися придется чет дополнительно решать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2015, 11:02   #4
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

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

Но я так понял вам нужно на дельфи. тут фиг знает, единственно что быстро приходит на ум, это сделать "карту" белых и не белых пикселей. т.е где черный пиксель там 1 где не черный там 0

должно получится что то вроде этого:

Код:
000000000000000
000001111100000
000001111100000
000001111100000
000000000000000
думаю стоит попробовать без шумов для начала, потом с шумами но применяя так же разнообразные фильтры. либо средствами дельфи либо сторонними утилитами
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 06.05.2015, 12:55   #5
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

что такое OPENCV для непросвещённых?)
OTGB вне форума Ответить с цитированием
Старый 06.05.2015, 12:57   #6
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков[2]. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.
взято отсюда

для визуальной оценки гляньте это:

http://www.youtube.com/watch?v=dLE1jKNPgqM что первое попалось, считает объекты используя поиск по контурам

а это гляньте может "захватит" вас http://www.youtube.com/watch?v=ARIZzcE11Es для изучения=)
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 06.05.2015 в 13:02.
Stanislav вне форума Ответить с цитированием
Старый 06.05.2015, 13:02   #7
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Что вы ещё сделали кроме того как написать пост на форуме?
ну если честно нет,поэтому и написал сюда ибо для меня это сложно.
OTGB вне форума Ответить с цитированием
Старый 06.05.2015, 13:04   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

https://ru.wikipedia.org/wiki/OpenCV
Короче распознаватель картинок.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2015, 13:05   #9
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от OTGB Посмотреть сообщение
ну если честно нет,поэтому и написал сюда ибо для меня это сложно.
я вам дал два варианта, подобные вопросы они никогда не были простыми, вам придется много чего изучить
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 06.05.2015, 13:07   #10
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
https://ru.wikipedia.org/wiki/OpenCV
Короче распознаватель картинок.
как то грубовато=) это лучшая библиотека по компьютерному зрению, и единственная в своем роде. если и есть аналоги то они рядом не встанут. кстати она работает не только с картинками но и с видео файлами. либо с видео потоком. (хотя последние это тоже будут картинки только их будет порядка 20 - 30 штук в сек - зависит от настроек камеры и fps которое вы зададите) *

* - мое примечания
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 06.05.2015 в 13:11.
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, представимо ли число в виде суммы трех квадратов Draurign Помощь студентам 8 15.08.2012 19:00
Как определить количество цветов в подгружаемом рисунке и наиболее частые цвета Dezzit C# (си шарп) 1 04.05.2012 20:12
Циклы (разложить число в ряд суммы квадратов) Horatii Паскаль, Turbo Pascal, PascalABC.NET 8 08.10.2011 11:57
число, как сумма квадратов Neitrosha Помощь студентам 4 21.12.2010 19:03
число в виде суммы квадратов натуральных чисел gambuz Паскаль, Turbo Pascal, PascalABC.NET 0 04.10.2010 11:07