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

Ваш аккаунт

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

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

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

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

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

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

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

Принимаются разные идеи.
Жду плодов Вашего умственного труда с нетерпением
255
27 января 2006 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by fantom1983
Здраствуйте многоуважаемый Умный Читатель!!!

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

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

Принимаются разные идеи.
Жду плодов Вашего умственного труда с нетерпением


Абсолютно непонятное условие. Как размещены изображения? Одно на другом или одно рядом с другим? Цвет фона рисунка или изображения нужно найти? Что значит автоматически?

11K
27 января 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by Dart Bobr
Абсолютно непонятное условие. Как размещены изображения? Одно на другом или одно рядом с другим? Цвет фона рисунка или изображения нужно найти? Что значит автоматически?



Идя на встречу пожеланиям Dart Bobr расписиваю детали:


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

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

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

255
31 января 2006 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by fantom1983
Идя на встречу пожеланиям Dart Bobr расписиваю детали:


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

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

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


В общем случае это невозможно, даже с человеческим участием. Алгоритмы выделения фона и прочие алгоритмы распознавания изображений ищи в книгах. Могу посоветовать: Форсайт,Понс "Компьютерное зренние"

391
31 января 2006 года
Archie
562 / / 03.02.2005
Если суммарная площадь пятен изображения меньше площади незанятых частей (т.е. того, что закрашено цветом фона), то можно построить распределение цветов всего изображения, какой цвет встречается чаще всего - тот и есть цвет фона.
Другой вариант (если площадь открытых областей меньше или соразмерна с суммарной площадью пятен):
Отличительная особенность фонового цвета - довольно большие группы идущих подряд точек (скажем, больше 5-ти) имеют одинаковый цвет (вероятнее всего это и есть цвет фона). Итак, берем окно, скажем в 5 пикселей (подбирать экспериментально по картинкам) и двигаем его по картинке с шагом в один пиксель. Если оказалось что в этом окне все пикселы одного цвета - +1 в статистической таблице для этого цвета, нет - поехали дальше. И так по всему изображению. Затем смотрим на статистику - какой цвет выпадал чаще всего - он и есть цвет фона. Если по статистике невозможно однозначно выявить цвет - уменьшаем окно (было 5, стало 4 пиксела) и повторяем операцию.
В пределе этот метод сводится к нахождению спектра Фурье изображения (двухмерного или набора одномерных, можно вейвлеты использовать). Так вот, коэффициент спектрального представления с самой низкой частотой - он и будет цветом фона.
Да, все это нужно проделывать отдельно для каналов R, G, B или яркостного и каналов разности.

Надеюсь понятно мысль изложил :)
11K
01 февраля 2006 года
fantom1983
24 / / 21.10.2005
2: Archie

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

Но все равно спасибо за участие:!!!: , Если будут идеи пиши буду очень рад. задачка и интересная.
17K
27 февраля 2006 года
wolf_roma
2 / / 27.02.2006
что то непонятно в чём проблема если сказано что фон темнее изображения? Найти самый тёмный цвет. Уж не знаю тока как определить в РГБ какой из них темнее.
11K
27 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by wolf_roma
что то непонятно в чём проблема если сказано что фон темнее изображения? Найти самый тёмный цвет. Уж не знаю тока как определить в РГБ какой из них темнее.



Проблема как раз в том что нужно зделать это быстро и качественно.
Причем на фотках можгут быть темные точки (намного темнее за фон).

15K
03 марта 2006 года
PAV
16 / / 03.03.2006
Цитата:
Originally posted by fantom1983
Проблема как раз в том что нужно зделать это быстро и качественно.
Причем на фотках можгут быть темные точки (намного темнее за фон).



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

11K
06 марта 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by PAV
дак это противоречит условию, ты же говорил, что фон темнее изображений. Вообще, 100% ты не получишь в любом случае, так как даже человек не всегда определит, где фон. Ты лучше скажи для какой задачи тебе это нужно, может ее можно решить другим путем?


Это не противоречит, фон темнее за клетки, а не какието точки (которых есть несколько (десятков) штук на фотографии.)
Я и сам уже разнадеялся получить 100%, но всеже стремлюсь к этому бареру:angel:
Задача простая: Дана фоткас изображением клеток человеческого органа, нужно класыфицировать в автоматическом режиме. Она из подзадач опредиление фона в автоматическом режиме.

15K
09 марта 2006 года
PAV
16 / / 03.03.2006
Цитата:
Originally posted by fantom1983
Это не противоречит, фон темнее за клетки, а не какието точки (которых есть несколько (десятков) штук на фотографии.)
Я и сам уже разнадеялся получить 100%, но всеже стремлюсь к этому бареру:angel:
Задача простая: Дана фоткас изображением клеток человеческого органа, нужно класыфицировать в автоматическом режиме. Она из подзадач опредиление фона в автоматическом режиме.



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

12K
12 марта 2006 года
rgo
11 / / 02.07.2005
надо сужать задачу. То есть ограничить множество входных картинок дополнительными условиями. А то в такой постановке -- она не задача, а проблема.

А потом статистика. Например, первый максимум гистограммы (то есть при минимальной яркости), или может быть не гистограммы, а подобной ей функции, которая будет учитывать не только суммарную площадь пикселей определённой яркости, но и "размазанность" этой площади по картинке. Правда, для того чтобы говорить о максимуме, надо бы снять случайные возмущения типа этих более тёмных точек. Для того чтобы понять как это делать, надо экспериментировать. Может быть достаточно сгладить гистограмму увеличив дискретность оси яркости, а может ещё проще: отсечь максимумы которые меньше определённой величины.
А может стоит анализировать не гистограмму яркости, а rgb гистограмму... А может и не гистограмму, а попытаться работать с выпуклостью/вогнутостью границ.

Короче, возьми gimp/fotoshop, и в них рисуй гистограммы на нужные картинки, потом переводи в gray-scale, и опять рисуй, не забывая разглядывать и находить на них (вручную) цвет фона. Не знаю как fotoshop, а в гимпе можно приделывать свои статистики, вот приделывай другие статистики помимо гистограммы и тоже смотри на результат. Ежели и этого окажется мало, к твоим услугам MathLab, Statistica, и пр. гадости. Если просветления не наступит, то наверное, это действительно проблема, а не задача :)
11K
13 марта 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by rgo
надо сужать задачу.


Спасибо за идею(сочуствие) по решению этой проблемы. Иду работать :):angel:

534
29 марта 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by fantom1983
Спасибо за идею(сочуствие) по решению этой проблемы. Иду работать :):angel:

Можно обратится к матстатистике в смеси с матанализом. К проимеру, рассматривать каждую строку/столбец пикселов как выборку значений интенсивности и строить для них функцию распределения (то есть, считать для каждого пиксела производную по формуле (X[SIZE=1]i+k[/SIZE] - X[SIZE=1]i[/SIZE])/k, где Х - интенсивность либо отдельного канала цвета, либо корень из суммы квадратов интенсивностей каждой из цветовых составляющих. Шаг k можно варьировать, тем самым изменяя соотношение - скорость выполнения/качество (наиболее лучшее k = 1), i изменяется от 0 до n - k, где n - общее количество точек по выбранному направлению. Далее сверяем полученное значение производной со значением, полученным на предыдущем шаге. Если производная изменила свой знак, значит на отрезке [i, i + k] наблюдаем минимум или максимум интенсивности. Уточнить положение пиксела можно, взяв середину отрезка, или воспользоваться методом деления пополам (то есть, методом вилки), всё зависит от желаемой точности. Знак в нашем случае (в случае нахождения минимума) должен изменяться с минуса на плюс, если мы движемся в направлении увеличения координаты. Наша цель - найти и сохранить значение цвета, дающего минимальную интенсивность на [0, n] в данной строке/столбце пикселов; иными словами, ищем минимум интенсивности среди точек, в которых производная меняет знак с минуса на плюс (или обращается в ноль, но в этом случае значение производной от интенсивности справа от нулевого участка должно быть больше соответствующего значения слева). Такие числа мы должны получить для каждой строки (или столбца) пикселов. Затем ищем среднее из полученных значений минимумов, оно и будет наиболее ожидаемой интенсивностью цвета фона. По ходу дела можно подсчитать и дисперсию этих значений, определяемую как сумму крадратов разностей текущего и среднего значения интенсивностей точек, дающих минимумом интенсивности по каждой из строк/столбцов, поделенной на количество строк или столбцов соответственно. Корень из дисперсии даст нам максимальное отклонение интенсивности истинного цвета от полученного (можем использовать в качестве порога точности при вырезании фона). На мой взгляд, это наиболее оптимальный метод из всех предложенных.
Желаю удачи!

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