Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/12: Рейтинг темы: голосов - 12, средняя оценка - 4.50
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
1

Импорт и экспорт графика (его значений, а не изображения)

19.10.2012, 11:07. Просмотров 2179. Ответов 33
Метки нет (Все метки)

Всем привет! У меня вот такая задача: есть пикчебокс, в нем рисуются разные всякие графики, к ним применяются функции размытия, производится деление и грубо говоря получается другой график. Вопрос состоит в том как осуществить сохранение в текстовый файл этих плучаемых- графиков? Как я понимаю нужно сохранить в текстовый файл массив со значениями функции в каждой точке, но как это сделать? И еще нужно что бы потом можно было сохраненную эту функцию графика (массив) можно было загрузить обратно в программу. Подскажите пожалуйста как это сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2012, 11:07
Ответы с готовыми решениями:

Экспорт / импорт в xml
Подскажите как сделать так что бы данные public FormatWindow() ...

Импорт/экспорт конфигураций программы в xml
Привет. Помогите разобраться в следующем вопросе. Например есть у меня...

Экспорт/Импорт данных из dataGridView в файл
Доброго дня/ночи! Прошу помочь с сохранением/загрузкой данных из dataGridView....

Экспорт данных в Excel и построение графика
Привет всем Нужно сделать экспорт в Excel и по экспортированным данным...

Графика: Фильтрация изображения
1) Фильтрация изображения произвольным фильтром 2) Зеркальное отображение...

33
nio
5959 / 3365 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
19.10.2012, 11:24 2
AnutaMypka, а почему в текст, а не сразу в виде изображения в BitMap или другой бинарный файл?
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
19.10.2012, 11:25 3
AnutaMypka, а нельзя просто сериализовать функцию?.. График можно аппроксимировать сплайнами, сохранив штук 50-100 опорных точек. Получится не сильно накладно. Ну или действительно картинку.
0
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 16:20  [ТС] 4
Psilon,
nio,
Я понимаю что проще будет битмапы сохранять, но мне нужно что бы сохраненную или экспортируюмую функцию можно было и отрисовать (график) и использовать ее значения для дальнейших действий (умножения, взятия Фурье образов).
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
22.10.2012, 16:27 5
AnutaMypka, ну блин, я вам говорю Аппроксимируйте сплайнами, в файл запишите коэффициенты разложения, потом обратно восстановите.
0
IamRain
1375 / 1230 / 386
Регистрация: 02.08.2011
Сообщений: 3,628
22.10.2012, 16:30 6
pattern Memento

Добавлено через 1 минуту
все еще графики свои мучаешь)
0
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 16:44  [ТС] 7
Psilon, а что за сплайны?Я не понимаю что вы имеете в виду.
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
22.10.2012, 16:48 8
AnutaMypka, википедия
Сплайн (англ. spline - планка, рейка) - функция, область определения которой разбита на конечное число отрезков, на каждом из которых сплайн совпадает с некоторым алгебраическим полиномом. Максимальная степень из использованных полиномов называется степенью сплайна. Разность между степенью сплайна и получившейся гладкостью называется дефектом сплайна. Например, непрерывная ломаная есть сплайн степени 1 и дефекта 1.
По моему опыту дает самую близкую к исходной функции интерполяцию. Синусы-косинусы записать в файл затруднительно, а вот коэффициенты квадратной-кубической параболы запросто.
0
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 16:57  [ТС] 9
Psilon, а вы использовали сами этот сплайн? как с ним работать? Как записывать в файл данные что бы сохранять и потом можно было обратно импортировать?
0
nio
5959 / 3365 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
22.10.2012, 17:01 10
вообще самым правильным будет работать не с изображениями графиков, а с данными из которых они формируются.
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
22.10.2012, 17:03 11
AnutaMypka, ну вообще у нас был курс численных методов и я представляю. Программа по интерполяции сплайнами у меня есть, но к сожалению на дельфи. Поэтому вам придется самому посмотреть. Если коротко: ищется не такая функция, которая проходит через все точки, а ищется множество функций, таких, чтобы проходя через любые 2 точки в этих точках производные были равны. Ну если по-человечески, то ось X разбивается на несколько отрезков, у каждого отрезка функция имеет свой вид. После этого все эти функции "склеиваются" (равенство производных) и получается функция. Вот пример программы на дельфи, попробуйте различные варианты:

1) жмете "задать"
2) щелкаете произвольные точки на графике
3) щелкаете кнопку "график" (на исходной форме)

После этого там есть в радиокнопках различные виды интерполяции, попробуйте их, поймете, что я имею ввиду. Можно и ньютоном, но он дает очень большой размах (особенно если точек много и идут они вот так зигзагом -> wwwww <-

А пока вы просвещаетесь, я поищу вам инфу про то, как это дело закодировать (если вам лень)
0
Вложения
Тип файла: rar Multi.rar (253.9 Кб, 9 просмотров)
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 17:04  [ТС] 12
nio, вот что я и хочу. Значения функции в каждой точке записывать в файлик, а птом его сохранять и импортировать/экспортировать. Как это сделать?
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
22.10.2012, 17:05 13
nio, сплайны строятся по точкам, которые дают на вход. там никаких графиков не нужно, только значение функции. Зная функцию, эти точки можно посчитать и забить в файл. Потом из файла выгрузить и построить по ним сплайн.

Добавлено через 41 секунду
AnutaMypka, в принципе можно и значение в каждой точке, но тогда придется делать ОЧЕНЬ много точек (и при увеличении разрешения график будет уничтожен). Сплайны в данном случае - выход

В принципе: вот
http://www.machinelearning.ru/wiki/i...B0%D0%BC%D0%B8
0
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 17:06  [ТС] 14
Psilon, спасибо. Просто я ищу наиболее простой способ для реализации, т.к. сроки поджимают, то не хочется заморачиваться на лишнем..
Цитата Сообщение от Psilon Посмотреть сообщение
AnutaMypka, в принципе можно и значение в каждой точке, но тогда придется делать ОЧЕНЬ много точек (и при увеличении разрешения график будет уничтожен). Сплайны в данном случае - выход
у меня для графика идет 512 точек :-)
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
22.10.2012, 17:08 15
AnutaMypka,
Цитата Сообщение от AnutaMypka Посмотреть сообщение
не хочется заморачиваться на лишнем..
Что делать это лучший способ
Основными достоинствами сплайн-интерполяции являются её устойчивость и малая трудоемкость. Системы линейных уравнений, которые требуется решать для построения сплайнов, очень хорошо обусловлены, что позволяет получать коэффициенты полиномов с высокой точностью. В результате даже про очень больших N вычислительная схема не теряет устойчивость. Построение таблицы коэффициентов сплайна требует O(N) операций, а вычисление значения сплайна в заданной точке - всего лишь O(log(N)).
0
nio
5959 / 3365 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
22.10.2012, 17:13 16
Psilon, да про сплайны это понятно, не понятно только как формируются графики у ТС. Может там действительно проще все точки сохранить.
Цитата Сообщение от AnutaMypka Посмотреть сообщение
начения функции в каждой точке записывать в файлик, а птом его сохранять и импортировать/экспортировать. Как это сделать?
Зависит от того, что у тебя за графики и как они рисуются.
Если прорисовывается каждый пиксель, то и сохранять нужно эти пиксели с учетом координат
пример: L:01; X:10; Y:110; C: Red (линия 01; x= 10; y=110; цвет: красный)
Т.е. нужно придумать собственный протокол.

Если рисование происходит методами (готовые примитивы), то тогда необходимо делать, как сказал Psilon - сплайнами.
0
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 17:23  [ТС] 17
nio, У графика 512 точек, которые рисуются с помощью функции DrawLines цветным пером.
А нельзя сделать что бы сохранялись данные массива графика (X и Y координаты), а потом когда импортируешь все эти данные просто записывались в пустой массив и рисовались кистью которая предназначена для этого массива?

Добавлено через 1 минуту
Psilon, а есть какие то реализации этого сплайна? Честно говоря меня напугали формулы по вашей ссылке....
0
nio
5959 / 3365 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
22.10.2012, 17:25 18
AnutaMypka, поскольку у тебя рисование изначально происходит
Цитата Сообщение от AnutaMypka Посмотреть сообщение
с помощью функции DrawLines
то и данные в файл нужно сохранять те, по которым потом этот DrawLines, снова сможет отрисовать такую же линию
0
AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
22.10.2012, 17:28  [ТС] 19
Цитата Сообщение от nio Посмотреть сообщение
AnutaMypka, поскольку у тебя рисование изначально происходит
Сообщение от AnutaMypka
с помощью функции DrawLines
то и данные в файл нужно сохранять те, по которым потом этот DrawLines, снова сможет отрисовать такую же линию
так в DrawLine мы задаем массив точек и перо. Можно же просто импортировать функции в заранее подготовленный массив, отрисовка которого уже реализована,просто массив пуст до импорта?
Как реализовать сохранение в файл и импорт, подскажите пожалуйста?
0
Psilon
Master of Orion
Эксперт .NET
6012 / 4864 / 902
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
22.10.2012, 19:01 20
AnutaMypka, сериализуй массив точек делов-то
0
22.10.2012, 19:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2012, 19:01

Сохранить изменения при редактировании изображения (графика)
Проблема такая: строю графики функции в pictureBox'e, и при сохранении настроек...

Построение 3-х мерного графика изображения и его гистограммы
Доброго времени суток! Нужна помощь. Суть проблемы такова: Есть...

Импорт из 1С в bitrix через csv, импорт пути изображения
Добрый день Уважаемые, Уже всю голову сломал себе пытаясь импортировать csv...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru