Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задача! Для умных и неочень!! Нужны идеи!!!

11K
27 января 2006 года
fantom1983
24 / / 21.10.2005
Здраствуйте многоуважаемый Умный Читатель!!!

У меня для твоего ума и фантазии есть одна интересная задачка!! Итак:

Есть рисунок NxM точек. Рисунок цветной. На этом рисунке есть К изображений (различной форми, цвета и размера), которые лежат в произвольном порядке. Нужно определить цвет фона в АВТОМАТИЧЕСКОМ порядке. Причем извесно что фон рисунка темнее за цвет изображения.

Принимаются любые идеи.

Жду результатов Ваших умственных трудов!!
406
27 января 2006 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by fantom1983
Здраствуйте многоуважаемый Умный Читатель!!!

У меня для твоего ума и фантазии есть одна интересная задачка!! Итак:

Есть рисунок NxM точек. Рисунок цветной. На этом рисунке есть К изображений (различной форми, цвета и размера), которые лежат в произвольном порядке. Нужно определить цвет фона в АВТОМАТИЧЕСКОМ порядке. Причем извесно что фон рисунка темнее за цвет изображения.

Принимаются любые идеи.

Жду результатов Ваших умственных трудов!!



Что то мне непонятна последняя фраза. Что значит "за цвет изображения"? Может это звучит как "чем цвет образов"?

11K
01 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by vitaly2003s
Что то мне непонятна последняя фраза. Что значит "за цвет изображения"? Может это звучит как "чем цвет образов"?



"чем цвет образов"? да так оно и должно быть, извините за акцент :)
А вот ещо пояснения:

Изображения (ну припустим это яблоки или клетки организма или просто какие-то пятна (это для большей очевидности)) ражмещены в произвольном порядке, тоисть могут быть рядом, могут быть на, а могут быть для онних рядом, а для других на. Ну одним словом произвол ).

Нужно определить цвет фона рисунка, тоисть на каком фоне эти изображения нарисованы (припустим на рисунке красно-жолто-зелено-... яблоки на синем фоне. результатом должен быть синий цвет.).

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

4.5K
07 февраля 2006 года
StranikS
44 / / 03.02.2005
Цитата:
Originally posted by fantom1983
"чем цвет образов"? да так оно и должно быть, извините за акцент :)
А вот ещо пояснения:

Изображения (ну припустим это яблоки или клетки организма или просто какие-то пятна (это для большей очевидности)) ражмещены в произвольном порядке, тоисть могут быть рядом, могут быть на, а могут быть для онних рядом, а для других на. Ну одним словом произвол ).

Нужно определить цвет фона рисунка, тоисть на каком фоне эти изображения нарисованы (припустим на рисунке красно-жолто-зелено-... яблоки на синем фоне. результатом должен быть синий цвет.).

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




Можно встречный вопрос для более ГЛУБОКО понимания задачи:
Если во всю картинку нарисована зад-ица, какой цвет фона должна выдать программа?8)

А теперь серъезно, возможна ли ситуация, когда объектов так много, что задний фон полностью закрыт (т.е. его нет) и что программа должна при этом выдавать пользователю?

241
08 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by fantom1983
Нужно определить цвет фона рисунка, тоисть на каком фоне эти изображения нарисованы (припустим на рисунке красно-жолто-зелено-... яблоки на синем фоне. результатом должен быть синий цвет.).



Имеем соотношение фигура-фон. Вообще оно может быть каким угодно, поэтому из него исходить трудно. Но мы будем считать, что оно не стремится к нулю или бесконечности, а лежит в пределах (0,2..5)и отлично от еиныцы.

По идее, фон должен отличаться равномерностью, то есть цвет должен иметь одно определённое значение плюс-минус какая-то допустимая дельта.

Дальше начинается самое интересное. Считаем количество уникальных цветов. Потом смотрим, как они распределяются. Условимся о tolerance, то есть о том, что мы считаем одним цветом. Так вот, смотрим на распределение, и если рядом стоящих писелей одного цвета оказывается больше, то автоматически считаем их фоном. Это из того соображения, что фон по площади больше фигуры.

11K
08 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by Sanila_san
Имеем соотношение фигура-фон. Вообще оно может быть каким угодно, поэтому из него исходить трудно. Но мы будем считать, что оно не стремится к нулю или бесконечности, а лежит в пределах (0,2..5)и отлично от еиныцы.

По идее, фон должен отличаться равномерностью, то есть цвет должен иметь одно определённое значение плюс-минус какая-то допустимая дельта.

Дальше начинается самое интересное. Считаем количество уникальных цветов. Потом смотрим, как они распределяются. Условимся о tolerance, то есть о том, что мы считаем одним цветом. Так вот, смотрим на распределение, и если рядом стоящих писелей одного цвета оказывается больше, то автоматически считаем их фоном. Это из того соображения, что фон по площади больше фигуры.


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

11K
08 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by StranikS
А теперь серъезно, возможна ли ситуация, когда объектов так много, что задний фон полностью закрыт (т.е. его нет) и что программа должна при этом выдавать пользователю?



Выдавать что фон опредилить невозможно :).
А если серъезно, то вероятность такой ситуации близка до 0 (Фон всеже гдето проскакивает).
если есть какието дельные предложения, то пиши обизательно проанализирую.

391
08 февраля 2006 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by fantom1983
Здраствуйте многоуважаемый Умный Читатель!!!

У меня для твоего ума и фантазии есть одна интересная задачка!! Итак:

Есть рисунок NxM точек. Рисунок цветной. На этом рисунке есть К изображений (различной форми, цвета и размера), которые лежат в произвольном порядке. Нужно определить цвет фона в АВТОМАТИЧЕСКОМ порядке. Причем извесно что фон рисунка темнее за цвет изображения.

Принимаются любые идеи.

Жду результатов Ваших умственных трудов!!


Ты же уже спрашивал. Сколько ж можно???

11K
09 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by Archie
Ты же уже спрашивал. Сколько ж можно???


Если ты не заметил, то я спрашивал в двух разных РАЗДЕЛАХ.

Одна голова хорошо, а две лутше.:!!!:

391
09 февраля 2006 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by fantom1983
Если ты не заметил, то я спрашивал в двух разных РАЗДЕЛАХ.

Одна голова хорошо, а две лутше.:!!!:


Ну и ты хоть одну из предложенных идей реализовал? Сравнил разные методы? Поделись тогда результатами ;)

11K
09 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by Archie
Ну и ты хоть одну из предложенных идей реализовал? Сравнил разные методы? Поделись тогда результатами ;)


Для уважаемого Archie отвечаю, я разсмотрел все (подчеркиваю) ВСЕ предложиные решения, и могу "авторитетно" ответить. Кехе-кехе(Прочистил горло перед виступлением).
Итак для разсмотрения были предложены следующие идеи:
№1 Автор Archie
Суть - Искать наиболее часто встречающийся цвет на рисунке.
+ работает в 75% рисунков.
- нужно перебирать все точки изображение (долго).
- фон должен быть больше сумарной площади изображений (нет 100% гарантии).
Результат тестов = крепкая троечка.
------------------------------------------

№2 Автор Archie
Суть - Разбивка изображения на полоски по +-5 точек и проходит проверка на наличии в ней точек одного цвета, если есть то записываэм в таблицу.Какой цвет встретится наибольшое число раз тот и фоновый.
+ работает в 79% рисунков.
- нужно перебирать все точки изображение ( очень долго).
- фон должен быть больше сумарной площади изображений (нет 100% гарантии).
Результат тестов = троечка.
------------------------------------------

№3 Автор Sanila_san
Суть - Перебор всех точек изображения. Если рядом стоящих писелей одного цвета оказывается больше, то автоматически считаем их фоном.
+ работает в 85% рисунков.
- нужно перебирать все точки изображение (долго).
- фон должен быть больше сумарной площади изображений (нет 100% гарантии).
- иногда за фон принимались изображения (вообще противоположный результат).
Результат тестов = слабенькое четыре.
------------------------------------------

№4 Автор StranikS
Суть - нет (написал здесь для моральной поддержки человека. Вопрос может ли возникнуть ситуация когда фона вообще небудет видно
+ работает в 0,00001% рисунков.
- ну нет здесь минусов :) (я серъозно.)
- нет есть ОНА НЕ РАБОТАЕТ.
Результат тестов = смотри % работоспособности (ели нашол нужную картинку).
------------------------------------------

№5 Автор fantom1983 (я старался быть к себе непридвзятым).
Суть - Перебор всех точек периметра изображения. Точек какова цвета больше, тот цвет автоматически считается фоном.
+ работает в 91% рисунков.
+ не нужно перебирать все точки изображение (быстро).
+ фон не должен быть больше сумарной площади изображений (выполняется одно из основных условий).
+ изображения должны лежать не на краях рисунка (нет 100% гарантии).
Результат тестов = крепкое четыре.


Р.С. Тесты проводились на фотографиях человеческих клеток. 20 рисунков. Реализована програма на Делфи 7.0.

Всеобщий итог :
- задачу не решили;
- идей катастрофически мало;
- разучились думать;

+ хоть что то но все же придумали.
+ надеюсь что то еще придумаем.

С уважением Юрий.
09.02.2006

4.5K
10 февраля 2006 года
StranikS
44 / / 03.02.2005
Цитата:
Originally posted by fantom1983

№4 Автор StranikS
Суть - нет (написал здесь для моральной поддержки человека. Вопрос может ли возникнуть ситуация когда фона вообще небудет видно
+ работает в 0,00001% рисунков.
- ну нет здесь минусов :) (я серъозно.)
- нет есть ОНА НЕ РАБОТАЕТ.
Результат тестов = смотри % работоспособности (ели нашол нужную картинку).
------------------------------------------



Насколько, я понял 0.0...1% означает, что ситуация с отсутствием фона "практически не возможна". Тогда я могу предложить свой метод (вот его и нужно поместить в список методов): распознавание образов нейронной сетью, с последующим исключение их из картинки => что останется, то и будет фоном. Этот метод в текущей задаче наиболее оптимален, так как все нарисованные предметы, насколько я понял, однотипны (яблоки, клетки и т.д.)!
Недостатком может быть то, что необходимо будет НС обучить, т.е. перед тем как обрабатывать заданные картинки например с яблоками, нужно будет сформировать одну или несколько (чем больше, тем меньше потом будет ошибок) картинок для обучения. Там будут те же яблоки, но НС по обучающему входу надо будет заранее задавать пиксели являющиеся фоном. После обучения НС готова к работе.
Если хочется, чтобы она одновременно работала с яблоками, клетками, бегемотами и т.д. без переобучения, то в обучающий набор надо будет включить все типы, иначе эффективность распознавания упадет (насколько, я конкретно сказать не смогу, все будет зависеть от конфигурации сети, ее вида ("мадалайн" - например), числа нейронов).
Отсюда вывод, понадобиться программа для формирования обучающих картинок или придется их распознавать вручную чтобы скормить потом НС для обучения.

Реализацию я здесь не рассматриваю, если интересно или есть вопросы, можешь написать я периодически сюда буду заглядывать, сейчас материала по НС много. Правда часто бывает, что пишут заумно, но здесь для реализации нужны только основы.

11K
10 февраля 2006 года
fantom1983
24 / / 21.10.2005
To: Originally posted by StranikS
Уважаемый StranikS основная задача это выделение и класыфикация клеток человека, эту задучу нужно решить без нейронных сетей, програма должна работать только на логических правилах без предворительного набора изображений, так что эта идея неподходит. Если тебе не трудно можеш дать инфу на нейро сети, мне нужно для описания существующих решений.
276
10 февраля 2006 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by fantom1983
Здраствуйте многоуважаемый Умный Читатель!!!

У меня для твоего ума и фантазии есть одна интересная задачка!! Итак:

Есть рисунок NxM точек. Рисунок цветной. На этом рисунке есть К изображений (различной форми, цвета и размера), которые лежат в произвольном порядке. Нужно определить цвет фона в АВТОМАТИЧЕСКОМ порядке. Причем [COLOR=red]извесно что фон рисунка темнее за цвет изображения.[/COLOR]

Принимаются любые идеи.

Жду результатов Ваших умственных трудов!!


А может ето ключевая фраза ???

11K
10 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by Rebbit
А может ето ключевая фраза ???


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

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
А вот такой вопрос. Какой цвет фона у российского флага? какие еще есть доп. условия?
11K
10 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by AndreySar
А вот такой вопрос. Какой цвет фона у российского флага? какие еще есть доп. условия?


Я даже незнаю как тебе ответить. У флага нет фона. Представь себе рисунки с каками я работаю, это фотографии сделаные на микроскопе человеческих органов, точнее фотки клеток они есть на фоне и каждий микроскоп дайот свой цвет фона + красители(для улутшения качества фоток). ну так вот нужно без вмешательства человека опредилить фон фоток.
Ну вроде обяснил.

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by fantom1983
Я даже незнаю как тебе ответить. У флага нет фона. Представь себе рисунки с каками я работаю, это фотографии сделаные на микроскопе человеческих органов, точнее фотки клеток они есть на фоне и каждий микроскоп дайот свой цвет фона + красители(для улутшения качества фоток). ну так вот нужно без вмешательства человека опредилить фон фоток.
Ну вроде обяснил.



Попробуй перебирать не все точки изображения, а часть, координаты точек определяй случайным образом. Если цвета изображения имееют нормальное распределение, то с некоторой вероятностью можно получить цвет фона.

276
10 февраля 2006 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by fantom1983
Ты прав это ключевая фраза, но нужно найти этот цвет, за минимальное число операций и некоторые точки могут быть намного темнее за цвет фона, так что нужно их откидать.


Как говорил один сатирик умножая 2 семизначних числа : "Я могу точно, но медленно, а могу бистро но неточно" :)
Тогда я предлагаю Брать из картинки виборочно некоторие точки. Скажем сделать сетку с определенним шагом. (Ето для скорости) Считать количество Точек каждого встретившегося цвета. Потом взять те что будут темнее других (на тот случай если фона меньше чем 50% а само изображение достаточно светлое), а среди них вибрать тот какого наибольше. Но ето все приблизительно.

4.5K
10 февраля 2006 года
StranikS
44 / / 03.02.2005
Хорошо, неподходит НС, тогда будем действовать по правилам. Предлагаю такую модификацию:

Берем первую строку пикселей и перебираем ее, находя самый светлый пиксел C и самый темный в строке T. Затем инвертируем brightness С. После этого пробегаем строку в обратной последовательности и запоминаем цвета всех пикселей, brightness которых лежит в интервале [brightness(Т)...Invert(brightness(C))], или [Invert(brightness(C))...brightness(Т)], смотря кто больше кого получиться. Теперь повторяем этот алгоритм для остальных строк и получаем полную выборку со всего рисунка. Остается подсчитать кол-во пикселей каждого цвета в выборке и выбрать наибольшее число - эти пиксели будут соотв. фону
2.4K
11 февраля 2006 года
dinasok51
219 / / 12.11.2005
По моим сведениям подобные вещи делаются так:
1.Исходное изабражения пропускается через фильтры повышения контрастности и выделения контуров изображения(Sobel, Prewitt и т.п. )
2. Зная границы изображения определяются параметры фона.

Замечание по поводу скорости.
Обработка изображений - процесс весьма ресурсоемкий. Приходтся перелопачивать большие объемы информации и часто по несколько раз. Методы ускорений разработаны только для отдельных частных случаев.

А результат 92-94% считается блестящим
391
13 февраля 2006 года
Archie
562 / / 03.02.2005
Интересно, какого же у тебя размера фотки после микроскопа получаются? Самые последние коммерческие CCD-камеры имеют разрешение 9000х9000 (B/W). Если у тебя фотки цветные, то разрешение, подозреваю, значительно ниже. В таком случае, задача по перебору всех точек может затянуться максимум на несколько секунд, а то и мс.
Однозначно цвет фона ты простыми логическими операциями не выделишь никогда, т.к. компу ведь все равно, клетки у тебя или сыр с дырками. Нейронные сети тут, как было замечено, могут помочь, но 20 фоток - будет слишком мало, для обучения :)
241
13 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by Archie
Интересно, какого же у тебя размера фотки после микроскопа получаются? ... В таком случае, задача по перебору всех точек может затянуться максимум на несколько секунд, а то и мс.



Абсолютно согласен, и каждый может проверить это в Фотошопе. Время выполнения на современном компьютере действительно представляет интерес преимущественно для оптимизации алгоритма. Если же нет завала с тысячами картинок, вполне можно и забить на время выполнения в пользу надёжности.

Цитата:

Однозначно цвет фона ты простыми логическими операциями не выделишь никогда, т.к. компу ведь все равно, клетки у тебя или сыр с дырками. Нейронные сети тут, как было замечено, могут помочь, но 20 фоток - будет слишком мало, для обучения :)



Господа, будем же мыслить системно. Начнём с постановки задачи.
1. Почему невозожно опрределить цвет фона силами человека?
2. Почему неприемлем вариант предварительного обучения?
2.1. Если используется конечное число красителей (а я почему-то уверен, что это так и есть), то никто не мешает заранее внести в память цветовой тон каждого красителя. Если пересчитать RGB в HSB, то дальше понадобится только значение H, каковое указывает на цвет фона и слабо зависит от концентрации красителя.

В принципе, можно использовать значение B с учётом значения H по принципу AND/OR, коль скоро фон у нас всё равно темнее. Поясняю.

 
Код:
//...
if (H = Hconst) OR (H = Hconst AND B = Bconst) then
//...


С учётом (2.1.) реализация сильно упрощается. Пресеты можно выбирать и руками, и автоматически.

А вообще было бы правильнее ставить задачу не от функциональности программы, а от рабочего процесса, который обслуживается этой программой. Поэтому хочу поблагодарить тов. fantom1983 за задачу и немного попенять за подход. ИМХО, задача была не сравнивать конкретные алгоритмы между собой, а взять разумное из каждого. :)
4.5K
13 февраля 2006 года
StranikS
44 / / 03.02.2005
Цитата:
Originally posted by Sanila_san
А вообще было бы правильнее ставить задачу не от функциональности программы, а от рабочего процесса, который обслуживается этой программой. Поэтому хочу поблагодарить тов. fantom1983 за задачу и немного попенять за подход. ИМХО, задача была не сравнивать конкретные алгоритмы между собой, а взять разумное из каждого. :)




БРАВО, БРАВО, :P
Sanila_san, Вы первый из нас дошли до мысли: а нафига бросаться на решение проблемы, которую в сущности то и решать и не нужно!!!!!

12K
14 февраля 2006 года
IPz
30 / / 14.01.2006
Родить решение не видевшим всех этих фотографий - это все равно что узнать истинно ли A==B зная только A.

Есть единственный путь достижения 100% точности - по порядку просматривать изображения и записывать для каждого из них список признаков, по которым ты определил фон. Затем отыскать единственный признак, общий для всех изображений. И научить распознавать этот признак программу. Только так.
Кто скажет, что я не прав? =)

Возьмите любой вариант - он будет работать лишь в конкретном случае. А кто кроме fantom'a знает, возможно у всех этих фотографий есть общий признак, а мы тут просто гадаем на кофейной гуще?
252
14 февраля 2006 года
koderAlex
1.4K / / 07.09.2005
Цитата:
Originally posted by fantom1983
Ты прав это ключевая фраза, но нужно найти этот цвет, за минимальное число операций и некоторые точки могут быть намного темнее за цвет фона, так что нужно их откидать.


ну так в чём дело ?:)
формализацию задачки не можеш сделать ?

241
14 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by StranikS
... нафига бросаться на решение проблемы, которую в сущности то и решать и не нужно!!!!!



Если проблема возникла, её нужно решать. Но мне эта ветка скорее напомнила экзамен, тогда как я надеюсь на то, что тов. fantom1983 имел целью решить задачу, а не проверить, какие мы тут умные.

А вообще интересно было поработать мозгом. Проблема действительно интересная, хотя и решалась странновато. ;)

11K
14 февраля 2006 года
fantom1983
24 / / 21.10.2005
Во первых извените что так долго не выходил на связь, я немного приболел. А теперь поделу:
AndreySar
То что Вы предложили это вариант №5 (но с меньшим % работоспособности). (Его + и - смотри выше.)
Rebbit
См вариат №5.
StranikS и dinasok51
С Вашими предложениями я ознакомился и в скором времени реализую и протестирую. Результаты конешно же будут достоянием общественность :)
Archie
У меня есть фотографии с разрешением от 600х600.
Завтра выложу некоторые примеры.
Sanila_san
Идея принята к обработке.
А кто сказал что я не беру лутшее из всех идей, помоему так и родился вариант №5.
StranikS
Почему это не нужно, мне очень даже и нужно:) !!!
Кстати есль поразмыслить, то можно найти примеры, где эта проблема стоит очень остро, в смысле быстрое и коректноэ опредиление фона.
IPz
Понял свою ошибку. Исправлюсь. Фотки будут очень скоро.
koderAlex
Пожалуста нвпишите здесь вашу формализацию, а мы с радостью оценим ее. Проблема не так проста как кажется на первый взгляд.
Sanila_san
Задача ставилась решить проблему. А то что у Всех присутствующих гениальный ум Я и не сомневаюсь.
С уважением Юрий.
276
15 февраля 2006 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by fantom1983
Rebbit
См вариат №5.



Не совсем. Я предлогаю вообще не анализировать светлие цвета, а россматривать только темные. Тогда больше шансов попасть на фон. Сам ведь говорил что есть точки темнее фона, но их мало. Вот я и говорю что надо идти от темных цветов к светлым пока не попадем на цвет который часто встречается (не наичаще, а достаточно часто, но первий если идти от темных).
А периметр перебирать я вообще не предлогаю. Так можно попасть на какуюто специфическую картинку где по пириметру вообще фона не будет. (Ето я относительно сходства с вар №5)
Я так понимаю что задача не откудато, а из реальной жизни. Тоесть нет гарантии что у нее есть 100% решаемость ???

252
16 февраля 2006 года
koderAlex
1.4K / / 07.09.2005
Цитата:
Originally posted by fantom1983
Пожалуста нвпишите здесь вашу формализацию, а мы с радостью оценим ее. Проблема не так проста как кажется на первый взгляд.


задача сводится к поиску локального максимума цветового спектра картинки в его ( спектра ) тёмной области . локальный максимум в светлой части даст базовый тон рисунка.
алгоритм нужен ? или сам составиш ? :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог