1. Анализ технического задания
По заданию, необходимо создать программу, которая позволяет изменять значения уровней яркости и контрастности изображения из файла формата bmp, фильтровать помехи, а также сохранять результат обратно в файл.
Для реализации приложения было выбрано использование объектно-ориентированного программирования. Оно предоставляет широчайшие воможности при написании программы, благодаря возможности инкапсуляции, наследования и полиморфизма.
Данное приложение было реализовано на мощном и гибком объектно-ориентированном языке программирования С#. Язык С# предоставляет все средства для реализации данного приложения. Он вобрал в себя все самое лучшее из языков C++ и Java. Также язык С# поддерживает платформу .NET Framework, что позволяет использовать приложение на различных персональных и переносных компьютерах, на которых установлена эта платформа.
...
2. Разработка алгоритмов
Первостепенной задачей было разработать алгоритмы для изменения яркости и контраста изображения, представленного в виде двумерного массива пикселей, передавая каждый пиксель в соответствующий метод.
Алгоритм изменения яркости:
В метод изменения яркости передаются размеры изображения, массив пикселей, текущее положение ползунка (poz) изменения яркости и максимальное значение, которое он может принимать (length).
1) Вычисляется на сколько процентов следует изменить яркость по формуле:
N = (100 / lenght) * poz (6)
2) Для каждого цветового канала рассчитывается новое значение по формуле:
I = I + N • 128 / 100 (7)
где I – соответственно R, G, B каналы каждого пикселя изображения.
3) Контролируется переполнение переменных по условию:
ЕСЛИ I < 0, ТО I = 0,
ЕСЛИ I > 255, ТО I = 255, (8)
где I – соответственно R, G, B каналы пикселя.
3) Возврат измененного массива пикселей.
...
5. Тестирование и отладка приложения.
Отличительной чертой программы от аналогичных должна являться простота в использовании и возможность работы практически со всеми форматами графических файлов.
1. Анализ технического задания
По заданию, необходимо создать программу, которая позволяет изменять значения уровней яркости и контрастности изображения из файла формата bmp, фильтровать помехи, а также сохранять результат обратно в файл.
Для реализации приложения было выбрано использование объектно-ориентированного программирования. Оно предоставляет широчайшие воможности при написании программы, благодаря возможности инкапсуляции, наследования и полиморфизма.
Данное приложение было реализовано на мощном и гибком объектно-ориентированном языке программирования С#. Язык С# предоставляет все средства для реализации данного приложения. Он вобрал в себя все самое лучшее из языков C++ и Java. Также язык С# поддерживает платформу .
...
5.3. Руководство пользователя
Для запуска приложения необходимо открыть файл Обработка изображений.exe. Перед вами откроется окно программы. Далее необходимо загрузить изображение в программу. Сделать это можно либо через меню «Файл», либо щелкнув мышью по области исходного изображения.
После окончания загрузки изображения (процесс загрузки отображается в строке состояния) можно установить параметры для коррекции и нажать кнопку «Применить». Начнется процесс обработки изображения. Внимание: время обработки завистит от установленных параметров. Обработка больших изображений может занимать до 10 секунд! Во время обработки невозможно изменить какие-либо параметры.
После завершения обработки изображение появится в области «Обработанное». Теперь вы можете без труда сравнить изображение до обработки и после. Для просмотра в отдельном окне необходимо щелкнуть левой кнопкой мыши по области исходного или обработанного изображения.
...
Приложение А. Листинг программы
Файл Program.cs
using System;
using System.Windows.Forms;
namespace Program
{
static class Program
{
///
/// Главная точка входа для приложения.
/// [STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
Файл MainForm.Designer.cs
namespace Program
{
partial class MainForm
{
///
/// Требуется переменная конструктора.
/// private System.ComponentModel.IContainer components = null;
///
/// Освободить все используемые ресурсы.
/// ///
истинно, если управляемый ресурс должен быть удален; иначе ложно.
...
1. Материалы сайта MSDN Microsoft//URL: http://msdn.microsoft.com/ (дата обращения 20.04.2016);
2. Статья «Формат Bmp-файла» URL: http://www.osp.ru/pcworld/2001/10/162292/ (дата обращения 03.04.2016);
3. Лабораторная работа «Локальная линейная фильтрация изображений»//
URL: s:\Kanunova\МИСЦОИ\Лабораторная работа №1 (дата обращения 11.04.2016);
4. Герберт Шилдт Полный справочник по C#.: Пер. с англ. —
М.: Издательский дом “Вильямс”, 2004. – 752 с.: ил.