Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
.NET 4.x

Сохранение изображения в отдельный файл

13.05.2017, 16:55. Показов 2753. Ответов 14
Метки нет (Все метки)

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

Сможите что нибудь посоветовать или как нибудь направить меня
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.05.2017, 16:55
Ответы с готовыми решениями:

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

Сохранение нарисованного в PictureBox в отдельный файл
Здравствуйте! У меня никак не получается сохранить измененное изображение, находящееся в PictureBox, в отдельный файл. Пробовал по всякому...

Поворот изображения на произвольный угол и сохранение результата в новый файл
Всем доброго времени суток. Столкнулся со следующей проблемой: необходимо изображение, загруженное в picturebox повернуть при помощи...

14
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
13.05.2017, 19:47
Цитата Сообщение от Lord_J Посмотреть сообщение
в файле должны хранится все изображения
Хранить объекты в файле - не проблема. Проблема в том, что этот файл будет очень большим, и не может быть загружен в память целиком. Из-за это придется делать работу со списком прямо в файле, что довольно муторно. Поэтому это как раз тот случай, когда лучше воспользоваться какой-либо локальной базой данных. Типа SQLLight или SQL Server Compact.
1
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
13.05.2017, 22:30  [ТС]
Storm23, Спасибо большое что ответили

Я читал на разных форумах и многие разработчики писали что храни файл в базе это не правильно, правильней будет хранить в базу путь, могу ли я узнать ваше мнение что вы думаете по поводу этого??
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
13.05.2017, 22:56
Цитата Сообщение от Lord_J Посмотреть сообщение
многие разработчики писали что храни файл в базе это не правильно, правильней будет хранить в базу путь, могу ли я узнать ваше мнение что вы думаете по поводу этого??
Я решаю поставленную задачу "как хранить все изображения в одном файле и работать с этим файлом". Поэтому подразумевал хранение в файле самих изображений, а не путей.

А вообще, это разные типы базы, в одном случае - это просто каталогизатор файлов, в другом случае - хранилище данных. Что вам нужно? Если вы хотите хранить изображения в БД, независимо от удаление/изменения фалов - храните изображение в БД, если вы делаете поисковик картинок по существующим файлам - храните путь.
1
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
13.05.2017, 23:12  [ТС]
Storm23, ясно, спасибо
и ответе на еще один вопрос если вас не затруднит

у меня есть алгоритм который сравнивает два изображения
допусти в базе данных имеются уже 10 изображений
как сравнить одно изображения с 10ю изображениями которые хранятся в базе? желательно если можно на примере,,,или хотябы подскажите в каком направлении двигаться,,,зарание спасибо

Добавлено через 1 минуту
Storm23, базу данных использую SQL Server Compact
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
14.05.2017, 00:08
Цитата Сообщение от Lord_J Посмотреть сообщение
как сравнить одно изображения с 10ю изображениями которые хранятся в базе? желательно если можно на примере,,,или хотябы подскажите в каком направлении двигаться,,,зарание спасибо
Если решать в лоб - то нужно по очереди читать из базы все изображения - и сравнивать их с оригиналом. Разумеется это долго. Поэтому на практике - нужно строить какой либо числовой хеш (самый простой вариант - перцептивный хеш), который будет содержать сжатую информацию об изображении и хранить его в БД вместе с изображением. Затем вычислять хеш для данного изображения, и искать такой же (или близкий) хеш в БД. А затем уже вытягивать из БД изображения с близкими хешами и сравнивать их с оригиналом попарно и с более точным алгоритмом. Такой подход гораздо быстрее.

SQL Server Compact
обратите внимание, что этот тип БД имеет ограничение на максимальный размер базы - 4 ГБ.
2
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
14.05.2017, 00:35
imho, хранить картинку в БД это перебор, БД задумывалась, реализовывалась и используется для другого... нужен поиск по бд по содержимому картинки? или гиговая?.картинка нужна ну прям всегда и прям из БД?
подход не верный ниразу(сугубо имхо, но довелось админить подобную базу == нуегонахуй)
0
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
15.05.2017, 00:46  [ТС]
Storm23, спасибо

Добавлено через 3 минуты
Diamante,
картинка нужна ну прям всегда и прям из БД?
Нужно реализовать поиск одинаковой картинки, если картинки нет то добавлять ее если такая же картинка присуствует то выводить ее, картинки хранить в базе чтоб они небыли доступны пользователю, чтоб были доступны только через приложения
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
15.05.2017, 00:58
твое право, но если тебя прирежет/пристрелит человек, который вынужден твое детище обслуживать -> не обижайся на него, ага?!
0
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
15.05.2017, 01:16  [ТС]
Storm23, я просмотрел вашу ссылку которую вы отправили по поводу "перцептивный хеш"
но этот вариант мне несовсем подходит, отвечу почему:
как я уже упоминал ранее алгоритм распазнования двух одинаковых изображений у меня есть, распознает он отпечатки пальцев, мне нужно реализовать чтобы распознавание было не только для пары отпечатков, а чтобы как я упоминал уже выше была база в которой бы хранились отпечатки, я не могу разобраться как из базы делать сравнение, есть конечно представление что это как то нужно реализовать через цикл ,,,помогите пожалуйста если вам не составит труда...
Если решать в лоб - то нужно по очереди читать из базы все изображения - и сравнивать их с оригиналом. Разумеется это долго.
и по скорости желательно чтобы было тоже быстрее...или если это будет занимать длительное время то можно ли сделать так:
2 picturebox
в 1 picturebox загружаем картинку, нажимаем на кнопку допустим "найти" и каждая картинка которая будет выводится из базы данных, будет отображаться при сравнении в picturebox 2, чтото вроде визуального сканирования

Добавлено через 7 минут
Diamante, а как было бы правильней реализовать это?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
15.05.2017, 08:35
Цитата Сообщение от Lord_J Посмотреть сообщение
алгоритм распазнования двух одинаковых изображений у меня есть, распознает он отпечатки пальцев, мне нужно реализовать чтобы распознавание было не только для пары отпечатков
Для отпечатков пальцев конечно перцептивный хеш смысла не имеет.
В таких случаях в БД нужно хранить не только изображения, но и дескриптор. Дескриптор - это набор особенностей изображения (в англ лит - features). И поиск делать по дескрипторам а не по изображениям. Делать поиск среди миллионов картинок в лоб - попарным сравнением - безумие.
Цитата Сообщение от Lord_J Посмотреть сообщение
алгоритм распазнования двух одинаковых изображений у меня есть
Вам нужен не алгоритм сравнения двух картинок - а алгоритм извлечения features из картинки. Тем более, что сравнение отпечатков как раз происходит через дескрипторы - из отпечатка извлекаются особые точки, а затем для двух изображений сравниваются эти наборы точек. Вот именно этот набор точек и нужно хранить в БД.
1
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
15.05.2017, 09:57  [ТС]
Storm23, большое спасибо, именно так я и сделаю,теперь уже разобрался что и как хранить в базе
именно такой алгоритм у меня и есть,распознает отпечаток по точкам о а после сравнивает их

Но как сделать сравнение по базе, просто как через поиск?

Добавлено через 6 минут
*через поиск?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
15.05.2017, 10:19
Лучший ответ Сообщение было отмечено Lord_J как решение

Решение

Цитата Сообщение от Lord_J Посмотреть сообщение
Но как сделать сравнение по базе, просто как через поиск?
Это не простой вопрос. Для того, что бы сделать эффективный поиск нужны не просто дескрипторы, нужны специальные дескрипторы которые поддерживают топологическую сортировку. Проще говоря, это такие числа, что близость двух чисел (то есть ads(d1 - d2)) соответствуют близости двух картинок. Тогда имея дескриптор для картинки (число D), мы можем получить из базы набор всех похожих картинок, сделав выборку близких дескрипторов (типа D-10<d<D+10).
Такие дескрипторы сделать не просто, я когда-то занимался такими вещами, использовал довольно хитрые приемы, например вейвлетные преобразования.
Но вам я думаю это будет уже слишком сложно и не нужно. Такое применяется для рантайм распознавания изображений, например с видео. У вас же оффлайн задача. Я думаю вы просто можете читать все дескрипторы из базы и сравнивать дескрипторы попарно. Возможно понадобится сделать свертку дескрипторов, для более эффективного сравнения (в самом грубом случае - просто посчитать среднее каких-то чисел в дескрипторе, тогда похожие дескрипторы будут иметь близкие средние). И сначала сравнивать свертки, и если они близки - затем уже сравнивать дескрипторы полностью.
1
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
15.05.2017, 10:28  [ТС]
Storm23, Спасибо за ответ буду пробовать
0
2 / 2 / 2
Регистрация: 24.04.2016
Сообщений: 191
21.05.2017, 11:51  [ТС]
Storm23, Большое спасибо у меня все получилось

Если вам не составит труда ответе пожалуйста на вопрос в этой теме Наложение эффекта на изображение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2017, 11:51
Помогаю со студенческими работами здесь

Ресурсы в отдельный файл
Есть некоторое количество аудиофайлов, которые не часто используются, но много весят из-за .wav Как вынести их за пределы .exe? Чтобы в...

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

Сохранение изображения
Доброго времени суток. На сервер передается изображение, сконвертированное в байтовый массив (ф-я расположена в другом классе): public...

Сохранение изображения
у меня домашнее задание, создаю небольшую графическую программу. но при написании следующего кода для сохранения файла: private void...

Сохранение изображения
Всем привет , ищу уже часа 4 хороших . Подскажите как мне сохранить картинку из pictureBox , в выбранную папку , через openfiledialog не...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru