Я - путь поздно к стороне здесь, но для будущих искателей я использовал следующий алгоритм для персонального приложения, которое я записал.
В первую очередь, регион для сокращения выбран пользователем и передан красному глазному методу сокращения как центральная точка и радиус. Циклы метода через каждый пиксель в радиусе и делают следующее вычисление:
//Value of red divided by average of blue and green:
Pixel pixel = image.getPixel(x,y);
float redIntensity = ((float)pixel.R / ((pixel.G + pixel.B) / 2));
if (redIntensity > 1.5f) // 1.5 because it gives the best results
{
// reduce red to the average of blue and green
bm.SetPixel(i, j, Color.FromArgb((pixel.G + pixel.B) / 2, pixel.G, pixel.B));
}
Мне действительно нравятся результаты этого, потому что они сохраняют интенсивность цвета, что означает, что легкое отражение глаза не уменьшается. (Это означает, что глаза сохраняют свой "живой" взгляд.)
Сначала необходимо найти глаза! Стандартный путь состоял бы в том, чтобы выполнить граничный детектор, и затем Hough преобразовывает для нахождения двух кругов того же размера, но могли бы быть более легкие алгоритмы для того, чтобы просто найти кластеры красных пикселей.
Тогда необходимо решить, что заменить их, предположив, что существует достаточно зеленых/синих данных в изображении, Вы могли просто проигнорировать красный канал.
OpenCV является очень хорошей свободной библиотекой для обработки изображений, это могло бы быть излишество для того, что Вы хотите - но имеет много примеров и очень активного сообщества. Вы могли также искать алгоритмы отслеживания объекта, отслеживание цветного объекта в сцене очень similair и типичная проблема.
большая библиотека для нахождения глаз openCV. это очень богато с функциями обработки изображений. см. также этот бумага с заголовком "Автоматическое красное глазное обнаружение" от Ilia V. Safonov.
Если никто больше не придумывает более прямой ответ, Вы могли бы всегда загружать исходный код для GIMP и видеть, как они делают это.
Самый простой алгоритм, и тем не менее тот, который является очень эффективным, должны были бы обнулить R триплета RGB для видимой области.
красный исчезает, но другие цвета сохраняются.
дальнейшее расширение А этого алгоритма могло бы включить обнуление, значение R только для утраивания, где красный является доминирующим цветом (R> G и R> B).
Можно попробовать imagemagick - некоторые подсказки на этой странице для того, как сделать это
, http://www.cit.gu.edu.au/~anthony/info/graphics/imagemagick.hints
ищет красный глаз на странице
Проект с открытым исходным кодом Paint.NET имеет реализацию в C#.
Нет. Можно установить 32-разрядное программное обеспечение на машине бита x64, но Вы не можете установить базирующееся программное обеспечение x64 на 32-разрядной машине.
http://www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm
Это правило относится ко всем Операционным системам.