конвертировать 24 бит на пиксель в 8 бит тифф - PullRequest
0 голосов
/ 05 января 2010

Я хочу преобразовать 24-битное на пиксель (Rgb) int 8-битное на пиксель TIFF-изображение. Есть ли какой-нибудь код для конвертации? Пожалуйста, поделитесь или скажите мне алгоритм с диезом

Ответы [ 3 ]

1 голос
/ 06 января 2010

Вот хороший учебник с кодом C #:

http://www.switchonthecode.com/tutorials/csharp-tutorial-convert-a-color-image-to-grayscale

Отказ от ответственности: я работаю в Atalasoft.

Если вы заинтересованы в коммерческом решении, вы можете сделать это с помощью DotImage . Код для преобразования одиночного кадра в формате

AtalaImage img = new AtalaImage("file.tif");
img = img.GetChangedPixelFormat(PixelFormat.Pixel8bppGrayscale);
img.Save("gray.tif", new TiffEncoder(), null);

Если у вас есть многостраничные файлы TIFF, вам просто нужно их просмотреть.

1 голос
/ 06 января 2010

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

Очень простой алгоритм дизеринга описан на этой странице: http://wwwhome.cs.utwente.nl/~schooten/graphics/ Это не очень высокое качество, но это легко понять с первой попытки.

После этого попробуйте алгоритм сглаживания Флойда-Стейнберга. http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering

1 голос
/ 05 января 2010

Вы имеете в виду, как превратить изображение RGB в изображение в оттенках серого? Простой метод, основанный на восприятии, заключается в преобразовании его в цветовое пространство YIQ и отбрасывании информации о цветности. Вы можете сгенерировать часть яркости по этому уравнению:

 l = (0.299*r) + (0.583*g) + (0.114*b)
...