|
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 21
|
||||||
Перевод изображения в двоичный код23.06.2018, 14:56. Показов 10997. Ответов 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
Перевод в двоичный код Перевод в двоичный код Перевод в двоичный код Перевод в двоичный код Перевод в двоичный код Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|