Скрытие определенного канала изображения с помощью С#

у меня есть приложение для обработки изображений, которое может получить пиксель, кто-нибудь знает, как я могу скрыть или показать канал RGB моего изображения? Например, когда я нажимаю кнопку вызова «КРАСНЫЙ», он скроет красный канал и покажет только синий и зеленый. я использую C # между прочим, большое спасибо


person LouisL    schedule 24.11.2010    source источник


Ответы (2)


Попробуйте библиотеку AForge.NET. Используйте фильтр AForge.Imaging.Filters.ChannelFiltering.

person J-16 SDiZ    schedule 24.11.2010
comment
Эй, большое спасибо за твою помощь. Ты все еще работаешь над этим, но я думаю, что это должно сработать (: - person LouisL; 25.11.2010
comment
привет любая идея, как я могу UNapply фильтр? например, когда я нажимаю на красный фильтр, а затем на синий фильтр, синий будет накладываться на красный. спасибо заранее - person LouisL; 30.11.2010

Выделите blank изображение (1 канал) того же размера, что и исходное изображение. Затем при обработке нажатия кнопки для RED сделайте следующее:

  • разделить исходное изображение на R, G и B
  • создайте новое изображение, используя blank, G, B (именно в таком порядке, так как важен порядок каналов). Это исключает красный канал
  • отобразить составленное изображение

Аналогичным образом обрабатывать нажатия кнопок для BLUE и GREEN.

Методы split, compose и display широко используются в библиотеках изображений. Их точные имена могут различаться в зависимости от используемой вами библиотеки, но в целом их функциональные возможности должны быть одинаковыми. Кстати, какую библиотеку вы используете? Вы не упомянули об этом в своем вопросе.

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

person mpenkov    schedule 24.11.2010