Путь разработчика    

Выполнение эффекта «красных глаз» на изображении в C#

eda2480d

В этом примере показан один подход для уменьшения эффекта «красных глаз». Иногда на снимке глаза человека или животного выходят ярко-красным. Это раздражающий эффект, вызванный вспышкой камеры, отскакивающей от сетчатки человека. К счастью, достаточно легко удалить красные глаза с помощью небольшого кода.

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

Программа использует метод RemoveRedeye, показанный в следующем коде, для преобразования красных пикселей в оттенки серого в выбранном прямоугольнике.

Python

Этот код пересекает пиксели в прямоугольнике. Если красный компонент пикселя больше его синих и зеленых компонентов, код устанавливает все три компонента пикселя в среднем по их исходным значениям. Поскольку красные, зеленые и синие компоненты теперь одинаковы, результатом является оттенок серого.

Обратите внимание, что этот метод преобразует любой пиксель, который является более красным, чем зеленый или синий. Это означает, что если вы выберите область на красном пальто, например, программа преобразует ее в оттенки серого.

Источник: http://csharphelper.com/blog/2015/07/perform-red-eye-reduction-on-a-picture-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Нарисуйте закругленные прямоугольники в C#

Библиотека GDI + предоставляет множество методов для рисования фигур, таких как прямоугольники, эллипсы, линии и дуги. К сожалению, он не обеспечивает мето...

25 11 2020 19:35:56

Треугольная матрица в C#

В этой статье мы напишем программу C#, чтобы проиллюстрировать нижнюю треугольную матрицу. Что такое нижняя треугольная матрица? Квадратная матрица называе...

24 11 2020 9:27:52

Может ли класс верхнего уровня быть закрытым или защищенным в Java

Нет. Класс верхнего уровня как закрытый был бы совершенно бесполезен, потому что ничто не имело бы к нему доступа. Если класс верхнего уровня объявлен как...

23 11 2020 18:58:41

Как использовать * args и ** kwargs в Python

Параметр с ** (двойной звездой) и * (звезда) позволяет определять функции для принятия и для пользователей передавать любое количество аргументов, position...

22 11 2020 3:19:23

Обработка XML-файлов Python

Что такое XML? XML означает расширяемый язык разметки . Стандарт XML - это гибкий способ создания информационных форматов и электронного обмена структуриро...

21 11 2020 9:58:20

1С:Предприятие. Практика программирования на платформе V7 (Н. Колпинский)

1 С: Предприятие. Практика программирования на платформе V7  Данные материалы рассчитаны на пользователей, знакомых с интерфейсом «1 С: Предприятия» и имеющих н...

20 11 2020 2:22:39

Ceкpeты JavaScript ниндзя (Джон Реэиг, Беэр Бибо)

Книга Секреты Javascript ниндзя раскрывает секреты мастерства разработки веб-приложений на Javascript. В книге Секреты Javascript ниндзя уделяется немало в...

19 11 2020 17:33:43

Почему мне нужно переопределить методы equals и hashCode в Java?

В Java каждый объект имеет доступ к методу equals(), поскольку он наследуется от класса Object. Если два объекта равны в соответствии с методом equals (Obj...

18 11 2020 11:46:50

Языки программирования для начинающих: с чего лучше начать?

Какие языки программирования подходят для начинающих? С какого лучше начать? В наше время программирование стало одной из самых востребовательных и высокооплачиваемых...

17 11 2020 0:13:36

Список всех файлов в папке в Java

Как читать все .txt-файлы в папке Подсчет количества файлов в каталоге с помощью Java Источник: http://net-informations.com/Java/files/folder.htm...

16 11 2020 22:36:11

Найдите дни, часы, минуты или секунды между двумя датами в C#

В этом примере используется TimeSpan, чтобы найти дни, часы, минуты или секунды между двумя датами. Когда пользователь меняет текст даты, программа выполня...

15 11 2020 4:24:14

Как отобразить иерархию управления формой в C#

В этом примере отображается иерархия элементов управления для формы. Это на самом деле относительно просто. Некоторые элементы управления могут содержать д...

14 11 2020 1:29:54

Перемещение элементов между двумя ListBoxes в C#

Один из способов позволить пользователю выбрать элементы из списка - использовать ListBox или CheckedListBox. Пользователь может щелкнуть, Ctrl + Click, Sh...

13 11 2020 21:33:20

Отображать изображения в базе данных Access в WPF и C#

В этом примере показано, как вы можете отображать изображения, хранящиеся в базе данных Access в программе WPF. Вы можете сделать это с помощью связанных э...

12 11 2020 22:32:52

1С: Предприятие,Эффективное программирование (Т.Н. Усиков)

Описан встроенный язык программирования пакета «1 С: Предприятие», методы настройки и конфигурирования системы с его помощью. Дополнительно содержит необход...

11 11 2020 4:25:18

Добавьте экран UAC для управления в C#

В Windows Vista и более поздних версиях Windows вы должны добавить экран UAC (контроль доступа пользователя) к кнопкам, запускающим процессы, требующие пов...

10 11 2020 22:17:47

Каковы основные интерфейсы Java Collections Framework

Структура Java Collection обеспечивает интерфейсы и реализации классов, которые позволяют обрабатывать данные простым и значимым. Интерфейс Collection нахо...

09 11 2020 10:57:41

Сделайте бесконечную серию меню в C#

Во время разработки я дал программе главное меню Инструменты с пунктом меню « Инструменты». Оба эти пункта меню используют следующий DropDownOpening обработ...

08 11 2020 21:25:41

Графически часы в C#

Элемент DateTimePicker позволяет выбирать даты и диапазоны дат, но нет стандартного элемента управления, который позволяет вам выбирать часы. В этом пример...

07 11 2020 1:48:25

Добавление и удаление изображений на листе Excel

... Метод InsertPicture вызывает метод Insert для активного листа Picture. Затем он устанавливает свойства изображения Top и Left в Top и Left местоположен...

06 11 2020 17:43:13

RandomAccessFile в Java

Java RandomAccessFile обеспечивает несущественный доступ к файлам. Он ведет себя как большой массив байтов, хранящихся в файловой системе. Это означает, чт...

05 11 2020 6:39:32

Добавление вкладок в TabControl во время выполнения в C#

Сообщение Сделать улучшенный собственный вкладчик TabControl в В C# показано, как создать созданный владельцем TabControl, который позволяет пользователю у...

04 11 2020 12:23:55

Установить положение видео с помощью полосы прокрутки с помощью WPF в C#

Пример Управление видео с помощью WPF MediaElement в C# позволяет вам установить положение видео несколькими способами. Вы можете использовать кнопки Next...

03 11 2020 21:23:52

Пиксельные части изображения в C#

Эта программа позволяет щелкнуть и перетащить, чтобы выбрать область и пикселировать область. Код, который позволяет вам выбрать область, интересен, но дос...

02 11 2020 11:50:27

1С:Предприятие. Бухгалтерский учет. Секреты работы (Наталья Рязанцева)

Книга "1 С: Предприятие. Бухгалтерский учет. Секреты работы" посвящена системе программ ведения автоматизированного учета на предприятиях, в организациях и у...

01 11 2020 20:36:54

Как найти слово под мышью в элементе управления RichTextBox в C#

Следующий метод WordUnderMouse возвращает слово под мышью в RichTextBox. В коде используется метод RichTextBox управления GetCharIndexFromPosition, чтобы п...

31 10 2020 7:18:54

Определить настраиваемые классы исключений в C#

Пример Выброс стандартного исключения в C# объясняет, как бросить исключения, чтобы сообщить программе о неожиданных ошибках. Пример См. Иерархию классов и...

30 10 2020 6:44:55

Класс FileWriter в Java

FileWriter - это представление символа Java.io. Это означает, что он может использоваться для написания символов. Он расширяет OutputStreamWriter, который...

29 10 2020 1:21:13

Изучаем JavaScript (Моррисон М.)

Вы готовы сделать шаг вперед в своей практике веб-программирования и перейти от верстки в HTML и CSS к созданию полноценных динамических страниц? Тогда при...

28 10 2020 4:40:23

jQuery Mobile. Разработка приложений для смартфонов и планшетов (Максимилиано Фиртман)

Рассмотрено использование фреймворка jQuery Mobile для создания гибких мультиплатформенных приложений для различных мобильных устройств (iPad, Kindle Fire,...

27 10 2020 14:38:42

Нарисуйте текст на сегменте линии в C#

В этом примере показано, как вы можете нарисовать текст в сегменте линии. Ключ - это метод DrawTextOnSegment, показанный в следующем коде. Этот метод может...

26 10 2020 8:19:33

Как удалить часть изображения в C#

В этом примере вы можете удалить часть изображения. Он позволяет загружать файл изображения, а затем щелкнуть и перетащить, чтобы выбрать область на изобра...

25 10 2020 21:13:54

Отображать данные master-detail в DataGrid в C#

Во время разработки я добавил проект Database.mdb в проект, установил его свойство «Build Action» в « Содержимое» и установил его свойство « Копировать в вых...

24 10 2020 13:41:46

Как генерировать случайные целые числа в определенном диапазоне в Java

В Java 1.7 или более поздней версии стандартный способ сделать это выглядит следующим образом: min: минимальное значение max: максимальное значение Пример...

23 10 2020 15:22:43

HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера, 4-е издание (Николай Прохоренок, Владимир Дронов)

Рассмотрены вопросы создания интерактивных Web-сайтов с помощью Н ТML, Javascript, PHP и MySQL, форматирования Web-страниц при помощи CSS. Даны основы Р Н Р и...

22 10 2020 21:57:58

Самоучитель Java (Хабибуллин И.Ш)

Самоучитель написан на основе материала лекций читаемых автором для студентов первого курса. Изложены практические приемы использования как традиционных, т...

21 10 2020 15:13:37

Язык JavaScript (Илья Контор)

Эта часть позволит вам изучить Javascript с нуля или упорядочить и дополнить существующие знания. Мы будем использовать браузер в качестве окружения, но ос...

20 10 2020 3:51:26

RandomAccessFile в Java

Java RandomAccessFile обеспечивает несущественный доступ к файлам. Он ведет себя как большой массив байтов, хранящихся в файловой системе. Это означает, чт...

19 10 2020 14:52:51

Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 3-е изд. (Робин Никсон)

Это популярное и доступное пособие поможет вам уверенно освоить динамическое веб-программирование с применением самых современных языков и технологий: PHP,...

18 10 2020 7:31:17

Как распечатать ListView с большим содержимым в C#

Одна из трудностей при печати таких данных заключается в том, что на экране может храниться гораздо больше данных, чем на печатной странице, поэтому трудно...

17 10 2020 8:32:19

Циклы в JavaScript (FOR, FOR-IN, While, do..while) с примерами

Looping - фундаментальная идея программирования, которая обычно используется при написании программ. Цикл представляет собой последовательность команд s, к...

16 10 2020 9:16:51

Циклы For и While в Python

Циклы - одна из самых важных функций в программировании. Петли предлагают быстрый и простой способ сделать что-то многократно. Он может выполнять > блок...

15 10 2020 0:54:20

Что такое виртуальная машина Java?

Java Virtual Machine (JVM) - это спецификация, предоставляющая среду выполнения, в которой может быть запущен Java-байт-код. Как следует из названия, JVM д...

14 10 2020 6:56:34

Используйте WMI для получения количества физических и логических процессоров в C#

В этом примере показано, как вы можете определить количество процессоров вашего компьютера, как физических, так и логических. Многие компьютеры в наши дни...

13 10 2020 16:20:42

Завершение работы Windows, перезагрузка, выход из системы, блокировка, спящий режим и спящий режим на C#

В этом примере показано, как программа C# может отключить Windows, перезагрузить, заблокировать, выйти из системы или спящий режим. Некоторые из этих опера...

12 10 2020 10:22:12

PHP 5 для чайников (Джанет Валейд)

Данная книга является введением в область Web-программирования на языке Р Н Р 5. С ее помощью можно быстро написать сценарий для Web, обеспечить взаимодейств...

11 10 2020 6:26:34

Что используется для создания строки Unicode в Python?

Кодировка символов сообщает компьютеру, как интерпретировать необработанные нули и единицы в реальных символах. В настоящее время существует множество разл...

10 10 2020 11:14:21

Что такое NullPointerException в Java

NullPointerException - исключение RuntimeException. Исключения в Runtime являются критическими и не могут быть пойманы во время компиляции. Они приводят к...

09 10 2020 0:18:39

Сделать владельцем рисованные меню в C#

Проще всего использовать меню со стандартным внешним видом, но вы можете сделать владельцы рисованных меню, если хотите. Это не сложно, но вам нужно выполн...

08 10 2020 0:56:22

Создайте список без дубликатов в C#

В этом примере создается список объектов Person без дубликатов. Следующий код показывает класс Person. Этот класс объявляет простые FirstName и LastName по...

07 10 2020 19:46:41

Список местоположений специальных папок в C#

Перечисление System.Environment класса SpecialFolders перечисляет специальные папки, такие как System, Cookies, Desktop и т. д. Метод класса GetFolderPath...

06 10 2020 8:24:32

Как сравнить производительность методов сравнения строк в C#

В этом примере используется следующий код для создания четырех строк: Затем он использует несколько методов для сравнения первой строки с другими. Например...

05 10 2020 15:36:43

Self в Python

Self в Python представляет экземпляр класса. В отличие от этого в C ++, «я» не является ключевым словом, это всего лишь соглашение о кодировании. Часто пер...

04 10 2020 9:46:12

Что такое синхронизация Java?

В информатике поток представляет собой последовательность инструкций внутри программы, которые могут выполняться независимо от другого кода. Многие потоки...

03 10 2020 8:49:12

Используйте методы расширения LINQ Min, Max и Average в C#

В этом примере показано, как использовать методы расширения LINQ Min, Max и Average для получения минимальных, максимальных и средних значений из массив. Ч...

02 10 2020 11:17:50

Важные характеристики объектов Python

Все объекты Python имеют уникальный идентификатор. Встроенная функция id() возвращает идентификатор объекта как целое. Это целое число обычно соответствует...

01 10 2020 12:15:12

Используйте очередь для рисования двоичного дерева с шириной первого цвета в C#

Пример Нарисуйте ширину в ширину двоичное дерево в C# показывает, как использовать Stack для рисования двоичного дерева в порядке глубины. Программа создае...

30 09 2020 1:10:12

Полностью обосновать абзацы текста в C#

Класс StringFormat делает его достаточно простым для выравнивания по левому краю, выравнивания по правому краю или центровки строки текста, но, как ни стра...

29 09 2020 11:15:36

Что такое поток Daemon в Java

Демон-поток - это поток поставщика услуг, который предоставляет услуги пользовательскому потоку. Демона, который работает в фоновом режиме и в основном соз...

28 09 2020 17:43:10


Parse error: syntax error, unexpected ',' in /home/users/9/9165884745/domains/flash-mx.ru/lessons/926.php on line 69