Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Victrokex
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 21
#1

Кодирование бинарного изображения - C++

12.12.2014, 18:18. Просмотров 608. Ответов 6
Метки нет (Все метки)

Есть бинарное изображение.
Как считать его код и составить из него матрицу нулей и единиц?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2014, 18:18     Кодирование бинарного изображения
Посмотрите здесь:

Нахождение скелета бинарного изображения. - C++ Builder
Здравствуйте. Возникла следующая проблема. Не могу реализовать алгоритм нахождения скелета бинарного изображения. Задача состоит в том, что...

Преобразование бинарного изображения, используя метод Ниблэка - C++ Builder
Написать программу преобразования полутонового изображения в бинарное изображение, используя метод Ниблэка. Люди, у кого есть...

Кодирование - C++
В какой тип данных можно записывать по одному биту 0 или 1, чтобы потом можно было считать целиком последовательность. Например, 010 или 1.

Кодирование, C++ - C++
Закодировать каждую букву произвольного символьного массива равномерным кодом.

Кодирование - C++ Builder
Как сделать кодирование в запросе к сайту cyb =...

кодирование - C++ Builder
надо написать курсовик в инете нечего не нашел только декодирование на вашем сайте собственно нужно написать кодер/декодер методам...

Кодирование Хаффмана - C++
Есть дерево Хаффана, с помощью функции, приведенной ниже прохожусь по дереву и "выписываю" 0 и 1, получившиеся коды символов записываю в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 1
31.12.2014, 06:53     Кодирование бинарного изображения #2
Открываешь бинарный файл. Читаешь его, у тебя и будут нули и единицы.
Создаешь в памяти двумерный массив, и записываешь туда нули и единицы из файла.
Вот и получится матрица....
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.12.2014, 08:12     Кодирование бинарного изображения #3
solar_wind, не знаете, не отвечайте.Victrokex, бинарные графические файлы могут быть в разных форматах. Одни сразу содержат искомые матрицы, другие состоят из подматриц и в общем случае даже не гарантировано, что подматрицы хотябы одинаково ориентированы, может быть в одной следующий бит соответствует соседнему пикселу по горизонтали, а за последним в строке следует первый в следующей строке, а в другой соседний бит соответствует соседнему пикселу по вертикали, а за последним в столбце следует первый в следующем столбце. Возможно соседние биты соответствуют даже не соседним пикселам, на спектруме, например, стандартный формат имеет чередование строк, при котором номера соседних в файле строк различаются на 8. Кроме того, матрица, или её части всегда располагаются по некоторым смещениям от начала файла, от начала заголовка/подзаголовка, или от самих полей смещения. И мало даже этого, может быть в какой то части матрицы нули обозначены единицами, а единицы нолями. Может быть вообще целая подматрица обозначена некоторым кодом. Так что начинать надо с чтения спецификации конкретного формата. Что за файл? Какого типа?
solar_wind
31.12.2014, 08:18
  #4

Не по теме:

taras atavin, Ну так про формат ничего не сказано, и про то что конкретно должна содержать матрица тоже

taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.12.2014, 09:02     Кодирование бинарного изображения #5

Не по теме:

Он просто не знал.



Добавлено через 31 секунду
Victrokex, назови тип файла, покопаюсь в энциклопедии.
Victrokex
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 21
01.01.2015, 09:47  [ТС]     Кодирование бинарного изображения #6
я беру обычную картинку, делаю ее размером 512х512, и сохраняю в черно-белом формате бмп
вот такое изображение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2015, 10:47     Кодирование бинарного изображения
Еще ссылки по теме:

Кодирование/Декодирование - C++ Builder
Добрый вечер! Народ выручайте))) Имеется функция, которая как кодирует так и декодирует текст: AnsiString XOR_Crypt(AnsiString in,...

Кодирование информации! - C++
ПОДСКАЖИТЕ, в чем может быть ошибка! #include <iostream> #include <fstream> using namespace std; void code() { ifstream...

Кодирование слов - C++
Здравствуйте, форумчане. Тренируюсь в с++ - пишу программу. Смысл её в кодировании в ту и в другую сторону слов, учитывая, что a-1, b-2,...

Равномерное кодирование - C++
Скажу коротко, есть задание : программа должна сжимать файлы текстовые и бинарные с помощью равномерного кодирования. И если с исходным...

шифрование и кодирование - C++
помогите написать програму!!!! метод шифрования LZ77


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
01.01.2015, 10:47     Кодирование бинарного изображения #7
Цитата Сообщение от Victrokex Посмотреть сообщение
я беру обычную картинку, делаю ее размером 512х512, и сохраняю в черно-белом формате бмп вот такое изображение
не бывает "обычных" картинок. Файл BMP начинается с заголовка
C++
1
2
3
4
5
6
7
8
9
10
#pragma pack(push, 1)
struct WINBMPFILEHEADER
{
 uint16_t FileType; //4D42
 uint16_t FileSize;// Размер файла
 uint16_t Reserved1;
 uint16_t Reserved2;
 uint32_t BitmapOffset; // Смещение данных
};
#pragma pop(push, 1)
В зависимости от версии дальше может быть
C++
1
2
3
4
5
6
7
8
9
10
#pragma pack(push, 1)
struct WIN2XBUTMAPHEADER
{
 uint32_t Size; //  Размер заголовка
 int16_t Width;
 int16_t Height;
 uint16_t Panels;
 uint16_t BitPerPixels;
};
#pragma pop(push, 1)
Раз нужны только единицы и ноли, то BitPerPixels=1, но дальше идти рано, надо определить версию. Чему равен Size в WIN2XBUTMAPHEADER? Если не 12, то вместо этого заголовка на его месте расположен другой заголовок более поздней версии и данные могут быть сжаты. Если Size=40, то на самом деле вместо этого заголовка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct WIN3XBUTMAPHEADER
{
 uint32_t Size; //  Размер заголовка
 int16_t Width;
 int16_t Height;
 uint16_t Panels;
 uint16_t BitPerPixels;
 uint32_t Compression;
 uint32_t SizeOfBitmap;
 int32_t HorzResolution;
 int32_t VertResolution;
 uint32_t ColorsUsed;
 uint32_t ColorsImportant;
};
#pragma pop(push, 1)
. Можно назад на 12 байт не возвращаться, а сразу декларировать union и если 40, то дочитать оставшиеся 28 байт по указателю на поле Compression.
Yandex
Объявления
01.01.2015, 10:47     Кодирование бинарного изображения
Ответ Создать тему
Опции темы

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