ЗМІСТ
ВСТУП. ПОСТАНОВКА ЗАВДАННЯ.
. Опис алгоритмів ПОВОРОТУ ЗОБРАЖЕННЯ
. Розробка додатків на мові програмування C #
.1 Опис програми
.2 Тестування програми
ВИСНОВОК
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
ДОДАТОК А
ВСТУП. ПОСТАНОВКА ЗАВДАННЯ
У рамках вивчення дисципліни «Отримання і обробка зображень» в якості контрольної роботи поставлено завдання описати алгоритм і реалізувати функцію повороту зображення навколо центру на заданий користувачем кут. Косинус і синус кута обчислювати один раз. Всі вихідні параметри задавати довільно, здійснювати перевірку щодо відповідності діапазону допустимих значень.
1. Опис алгоритму повороту зображення
Для повороту зображення на заданий в градусах кут використовується функція private Bitmap RotateImage (Bitmap Image, int angle).
Вхідні параметри: Image - зображення для повороту; angle - кут повороту в градусах.
Функція повертає повернене на заданий кут зображення.
Алгоритм роботи функції:
) На вхід подається зображення і кут повороту в градусах;
) Обчислення синуса і косинуса кута повороту (раз). Кут повороту заданий у радіанах;
) Обчислення нової ширини і висоти зображення, використовуючи обчислений синус і косинус кута повороту;
) Ініціалізація масиву структур тиру Point (Point [] points=new Point [3]), які визначають паралелограм.
) Залежно від кута повороту (в якій чверті він лежить в радіанах) відбувається обчислення координат трьох точок для побудови нового зображення. Обчислення координат відбувається на основі пункту (3) даного алгоритму (нова ширина і висота - перерахунок координат Х і У точок);
) Отрісовка повернутого зображення по трьом точкам (лівий верхній, правий верхній і лівий нижній кути паралелограма. Четверта точка екстраполюється на основі перших трьох).
g.DrawImage (Image, points);- Функція промальовування.
7) Повернення повернутого зображення для використання поза даної функції.
Центрування зображення здійснюється властивістю елемента pictureBox1.SizeMode=PictureBoxSizeMode.CenterImage;
2. Розробка додатків на мові програмування C #
В якості інструменту розробки додатку по обробці зображення була обрана середу MS Visual Studio 2012. Мовою програмування обраний C #. Даний інструментарій надає достатній спектр можливостей по роботі з графікою.
Розроблено додаток згідно поставленому завданню.
2.1 Опис програми
поворот зображення кут діапазон
В основі додатка лежить клас frmRotationForm.
У даному класі реалізовані наступні методи:
Метод private void btnRotateImage_Click (object sender, EventArgs e) обробляє натискання на кнопку «повернути зображення». Після натискання відбувається спроба перетворення вмісту текстового поля в число (для подальшого використання в якості змінної ang, яка призначена для зберігання кута повороту в градусах). Також в даному методі здійснюється обробка виключень, запуск функції RotateImage, яка і здійснює поворот зображення.
Метод private Bitmap RotateImage (Bitmap Image, int angle) здійснює поворот зображення на заданий кут. Повертає повернене зображення.
Метод private void btnLoadImage_Click (object sender, EventArgs e) завантажує зображення з диска в PictureBox з оригінальним зображенням.
Метод private void timer1_Tick (object sender, EventArgs e) виконується на кожен такт таймера. У цьому додатку частота встановлена ??в 50 мілісекунд (для більш «гладкою» роботи в режимі «анімації»).
2.2 Тестування програми
Розроблене додаток тестувалося в середовищі Microsoft Windows 7 64-bit з встановленим .NET Framework 4.5. Результат запуску виконуваного файлу Image_Rotation.exe представлений на малюнку 2.1.
Рисунок 2.1 - Вікно додатку при запуску
При запуску в додатку «зашито» вбрання мною зображення за замовчуванням. Його можна змінити, натиснувши кнопку «Завантажити зображення». Результат вибору власного зображення представлений на малюнку 2.2.
Малюнок 2.2 - Вибір власного зображення для повороту
Подальші дії розглядаються на зображенні за замовчуванням. Вибравши кут повороту у відповідному текстовому ...