Как я могу обработать изображение?

#c #bitmap #jpeg

#c #растровое изображение #jpeg

Вопрос:

Я создаю программу для преобразования файла изображения (любого типа файла, который будет проще всего) в G-Code для использования в rep-rap с приложением pen plotter.

Мне интересно, хочу ли я обрабатывать изображение попиксельно и проверять такие вещи, как цвет пикселя, как я мог бы сделать это с помощью C ?

Мне бы очень хотелось знать, как я могу обрабатывать растровое изображение, пиксель за пикселем, чтобы проверить цвет пикселя.

Ответ №1:

Лучший способ — использовать библиотеку, например, Magick .

Когда вы загружаете изображение, вы можете получить доступ к его пикселям с помощью Blob

Ответ №2:

Вероятно, вы захотите использовать существующую библиотеку, которая была протестирована.

Но для развлечения / практики / и т. Д. Это было бы хорошим упражнением, и его было бы невозможно выполнить. Формат растрового изображения (относительно) прост по сравнению с другими форматами изображений. Страница Википедии содержит несколько тонн информации, включая некоторый код на C . Похоже, что после того, как вы прошли мимо информации заголовка, вы переходите к массиву пикселей, который не должен быть сложным для анализа.

Удачи.

Ответ №3:

Большинство форматов изображений состоят из заголовка и фактических необработанных данных изображения. Изображение bimpap ничем не отличается. Если вы не хотите использовать одну из существующих библиотек или если вам это запрещено, вам следует прочитать о bitmap format :

http://en.wikipedia.org/wiki/BMP_file_format

Как только вы поймете это, вы сможете создать соответствующие структуры / классы для хранения нужной вам информации из заголовка, такой как размер x, y, bpp и т.д. А также иметь указатель на необработанные данные изображения. Затем вы могли бы просто перебирать каждый пиксель и делать с ним все, что захотите 🙂

Ответ №4:

После того, как вы расшифруете файл изображения, я предлагаю вам поместить пиксели в матрицу для первого прохода. (Будущие версии могут использовать другие методы для доступа к пикселям).

Вы можете применить преобразования к пикселям с помощью матричного умножения. Вы также можете получить доступ к пикселям по отдельности с помощью индексации массива.

Найдите в Интернете и ТАК далее «введение в графику c «.