- •Краскова Надежда Иннокентьевна
- •Повышение разрешающей способности изображений
- •Содержание:
- •Глава I. Обзор и сравнительный анализ методов и алгоритмов повышения разрешения изображений………………………………..5
- •Глава II. Проектная часть. Описание технологии выполнения……19
- •Введение
- •Глава I. Обзор и сравнительный анализ методов и алгоритмов повышения разрешения изображений
- •Анализ исследуемой проблемы
- •Расчет коэффициентов
- •Сравнительная оценка существующих программ, повышающих разрешение изображений
- •Глава II. Проектная часть. Описание технологии выполнения работы
- •2.1. Выбор оптимального инструментария для разработки
- •2.2. Разработка логической схемы и реализация алгоритма
- •2.2.1. Форма поиска файлов
- •2.2.2. Форма преобразования изображений
- •Кнопка «Преобразование»
- •Кнопка «Сохранить»
- •Меню «Файл» Элемент Меню «Файл» - подменю «Параметры страницы»
- •Элемент Меню «Файл» - подменю «Вывод на печать»
- •Элемент Меню «Файл» - подменю «Закрыть»
- •2.2.3. Реализация алгоритмов интерполяции
- •Заключение
- •Список использованной литературы
2.2. Разработка логической схемы и реализация алгоритма
2.2.1. Форма поиска файлов
…
//построение дерева вложенных папок
procedure NextLevel(ParentNode: TTreeNode);
function DirectoryName(name: string): boolean;
begin
result := (name > '.') and (name > '..');
end;
var
sr, srChild: TSearchRec;
node: TTreeNode;
path: string;
begin
node := ParentNode;
path := '';
//построение полного пути к выбранной директории
repeat
path := node.Text + '\' + path;
node := node.Parent;
until
node = nil;
//поиск файлов
if FindFirst(path + '*.*', faDirectory, sr) = 0 then
begin
repeat
//если директории
if (sr.Attr and faDirectory > 0) and DirectoryName(sr.name) then
begin
//добавляем дочерний узел
node := Form2.TreeView1.Items.AddChild(ParentNode, sr.name);
//присвоение номер иконки
node.ImageIndex := 0;
//устанавливает выделение на первую ветвь
node.SelectedIndex := 1;
//отключает очерние элементы
node.HasChildren := false;
//ищет следующие папки
if FindFirst(path + sr.name + '\*.*', faDirectory, srChild) = 0 then
begin
//цикл для поиска всех вложенных
repeat
if (srChild.Attr and faDirectory > 0) and
DirectoryName(srChild.name) then
node.HasChildren := true;
until
(FindNext(srChild) > 0) or node.HasChildren;
end;
FindClose(srChild);
end;
until
FindNext(sr) > 0;
end
else
ParentNode.HasChildren := false;
// закрытие поиска
FindClose(sr);
end;
…
Рис.7. Форма поиска. Отображение структуры каталогов
В левой стороне отображается дерево вложенных папок – каталог данных.
//добавление миниатюр файлов в ListView
for i := 0 to FileListBox1.Items.Count - 1 do
begin
try
bitmap:=TBitmap.Create;
//открытие файла в bitmap
bitmap:=ExtToBmp(path+'\'+FileListBox1.Items[i]);
//установка размеров
dx:=ImageList2.Width/bitmap.Width;
dy:=ImageList2.Height/bitmap.Height;
//уменьшение до миниатюры
bitmap:=interpolate(bitmap,dx,dy);
//добавление нового пункта
item:=listview1.Items.Add;
//установка заголвока
item.Caption:=FileListBox1.Items[i];
//установка иконки из списка изображений
item.ImageIndex:=ImageList2.Add(bitmap,nil);
except
bitmap.Free;
end;
end;
…
Рис.9. Форма поиска. Отображение миниатюр изображений
В результате на правой стороне формы отображаются миниатюры изображений для выбора. Двойным щелчком выбирается изображение и следующим шагом открывается вторая форма – форма преобразования изображения.
Форма поиска является основной формой, появляется при запуске .exe-файла. Основной функцией этой формы является поиск файлов (изображений).
Элемент Меню «Файл» - подменю «Открыть»
….
begin
if OpenPictureDialog1.Execute() then
begin
//открытие изображения через OpenFileDialog
form3.hint:=OpenPictureDialog1.FileName;
form3.ShowModal;
end;
Реализуется открытие файла через компонент OpenFileDialog.
Элемент Меню «Файл» - подменю «Закрыть»
procedure TForm3.N4Click(Sender: TObject);
begin
close;
Производится закрытие формы поиска – всей оболочки.
Меню «Справка»
procedure TForm2.N7Click(Sender: TObject);
begin
panel1.Visible:=true;
end;
Рис.7. Справка. Руководство по пользованию
В меню «Справка» дается краткое руководство по пользованию, чтобы пользователь мог быстро и правильно применить данную программу.