Как я могу обработать изображение? - PullRequest
0 голосов
/ 06 октября 2011

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

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

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

Ответы [ 4 ]

0 голосов
/ 06 октября 2011

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

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

Поиск в Интернете и SO "введение в графику C ++".

0 голосов
/ 06 октября 2011

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

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

Удачи.

0 голосов
/ 06 октября 2011

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

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

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

0 голосов
/ 06 октября 2011

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

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

...