Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/12: Рейтинг темы: голосов - 12, средняя оценка - 5.00
9 / 8 / 9
Регистрация: 08.03.2010
Сообщений: 70
1

скрытие информации

30.03.2010, 18:51. Показов 2405. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите как реализовать скрытие информации в изображениях файлах формата jpeg? Может у кто имеет примеры?? Помогите чем можете!!! Буду благодарен за любую информацию!!!!

Добавлено через 44 минуты
в принципе я знаю как это реализовать но не знаю как открыть изображение о расписать информацию о пикселях изображения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2010, 18:51
Ответы с готовыми решениями:

Скрытие кнопки
Как скрыть кнопку на второй форме при нажатии на первой форме на кнопку опеределенную...

Скрытие файлов через Дельфи
Можно ли при помощи делфи скрыть файл но так чтоб ни убратие скрытного вида в windows ни всякие...

Скрытие информации в изображении
Здравствуйте. Тема моей курсовой следующая: " Скрытие информации в изображении при помощи...

Скрытие лишней информации
Всем доброго времени суток, есть такой вопрос: как правильно реализовать такой функционал. есть...

15
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
30.03.2010, 22:56 2
Стеганография в BMP
По результату обсуждения так и не выяснилось, как сие делать в jpeg'е

Стеганография в BMP. Полное руководство
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
30.03.2010, 23:35 3
HINT! однако никто не мешает сначала расшифровать фрагмент, потом добавить туда свой нижний бит, а потом зашифровать обратно
1
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.03.2010, 00:03 4
Цитата Сообщение от Lolcht0 Посмотреть сообщение
HINT! однако никто не мешает сначала расшифровать фрагмент, потом добавить туда свой нижний бит, а потом зашифровать обратно
А где гарантия, что при распаковке будет та же картинка, что и до распаковки? jpeg - алгоритм сжатия с потерей качества
1
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
31.03.2010, 01:34 5
смотрим описание алгоритма:
1. ДКП: пусть дано ч\б изображение задается матицей A=A'&(~n*E).

информационный бит l =n*0,n*1, где n - целое число, определять наличие или отсутствие бита будем с помощью нормы |l*E|, где E - единичная матрица 8х8.
рассмотрим ДКП от IMG = A+lE:
R = DCT*(A+lE)*DCT(t) = DCT*A*DCT(t) + l*DCT*E*DCT(t) = DCT*A*DCT(t)+l*DCT*DCT(t).

при декодитровании данного этапа
DECODED = DCT(-1)*R*DCT(-1,t) = A+l*E, ничего не теряем.


второй этап, квантование.
Рассмотрим к примеру левый верхний пиксел. Пусть графическая информация заключена в числе IMG, а информация в числе INF.

Тогда в отсутствие бита получим R = IMG, в присутствие оного - R = IMG+INF.
нам нужно уметь различать состояния IMG и IMG+INF, то есть
|Q/(IMG+INF)-Q/IMG|=|Q*INF/(IMG*(IMG+INF))|>=1. Отсюда можем получить необходимую величину параметра n для самого худшего случая IMG, встречающегося в картинке.

вот как-то так, надо еще подумать, но видно, что посчитать это все реально вполне
Дальнейшие этапы сжатия уже идут без потери качества так что рассматривать тут их не имеет смысла
1
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.03.2010, 09:39 6
Lolcht0, прежде, чем запускать ДКП, делается преобразование 4:4:4->4:1:1, на котором ужЕ получаются потери. Хотя на данном этапе проблема устраняется тем, что модифицируется только зелёный канал. Дальше даже мне, как НЕматематику понятно, что после ДКП всё преобразуется обратно в изначальны вид. Далее идёт отфильтровка высоких частот, которые при дальнейшем раскодировании повлияют на весь квадрат

Пока это расписывал, стукнула в голову идея. Информацию вклинивать нужно не в оригинальную картинку (т.е. не в цветовое представление), а в низкочастотные составляющие после ДКП (а то и после фильтровки). Правда я о jpeg'е имею лишь теоретическое представление, сам ручками никогда не работал, но подозреваю, что такой подход вполне может дать приемлимый результат
0
9 / 8 / 9
Регистрация: 08.03.2010
Сообщений: 70
31.03.2010, 09:45  [ТС] 7
Слушай а можешь написать текст проги, а то я не совсем понял что ты имеешь в виду.
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.03.2010, 11:15 8
Понятно... так и надо было писать сразу - самому мне лениво в чём-либо разбираться, сделайте мне готовую программу
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
31.03.2010, 13:39 9
Evg, нельзя вносить изменения в самые низкие частоты. Они соответствуют средней яркости блока из 8 пикселей и будут очень сильно заметны. Необходимо вносить изменения в наиболее высокие частоты, которые еще не теряются при кодировании. Тогда при просмотре, шумы, вносимые изменениями, будут по величине схожи с артефактами кодирования.

а про яркостный канал я также подумал, просто не хотелось еще усложнять алгоритм, поэтому я написал, что он ьбудет работать для ч/б картинок)))
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.03.2010, 20:21 10
Lolcht0, я в математике не силён, но звучит логично. Т.е. по сути надо после всех операций (включая фильтрацию) вносить изменения в самые низкие из оставшихся ненулевых частот. Только как определять, куда вносить, а куда не вносить, а главное, как при декодировании разбираться, куда внесли, а куда нет - видимо вопрос уже чисто технический
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
31.03.2010, 22:09 11
Цитата Сообщение от Evg Посмотреть сообщение
как при декодировании разбираться, куда внесли, а куда нет
вот! в том-то вся и проблема. Мы должны иметь некоторую априорную информацию о изображении.

Вот я когда предлагал
Цитата Сообщение от Lolcht0 Посмотреть сообщение
A=A'&(~n*E)
То, тем самым, вводил эту информацию.
в таком случае, мы владеем знанием о том, что в пикселе в случае передачи "0" |(A')&(n*E)|==0.
а в случае передачи "1" |(A')&(n*E)|==С>0.

Я не говорю насколько мой алгоритм хорош или плох (но скорее плох, т.к. я придумал его за полчаса), но тем не менее он должен работать

Добавлено через 6 минут
если рассуждать, как ты предлагаешь, то мы должны обладать информацией о значении "самых низких оставшихся частот" в оригинале изображения, например, фиксировать их значения искусственно причем так, чтобы фиксированное значение мог вычислить декодирующий.
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
31.03.2010, 22:35 12
Зачем фиксировать? Если мы знаем, что можно модифицировать только ненулевые значения частот (а точнее, заканчивая последней ненулевой составляющей при зигзагообразном проходе), то можно сказать, к примеру, что последние 8 составляющих можно модифицировать. Но при этом нужно наложить ограничение, чтобы было некое минимальное расстояние от низких частот (грубо говоря, чтобы не загадить одноцветный квадрат).

Я знаком с алгоритмом сжатия лишь "на пальцах", на практике сам никогда ничего не делал. А потому конкретно посоветовать уже не могу ничего - надо экспериментировать. Но по крайней мере подступились к вопросу хотя бы с теоретической стороны
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
31.03.2010, 23:38 13
зачем знать, вот на пальцах. я загадал 2 числа. к одному из них прибавил 1, а к другому 0. получил 13 и 8. к кому я прибавил 1 а к какому 0?))
очевидно,
не зная, какие числа я загадал, ответить на это нельзя.


точно так же и тут, мы можем изменить картинку, но мы должны знать, что было вначале, чтобы выдрать сами изменения
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
01.04.2010, 00:17 14
Цитата Сообщение от Lolcht0 Посмотреть сообщение
точно так же и тут, мы можем изменить картинку, но мы должны знать, что было вначале, чтобы выдрать сами изменения
Зачем? Мы всегда жертвуем младшим битом и храним в нём информацию, а не картинку. С bmp это всё хорошо работает, ибо без сжатия. С jpeg'ом всё то же самое, только надо найти байты, у которых можно пожертвовать младшим битом
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
01.04.2010, 00:32 15
а, то есть мы ищем байты с высшими частотами и изменяем в них последний бит? да, наверное, это будет работать и неплохо)
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
01.04.2010, 11:48 16
Цитата Сообщение от Lolcht0 Посмотреть сообщение
а, то есть мы ищем байты с высшими частотами и изменяем в них последний бит? да, наверное, это будет работать и неплохо)
Именно так. В случае bmp мы просто модифицируем все байты подряд. В случае с jpeg'ом, надо ещё разобраться, который из байтов в частотном представлении нужно модифицировать, а какие нет. И чтобы процесс этот был симметричен с раскодированием
0
01.04.2010, 11:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2010, 11:48
Помогаю со студенческими работами здесь

Скрытие информации в картинке Jpeg
Всем доброго времни суток! ... Передо мной стоит задача скрыть доковский файл в Jpeg-картинке....

Скрытие информации о полях в св-вах документа
Подскажите, возможно ли скрыть информацию о данных в поле, отображаемую в свойства документа?

скрытие информации в аудио файлах формата WAV
Как реализовать скрытие информации в аудио файлах формата WAV??? может у кого-то есть какие-то...

Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе
В сервис-центре хранятся квитанции о сданной в ремонт аппаратуре. Каждая квитанция содержит...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru