![]() |
|
![]() ![]() ![]() |
|
Amber |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.10.2007 Репутация: нет Всего: нет |
Имеется график некоторой зависимости. Сохранен в pdf jpg gif. Вообщем в практически любом формате.Требуется програмно определить координаты графика для последущей обработки(сложение графиков). Выглядит в самом простом случае вот так
![]() З.ы. Извиняюсь если было...весь форум не осили пока |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Гм... а что тут такого сложного? Цвет пикселов графика отличается от цвета пикселов фона и прочих элементов, так что выделение собственно графика никаких сложностей не представляет... ну в крайнем случае построить цветовую гистограмму или для grayscale отвекторизовать... по полученным точкам снять значения тоже не проблема - хоть с каждого пиксела... если отконвертить картинку в битмап или там WMF - адрес пиксела почти что координаты, ну разве что оси выделить...
давайте опишем лучше не весь процесс - потому как неясно в чем у вас сложности - а конкретный узкий этап, который вызывает проблемы. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Amber |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.10.2007 Репутация: нет Всего: нет |
Akina Спасибо за ответ.
Сложности вот в чем. 1) Понятоно что адрес пикселя фактически координата точки(при пересчете). Но как отловить начало системы координат(графика). Возможно просто в лоб задать начальный пиксель? 2)Графиков ОЧЕНЬ много и все они в разном масштабе.В моем примере мах(х)=2.2 а попадаются графики где х за 200 уходит. Одно радует что картинки с графиками одного разрешения. Допустим пределы будет вводить пользователь...но требуется считывать точки с дельтой 0.01 Отсюда вопрос..если на картинке не хватает пикселей для столь точного считывание где их взять? 3) вытекает из вышесказанного в каком формате(фактически у меня есть пдф графиков) лучше всего сохранять для последующей обработки. Кстати цвет линии графика задан к сожелению не одним цветом...но это решаемо- просто задать интервал по блю-каналу. И еще вопрос? что делать с нижним графиком?Убирать или начинать считывание из "начала координат" графика? |
|||
|
||||
Akina |
|
||||||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Скажем так - заниматься еще и распознаванием подписей по осям координат я бы не повязался.
Где взять то, чего нет? странный вопрос, право слово... интерполируйте. На таких гладких кривых ошибка будет невелика. Однако плюс-минус полпиксела - по-любому, это точность задания начальных данных. При условии, конечно, если не известно ТОЧНОЕ мат. описание процесса.
имхо битмап Я же говорю - цветовая гистограмма. Будут ярковыраженные пики: белый (или светло-серый) - фон, серый (или черный) - оси и надписи, цветной(ые) - график(и). Так что определить цвет кривой (даже если их несколько разноцветных) - дело плевое. Добавлено через 29 секунд
Это Вы у МЕНЯ спрашиваете? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||||
|
|||||||||
Amber |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.10.2007 Репутация: нет Всего: нет |
Извиняюсь за неопытность...а можно с этого место поподробнее? Я так понимаю что в любом граф. редкторе я сморю каких синих пикселей больше всего- такой цвет и считаю цветом графика? А теперь следующий вопрос- на графике есть учсток где линия жирная(он то для меня больше всего и интересен) как отловить "жирность"?проверить соседнии пиксели? Спасибо за помощь! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
А чего поподробне-то? просто считаешь по каждому цвету количество на рисунке пикселов этого цвета. Есссно укрупненно - скажем учитывая только 3 старших бита каждой цветовой компоненты. Затем оставляешь только те цвета, количество пикселов по которым в разы больше среднего - вот тебе и все основные цвета твоего графика. Добавлено через 3 минуты и 7 секунд Считать в этом месте количество одноцветных пикселов по вертикали. Причем не одного ряда пикселов - это может быть погрешость изображения, а, скажем, 5 последовательных столбцов пикселов. Если в предыдущей пятерке было везде по 2 пиксела, а в следующей - по 4, то явно началась более толстая линия. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |