Обработка телевизионных изображений средствами языка Java
В данной дипломной работе проводится анализ средств языка Java для работы с изображениями. Также рассмотрены два основных метода коррекции хроматических аберраций – с помощью коэффициента корреляции и с помощью метода поиска углов на изображении.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 5,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
public static double getCorrelationCoefficientRedOnGreen() {
double sumUpper = 0.0;
for (int i = 0; i < sR.rows(); i++) {
for (int j = 0; j < sR.cols(); j++) {
sumUpper += (sR.get(i, j) - averageIntensityR) * (sG.get(i, j) - averageIntensityG);
}
}
double sqrtSum = 0.0, mulSum = 0.0, sumLowerOne = 0.0, sumLowerTwo = 0.0;
for (int i = 0; i < sR.rows(); i++) {
for (int j = 0; j < sR.cols(); j++) {
sumLowerOne += Math.pow((sR.get(i, j) - averageIntensityR), 2);
sumLowerTwo += Math.pow((sG.get(i, j) - averageIntensityG), 2);
}
}
mulSum = sumLowerOne * sumLowerTwo;
sqrtSum = Math.sqrt(mulSum);
double result = sumUpper / sqrtSum;
return result;
}
При каждом смещении запоминается текущий вычисленный коэффициент корреляции. Таким образом, после прохождения всего цикла анализа смещений мы будем знать, на сколько пикселей надо сместить красный и синий компоненты по осям X и Y, для того, чтобы изображения максимально совпадали друг с другом.
Рис. 3.8 - Рассчитанные коэффициенты смещения
Как видно, согласно рассчитанному коэффициенту корреляции, красную компоненту необходимо сместить на -4 пикселя по оси X и на +1 пиксель по оси Y, а синюю компоненту на +4 пикселя по оси X и на -1 по оси Y.
Нажмём кнопку Apply Auto Correction и убедимся в правильности произведения коррекции хроматических аберраций методом расчёта коэффициента корреляции Пирсона.
Откорректированное изображение откроется в новом окне:
Рис. 3.9 - Откорректированное изображение
Как можно заметить, хроматические аберрации по краям объекта практически полностью исчезли.
Попробуем также произвести анализ и автоматическую коррекцию аберраций при помощи метода поиска углов на изображении Harris Corner Detection. Для этого загрузим изображение заново, отметим радио-кнопкой метод Corners и нажмём кнопку Auto Correction.
Рис. 3.10 - Загрузка изображения для коррекции методом поиска углов
Стоит отметить, что при коррекции хроматических аберраций методом поиска углов, зону интереса ROI выбирать не нужно, т.к. поиск будет вестись на всём изображении целиком. Можно предположить, что это, в свою очередь, положительно скажется на точности рассчитанных коэффициентов смещения.
В процессе поиска углов, исходное изображение также разделяется на три составляющих компоненты R, G, B и каждая из них анализируется по-отдельности. На выходе получаем три массива с координатами точек углов.
Рис. 3.11 - Найденные углы и их координаты
Также в главном окне программы, прокрутив список координат углов до конца, можно увидеть рассчитанные коэффициенты смещения.
Рис. 3.12 - Рассчитанные коэффициенты смещения
Как можно заметить, одна координата (Blue, координата X) на 1 пиксель отличается от значений, выданных методом расчёта коэффициента корреляции, что может говорить о высокой точности обоих используемых алгоритмов. Попробуем произвести коррекцию.
Рис. 3.13 - Изображение, откорректированное методом поиска углов Harris Corner Detection
Как видно, с помощью нахождения смещений методом Harris Corner Detection хроматические аберрации на изображении также практически полностью устранены.
Примеры работы программы по исправлению хроматических аберраций на других изображениях находятся в Приложении А.
Заключение
В настоящее время, наравне с развитием вычислительных систем и информационных технологий увеличивается потребность в системах автоматизации и роботизации в различных сферах деятельности - в науке, в промышленности и в повседневной жизни.
Как следствие этого, также велика потребность в эффективных способах обработки поступающей информации, в частности видеоданных. Эффективная обработка входной информации значительно повышает производительность таких систем, а также расширяет область их применения.
В своей работе я рассмотрел два различных алгоритма коррекции хроматических аберраций на цифровых изображениях - с помощью вычисления нормированного коэффициента корреляции Пирсона, и с помощью совмещения цветовых компонент методом обнаружения углов на изображении Harris Corner Detection.
Оба алгоритма были реализованы в приложении, написанном языке Java с использованием библиотеки JavaCV.
Как видно на практике, использование этих алгоритмов даёт практически одинаковые результаты коррекции. Возможно, алгоритм обнаружения углов Harris Corner Detection стоит использовать на более контрастных изображениях, на которых отчётливо видны границы объектов. А для более однотонных изображений предпочтительнее выбрать алгоритм поиска рассовмещений цветовых компонент на основе вычислениях коэффициента корреляции Пирсона.
Размещено на Allbest.ru
Подобные документы
Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.
курсовая работа [276,1 K], добавлен 19.07.2014История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.
курсовая работа [795,9 K], добавлен 14.12.2012Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.
презентация [192,3 K], добавлен 13.06.2014Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.
курсовая работа [962,8 K], добавлен 13.01.2016Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.
курсовая работа [549,2 K], добавлен 23.12.2015Общая характеристика и оценка возможностей языка программирования си-шарп, его сходные и отличительные черты от С++ и Java. Разработка с помощью данного языка программирования лексического и синтаксического анализатора. Составление таблиц разбора.
курсовая работа [111,6 K], добавлен 11.06.2010Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Разработка программы, реализующей построение объемной гистограммы с использованием свойств языка программирования Java. Возможность графически отобразить статистические данные урожайности как основное требование к программе. Реализация кода программы.
курсовая работа [333,5 K], добавлен 21.01.2013Архитектура уровня команд платформы Java, формат файла класса Java. Компилятор ассемблероподобного языка, позволяющий создавать файлы классов, корректно обрабатываемые реальной JVM, поддерживающий все команды байт-кода Java и важнейшие возможности JVM.
курсовая работа [292,6 K], добавлен 17.09.2008