WPF применить LUT к изображению Gray8C#

Место общения программистов C#
Ответить
Anonymous
 WPF применить LUT к изображению Gray8

Сообщение Anonymous »

У меня есть изображение Gray8.
Для примера, переход от черного к белому слева направо, но в реальном проекте есть настоящие изображения.
Моя конечная цель — нарисовать оранжево-белые пиксели при разрешении 255. и меньше других со значением Gray8, только для отображения.
Вот образец всего моего тестового кода

Код: Выделить всё

private FormatConvertedBitmap ApplyLut(List lut, BitmapSource source)
{
FormatConvertedBitmap newFormatedBitmapSource = new FormatConvertedBitmap();
newFormatedBitmapSource.BeginInit();
newFormatedBitmapSource.Source = source;
BitmapPalette myPalette = new BitmapPalette(lut);
newFormatedBitmapSource.DestinationPalette = myPalette;

if (lut.Count < 6)
{
// If y try Indexed1, Indexed2, or Indexed4 it's the same result,
// and for Index8, it seems that nothing his apply
newFormatedBitmapSource.DestinationFormat = PixelFormats.Indexed4;
}
else
{
// for 256 colors list, previous PixelsFormat doesn't work
// and for Index8, it seems that nothing his apply
newFormatedBitmapSource.DestinationFormat = PixelFormats.Indexed8;
}

newFormatedBitmapSource.EndInit();

return newFormatedBitmapSource;
}
И результат:
Изображение

Первое изображение слева — исходное, второй тест с 2 цветами, следующий тест с 5 цветами и последний тест с 256 цветами.
I прочитал много тем,
тема Stackoverflow
тема Stackoverflow
документация Microsoft
документация Microsoft
и некоторые другие, но некоторые вещи не понимаю.Во-первых, насколько я понимаю, LUT — это массив или словарь, который связывает значение серого (от 0 до 255) со значением RGB.
Если бы это было так, то почему, на в моем образце из 2 цветов есть оранжевый в темном оттенке и синий в прозрачном?
И почему в образце из 5 цветов есть смешанные цвета?
Это хорошо, но не то, что мне нужно.
Во-вторых, почему при выборе 256 цветов ничего не происходит?
В-третьих, как можно применить оранжевый цвет к пикселям при 255?
Вы можете получить исходное изображение здесь https://www.cjoint.com/c/NDtrfpLR4uS
Я ожидаю, что серый пиксель между [0, 254] сохранит свое значение, а пиксели - 255. отображаются оранжевым цветом при отображении изображения.
Наведите курсор, если кто-то знает, как это сделать с помощью emgu, мне тоже интересно.
Спасибо< /п>

Подробнее здесь: https://stackoverflow.com/questions/783 ... y8-picture
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»