Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
951
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
941
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1725
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4398
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
RGB для монохромного преобразования
Как преобразовать значения RGB пикселя в одно монохромное значение?
Я нашел одно возможное решение в цвете FAQ . Компонент яркости Y (от системы CIE XYZ ) захватывает то, что больше всего воспринимается людьми как цвет в одном канале. Итак, используйте эти коэффициенты:
mono = (0.2125 * color.r) + (0.7154 * color.g) + (0.0721 * color.b);
В этой статье MSDN используется (0.299 * color.R + 0.587 * color.G + 0.114 * color.B);
В этой статье Википедии используется (0.3* color.R + 0.59 * color.G + 0.11 * color.B);
Эта недавняя научная статья сравнивает state-of-the-art в преобразовании цветных фотографий в оттенки серого, включая простую формулу яркости и более сложные методы.
Это зависит от того, каковы ваши мотивы. Если вы просто хотите превратить произвольное изображение в оттенки серого и заставить его выглядеть довольно хорошо, то преобразования в других ответах на этот вопрос подойдут.
Если вы преобразуете цветные фотографии в черно-белые, процесс может быть как очень сложным, так и субъективным, требующим определенной настройки для каждого изображения. Чтобы получить представление о том, что может быть задействовано, взгляните на этот учебник из Adobe для Photoshop.
Репликация этого в коде была бы довольно сложной и все равно потребовала бы вмешательства пользователя, чтобы получить результирующее изображение эстетически "perfect" (что бы это ни значило!).
Как уже упоминалось, перевод в оттенки серого (обратите внимание, что монохроматические изображения не обязательно должны быть в оттенках серого) из RGB-триплета зависит от вкуса.
Например, вы можете обмануть, извлечь только синий компонент, просто выбросив красный и зеленый компоненты и скопировав вместо них значение синего. Другим простым и в целом приемлемым решением было бы взять среднее значение RGB-триплета пикселя и использовать это значение во всех трех компонентах.
Тот факт, что существует значительный рынок для профессиональных и not-very-cheap-at-all-no-sirree grayscale/monochrome converter плагинов для Photoshop только, говорит о том, что преобразование так же просто или сложно, как вы хотите.
Логика преобразования любого изображения на основе RGB в монохромный can-это не тривиальное линейное преобразование. На мой взгляд, такую проблему лучше решать с помощью "Color Segmentation" методов. Вы можете достичь "Color segmentation" с помощью кластеризации k-means.
Смотрите пример ссылки с сайта MathWorks.
Оригинальная цветная картинка.
После преобразования в монохромный с помощью K-средних кластеризация
Как это работает?
Соберите все значения пикселей из всего изображения. Из изображения, которое имеет ширину W пикселей и высоту H пикселей, вы получите значения цвета W *H. Теперь, используя алгоритм k-means, создайте 2 кластера (или ячейки) и бросьте цвета в соответствующий "bins". 2 кластера представляют ваши черно-белые оттенки.
Youtube видео, демонстрирующее сегментацию изображения с помощью k-means? https://www.youtube.com/watch?в=yR7k19YBqiw
Проблемы с этим методом
Алгоритм кластеризации k-средних чувствителен к выбросам. Несколько случайных пикселей с цветом, расстояние которого RGB находится далеко от rest толпы, могут легко исказить центроиды, чтобы получить неожиданные результаты.