Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Преобразование цветного изображения в черно-белое C#
В статье рассмотрим алгоритм перевода цветного изображения в черно-белое и напишем его реализацию на языке C#. Приводится исходный код программы, написанной в Visual Studio – приложение Windows Forms.
Сразу оговоримся, что под преобразованием в черно-белое изображение будем понимать преобразование в оттенки серого. В рамках данного материала эти два понятия используются как синонимы.
Алгоритм преобразования в черно-белое изображение
Каждый пиксель изображения формируется при помощи сочетания четырех каналов: ARGB (Alpha, Red, Green, Blue), альфа-канала, красного, зеленого и синего.
Альфа-канал отвечает за прозрачность пикселя (100% – пиксель полностью непрозрачный, 0% – полностью прозрачный).
Сочетание значений RGB каналов определяет цвет пикселя.
Каждый канал несёт в себе 8 бит информации (1 байт), соответственно интенсивность канала может меняться в диапазоне от 0 до 255. Полностью пиксель занимает в памяти 32 бита (4 байта).
Для того, чтобы преобразовать цветное изображение в черно-белое, нужно найти среднее арифметическое значение R, G и B каналов пикселя и затем это значение присвоить RGB каналам этого же пикселя (то есть оно будет одинаковое). Альфа-канал оставляем без изменений.
Такую операцию нужно проделать с каждым пикселем изображения.
Программа для преобразования цветного изображения в черно-белое
Приступим к написанию приложения Windows Forms в среде разработки Visual Studio на языке программирования C#.
Создадим новый проект программы и разместим на форме 3 кнопки (Button) и два контейнера под изображения PictureBox. Кнопки понадобятся для: открытия изображения, преобразования в черно-белое (в оттенки серого) и сохранения преобразованной картинки на компьютер.
Свойства кнопок Text изменим на:
Имена кнопок (Name), используемые при разработке, изменим на:
Размеры обоих PictureBox (Size) сделаем равными 400 x 400 пикселей.
Чтобы вокруг границ PictureBox отображалась рамка в виде сплошной тонкой линии, установим значение свойства BorderStyle в положение FixedSingle.
Также у PictureBox свойство SizeMode сделаем равным Zoom. Данная настройка позволит автоматически масштабировать отображаемые изображения в соответствии с размером PictureBox, при этом сохраняя соотношения сторон исходной картинки.
Перейдём к написанию кода. Сначала закодируем обработку нажатий кнопок “Открыть” и “Сохранить”:
Преобразование десятичного изображения в оттенки серого в Java
У меня есть массив 2D, который содержит значения от 0-1.0, и моя цель-создать изображение, где каждый элемент соответствует цвету между белым и черным. Чем выше значение, тем больше белого и наоборот.
До сих пор я придумал следующий код Java:
Очевидно, что это не будет работать, так как это просто фиктивная функция, но скажем, у меня был элемент массива, arr[0][5] = 0.85. Как бы я мог преобразовать это в значение rgb, которое равно соответствующему значению цвета?
1 ответ
Я загружаю 24-битный образ RGB из файла PNG в свое приложение OpenCV. Однако загрузка изображения в оттенках серого непосредственно с помощью imread дает очень плохой результат. Mat src1 = imread(inputImageFilename1.c_str(), 0); Загрузка изображения RGB как RGB и преобразование его в оттенки.
Привет всем я хочу конвертировать все изображения в оттенки серого в моем каталоге, но код, который я знаю, делает эту задачу только один за другим!!Но у меня есть много изображений, и я хочу, если есть код, который преобразует все изображения в каталоге в оттенки серого или
Используйте тип изображения TYPE_INT_ARGB (цветное изображение поддерживает серый масштаб без проблем). Воспользуйся
чтобы задать целочисленное значение цвета для BufferedImage , здесь gray -это оттенок серого в диапазоне 0 .. 255. Если изображение огромно, чтобы избежать создания и сбора мусора большого количества объектов Color , вы можете реализовать какую-то серую шкалу для кэширования цвета.
Этот подход поддерживает только 255 уровней серого цвета. Вам может понадобиться более сложный подход, если требуется больше уровней. Если вы представляете некоторую измеренную физическую ценность в своем изображении, я бы предложил использовать цвет также для представления разных уровней. Такие ложные цветные изображения распространены в науке, поскольку они позволяют легче видеть больше уровней.
Похожие вопросы:
Как я могу преобразовать обычное изображение в оттенки серого изображения в windows phone 8. Есть ли какие-либо условия для преобразования оттенков серого доступны в WritableBitmapEx.
Есть ли способ преобразовать изображение в оттенки серого 16 бит на пиксель формата, а не устанавливать каждый из компонентов r,g и b В яркость. В настоящее время у меня есть bmp из файла. Bitmap c.
Я хочу конвертировать цветное изображение в оттенки серого без слишком много предопределенных методов. код чтения цветного изображения находится здесь Основной метод: BufferedImage img = null; try <.
Я загружаю 24-битный образ RGB из файла PNG в свое приложение OpenCV. Однако загрузка изображения в оттенках серого непосредственно с помощью imread дает очень плохой результат. Mat src1 =.
Привет всем я хочу конвертировать все изображения в оттенки серого в моем каталоге, но код, который я знаю, делает эту задачу только один за другим!!Но у меня есть много изображений, и я хочу, если.
Я знаю, что мы можем преобразовать изображение RGB в оттенки серого с помощью PIL или PILLOW . Мы можем сделать это, импортировав Image . Один из способов, который может быть использован для этого.
У меня есть изображение, подобное приведенному ниже, которое я пытаюсь преобразовать в оттенки серого. Однако я не хочу стандартного преобразования в оттенки серого. В идеале я хотел бы определить.
Я новичок в jQuery и очень люблю его. Я хотел бы знать, есть ли эффект, подобный IE, в котором я могу конвертировать изображения в оттенки серого во время выполнения?
Как я могу преобразовать цветное изображение в оттенки серого с помощью кода java? Образец изображения в оттенках серого для справки:
Как преобразовать цветное изображение в оттенки серого в java
Как я могу преобразовать цветное изображение в оттенки серого с помощью кода java?
Образец изображения в оттенках серого для справки:
1 ответ
Я хотел бы преобразовать изображение в 2-цветное, черно-белое с помощью Java. Я использую следующий код для преобразования в оттенки серого: ColorConvertOp op = new ColorConvertOp( ColorSpace.getInstance(ColorSpace.CS_GRAY), null); BufferedImage grayImage = op.filter(image, null); Но я не уверен.
Я хочу преобразовать свое цветное изображение в оттенки серого и избежать использования команды rgb2gray .
Самый простой способ-нарисовать GRAY буферизованное изображение
Смотрите больше способов здесь
Похожие вопросы:
Я хочу преобразовать данные оттенков серого в цветное изображение с помощью C#. Я пытаюсь 2D и конвертировать 1D данные и показать bitmap, но я хочу показать цветное изображение.
Мне нужно предложение, как преобразовать изображение в прямоугольнике в изображение в оттенках серого. Я хочу преобразовать прямоугольник вокруг трубки в оттенки серого: for (int i = 612; i >= 0;.
Я хочу конвертировать цветное изображение в оттенки серого без слишком много предопределенных методов. код чтения цветного изображения находится здесь Основной метод: BufferedImage img = null; try <.
Я хотел бы преобразовать изображение в 2-цветное, черно-белое с помощью Java. Я использую следующий код для преобразования в оттенки серого: ColorConvertOp op = new ColorConvertOp(.
Я хочу преобразовать свое цветное изображение в оттенки серого и избежать использования команды rgb2gray .
Я пытаюсь реализовать алгоритм в компьютерном зрении и хочу попробовать его на множестве картинок. Фотографии все цветные, но я не хочу иметь с этим дело. Я хочу преобразовать их в оттенки серого.
Я новичок в OpenCV. Я изучаю сегментацию по алгоритму водораздела, и у меня есть проблема. Я должен преобразовать цветное изображение в черно-белое изображение через водораздел. Когда я использую.
изображение в вопросе: http://cdn1.ouchpress.com/media/celebrities/539/kate-upton-401846.jpg Я пытаюсь преобразовать изображение в оттенки серого с помощью команды ниже img =.
Я хочу просто преобразовать изображение в оттенки серого. Но все, что я получаю-это полностью black образ. Почему? BufferedImage original = ImageIO.read(url); BufferedImage image = new.
У меня есть массив формы (height, width, 4) , то есть формат RGBA, и я хочу преобразовать его в оттенки серого. Исходный массив имеет значение RGB как 0, и изображение полностью визуализируется на.