|
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 21
|
||||||
Перевод изображения в двоичный код23.06.2018, 14:56. Показов 10818. Ответов 5
Метки нет (Все метки)
Здравствуйте, форумчане! Прочитав статью о персептеронах (http://neuralnet.info/chapter/... %BD%D1%8B/), захотелось написать свой, но сталкнулся с проблемой, переводом картинки в двоичный код. Суть такая: есть картинка 55x55 пикселей, на которой есть только два цвета: абсолютно белый и абсолютно черный (формат .bmp, глубина цвета 1 бит), эту картинку надо перевести в двоичный, белый цвет - 0, черный цвет - 1. Вчера нашел код, который делает это, но 1) я не очень понял как он работает, 2) переводит изображение в двоичный код криво, т.е. на моей картинке нарисована буква "А", после перевода получается двоичный код, в котором можно увидеть 1) перевернутую букву "А", 2) она частично разорвана и смещена. Пожалуйста, помогите.
Код проги ниже:
0100001001001101111101100000000100000000 000000000000000000000000 0000000000000000001111100000000000000000 000000000010100000000000 0000000000000000001101110000000000000000 000000000011011100000000 0000000000000000000000010000000000000001 000000000000000000000000 0000000000000000101110000000000100000000 000000001100010000001110 0000000000000000110001000000111000000000 000000000000001000000000 0000000000000000000000100000000000000000 000000001111111111111111 1111111100000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000011110000000 0000000000000000000000000000000000000000 000000000000011111000000 0000000000000000000000000000000000000000 000000000000011111000000 0000000000000000000000001111000000000000 000000000000011111000000 0000000000000000000000011111000000000000 000000000000011111100000 0000000000000000000000011111000000000000 000000000000001111100000 0000000000000000000000111111000000000000 000000000000001111110000 0000000000000000000000111111000000000000 000000000000000111110000 0000000000000000000000111110000000000000 000000000000000111111000 0000000000000000000001111110000000000000 000000000000000011111000 0000000000000000000001111100000000000000 000000000000000011111100 0000000000000000000011111100000000000000 000000000000000001111100 0000000000000000000011111000000000000000 000000000000000001111100 0000000000000000000111111000000000000000 000000000000000001111110 0000000000000000000111110000000000000000 000000000000000000111110 0000000000000000001111110000000000000000 000000000000000000111111 1111111111111111111111100000000000000000 000000000000000000011111 1111111111111111111111100000000000000000 000000000000000000011111 1111111111111111111111000000000000000000 000000000000000000011111 1111111111111111111111000000000000000000 000000000000000000011111 1111111111111111111110000000000000000000 000000000000000000001111 1111111111111111111110000000000000000000 000000000000000000000111 1110000000000001111100000000000000000000 000000000000000000000111 1110000000000011111100000000000000000000 000000000000000000000011 1110000000000011111000000000000000000000 000000000000000000000011 1111000000000111111000000000000000000000 000000000000000000000001 1111000000000111110000000000000000000000 000000000000000000000001 1111100000001111110000000000000000000000 000000000000000000000000 1111100000001111100000000000000000000000 000000000000000000000000 1111110000011111100000000000000000000000 000000000000000000000000 0111110000011111000000000000000000000000 000000000000000000000000 0111111000111111000000000000000000000000 000000000000000000000000 0011111000111110000000000000000000000000 000000000000000000000000 0011111001111110000000000000000000000000 000000000000000000000000 0011111101111100000000000000000000000000 000000000000000000000000 0001111111111100000000000000000000000000 000000000000000000000000 0001111111111000000000000000000000000000 000000000000000000000000 0000111111111000000000000000000000000000 000000000000000000000000 0000111111110000000000000000000000000000 000000000000000000000000 0000011111110000000000000000000000000000 000000000000000000000000 0000011111110000000000000000000000000000 000000000000000000000000 0000011111100000000000000000000000000000 000000000000000000000000 0000001111100000000000000000000000000000 000000000000000000000000 0000001111100000000000000000000000000000 000000000000000000000000 0000000111100000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 000000000000000000000000 0000000000000000000000000000000000000000 00000000 01000010 01001101 11110110 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00111110 00000000 00000000 00000000 00101000 00000000 00000000 00000000 00110111 00000000 00000000 00000000 00110111 00000000 00000000 00000000 00000001 00000000 00000001 00000000 00000000 00000000 00000000 00000000 10111000 00000001 00000000 00000000 11000100 00001110 00000000 00000000 11000100 00001110 00000000 00000000 00000010 00000000 00000000 00000000 00000010 00000000 00000000 00000000 11111111 11111111 11111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000111 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000111 11000000 00000000 00000000 00000000 00000000 00000000 00000000 00000111 11000000 00000000 00000000 00000000 11110000 00000000 00000000 00000111 11000000 00000000 00000000 00000001 11110000 00000000 00000000 00000111 11100000 00000000 00000000 00000001 11110000 00000000 00000000 00000011 11100000 00000000 00000000 00000011 11110000 00000000 00000000 00000011 11110000 00000000 00000000 00000011 11110000 00000000 00000000 00000001 11110000 00000000 00000000 00000011 11100000 00000000 00000000 00000001 11111000 00000000 00000000 00000111 11100000 00000000 00000000 00000000 11111000 00000000 00000000 00000111 11000000 00000000 00000000 00000000 11111100 00000000 00000000 00001111 11000000 00000000 00000000 00000000 01111100 00000000 00000000 00001111 10000000 00000000 00000000 00000000 01111100 00000000 00000000 00011111 10000000 00000000 00000000 00000000 01111110 00000000 00000000 00011111 00000000 00000000 00000000 00000000 00111110 00000000 00000000 00111111 00000000 00000000 00000000 00000000 00111111 11111111 11111111 11111110 00000000 00000000 00000000 00000000 00011111 11111111 11111111 11111110 00000000 00000000 00000000 00000000 00011111 11111111 11111111 11111100 00000000 00000000 00000000 00000000 00011111 11111111 11111111 11111100 00000000 00000000 00000000 00000000 00011111 11111111 11111111 11111000 00000000 00000000 00000000 00000000 00001111 11111111 11111111 11111000 00000000 00000000 00000000 00000000 00000111 11100000 00000001 11110000 00000000 00000000 00000000 00000000 00000111 11100000 00000011 11110000 00000000 00000000 00000000 00000000 00000011 11100000 00000011 11100000 00000000 00000000 00000000 00000000 00000011 11110000 00000111 11100000 00000000 00000000 00000000 00000000 00000001 11110000 00000111 11000000 00000000 00000000 00000000 00000000 00000001 11111000 00001111 11000000 00000000 00000000 00000000 00000000 00000000 11111000 00001111 10000000 00000000 00000000 00000000 00000000 00000000 11111100 00011111 10000000 00000000 00000000 00000000 00000000 00000000 01111100 00011111 00000000 00000000 00000000 00000000 00000000 00000000 01111110 00111111 00000000 00000000 00000000 00000000 00000000 00000000 00111110 00111110 00000000 00000000 00000000 00000000 00000000 00000000 00111110 01111110 00000000 00000000 00000000 00000000 00000000 00000000 00111111 01111100 00000000 00000000 00000000 00000000 00000000 00000000 00011111 11111100 00000000 00000000 00000000 00000000 00000000 00000000 00011111 11111000 00000000 00000000 00000000 00000000 00000000 00000000 00001111 11111000 00000000 00000000 00000000 00000000 00000000 00000000 00001111 11110000 00000000 00000000 00000000 00000000 00000000 00000000 00000111 11110000 00000000 00000000 00000000 00000000 00000000 00000000 00000111 11110000 00000000 00000000 00000000 00000000 00000000 00000000 00000111 11100000 00000000 00000000 00000000 00000000 00000000 00000000 00000011 11100000 00000000 00000000 00000000 00000000 00000000 00000000 00000011 11100000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 11100000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 PS Автор статьи переводил свою картинку вручную т.к. её разрешение 3x5 пикселей; у меня в python shell двоичный код без брешей, не знаю почему здесь так; Мне 15 лет могу что-то не понимать, поэтому, пожалуйста, объясняйте подробнее и понятнее. Спасибо!
0
|
||||||
| 23.06.2018, 14:56 | |
|
Ответы с готовыми решениями:
5
Перевод текста в двоичный код перевод десятичного вещественного в машинный код(двоичный код) Двоичный код изображения |
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|||||||||
| 23.06.2018, 16:56 | |||||||||
О формтае bmp можно прочитать тут https://jenyay.net/Programming/Bmp
0
|
|||||||||
|
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 21
|
|
| 05.07.2018, 18:16 [ТС] | |
|
Извините, но я не очень понял как работает iter(), какой смысл несет/что делает эта строчка: f'{byte:08b}', как работает этот цикл for: for byte in chunk (также как и обычный?) и как работает/как влияет на вывод эта строчка: f.read(60)?
PS Извиняюсь, что не был на форуме две недели (не было интернета + пытался восстановить пароль от аккаунта), понимаю что это не очень хорошо.
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||||
| 05.07.2018, 19:45 | ||||||||
|
Насчет остального, вот упрощенная запись
0
|
||||||||
|
|
||
| 06.07.2018, 17:57 | ||
Сообщение было отмечено Wine как решение
РешениеВо-первых, зачем вам строки? Во-вторых, ручной разбор граф формата. На выходе вам надо получить numpy array, это стандарт. Считать картинку можно чере PIL. Делается это в одну операцию на питоне. Гуглить "python PIL image to numpy array".
1
|
||
|
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 21
|
|
| 12.07.2018, 21:34 [ТС] | |
|
Здравствуйте, dondublon, большое спасибо за подсказаное решение. Действительно, с помощью библиотеки PIL это делается гораздо проще.
Персептерон дописан, работает.
0
|
|
| 12.07.2018, 21:34 | |
|
Помогаю со студенческими работами здесь
6
Перевод в двоичный код Перевод в двоичный код Перевод в двоичный код Перевод в двоичный код Перевод в двоичный код Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|