Youtube-запись от 2025-07-25: https://youtu.be/oaiVhSS8zY4
Давайте не будем искать библиотеки
flowchart TB
img(Картинка)
column(Колонки)
array(Массив)
img:::black ==> |нарезать| column:::yellow
column ==> |ровать | array:::green
column ==> |прети| array
column ==> |интер| array
classDef green fill:#B8BA46;
classDef yellow fill:#FABD2F;
classDef white fill:#fff;
classDef black fill:#504945,color:#fff;
«Рисовать»: картинка должна полностью помещаться на экран осциллографа и отображаться в двух цветах; пропорции можно не сохранять
- Подготовить картинку
~~«Простая»: картинку можно приблизить функцией на плоскости (т.е. для каждого
xсуществует единственноеy)~~
- Перебрать все
x…- …и для каждого найти все
y- А потом перевести каждый
yв порог для осциллографа
flowchart LR
src(Исходник)
resized(Размер и цвет)
informat(Формат)
src:::black ==> resized:::black ==> informat:::black
classDef black fill:#504945,color:#fff;
«Подготовить»
- Сжать/растянуть исходник так, чтобы картинка помещалась в размер экрана осциллографа (его знаем)
- Конвертировать изображение в ч/б
- Обрезать пустые поля
«Перебрать»
- Переформатировать картинку так, чтобы перебор стал тривиальной задачей
flowchart LR
point(Точка)
proportion(Пропорция)
thresh(Порог)
point:::yellow ==> proportion:::yellow ==> thresh:::yellow
classDef yellow fill:#FABD2F;
«Найти y»
- Перебирать точки в колонке
- Проверять цвет каждой точки
-
Остановиться, если встретилась чёрная точка
«Перевести в порог»
- Рассчитать пропорцию
yотносительно всей длины колонки - Рассчитать порог перехода из 0 в 1 (скважность ШИМ) по очевидной формуле
- Желательно остаться в целых числах
Кажется, тут можно обойтись без C — если получится работать с картинкой как с единым целым
А тут вряд ли — цельная картинка распалась на набор данных
Делать мы ничего из этого, конечно же, не будем
👎
y = f(x)
А что если y сделать независимым от x?
Режим Лиссажу
- Статья в Wikipedia про пакет Netpbm и его форматы
- Netpbm Home Page — примечательный дизайн 😊
- Много всяких библиотек и инструментов, это хороший повод поговорить про open source
jpegtopnm image.jpg | pnmscale -xysize 32 32 | ppmtopgm | pgmtopbm | pnmtoplainpnm > image32.pbm