В очередной раз надо "старый новый" автогид делать (практически то же самое, что и на инасановский оптоволоконный спектрограф, но с другим исполнительным механизмом). Решил, что хватит уже одни и те же куски кода туда-сюда таскать, рискуя выдернуть более старую версию с багами. Завел репу improclib и понемногу оформляю код в виде библиотеки. Кстати, с удивлением обнаружил, что у меня уже есть рабочая библиотека для работы с FITS-файлами ☺ Но таки подумал, что не стоит мешать эту библиотеку и ту (лучше в случае необходимости буду с тремя сразу линковать - ведь usefull_macros у меня уже стала обязательной библиотекой). Сейчас у меня реализованы простейшие вещи: чтение и запись jpg/png (при помощи header-only библиотеки stb); конструкторы-деструкторы для разных типов данных (изображения могут быть цветными или же одноканальными: uint8_t, uint16_t, uint32_t, float и double); генерирование простейших "паттернов": два типа крестов и "звезда" (функция Моффата); рисование прямых и окружностей по Брезенхему; эквализация гистограммы (правда, только для 8- и 16-битных изображений); преобразования между разными типами изображений; рисование текста. Как всегда, сразу же сопровождаю "примерами" (которые на самом деле используются для тестирования добавляемых функций). Вот, например, простейшее:
Изображение, сгенерированное genu16
Оно же после эквализации гистограммы equalize
Еще добавлю рисование сетки (только на цветных изображениях) — бывает нужно иной раз, и, наверное, вырезание подызображения. А там уж можно будет и остальное реализовать — морфологию, связные области и т.п.