- •Краскова Надежда Иннокентьевна
- •Повышение разрешающей способности изображений
- •Содержание:
- •Глава I. Обзор и сравнительный анализ методов и алгоритмов повышения разрешения изображений………………………………..5
- •Глава II. Проектная часть. Описание технологии выполнения……19
- •Введение
- •Глава I. Обзор и сравнительный анализ методов и алгоритмов повышения разрешения изображений
- •Анализ исследуемой проблемы
- •Расчет коэффициентов
- •Сравнительная оценка существующих программ, повышающих разрешение изображений
- •Глава II. Проектная часть. Описание технологии выполнения работы
- •2.1. Выбор оптимального инструментария для разработки
- •2.2. Разработка логической схемы и реализация алгоритма
- •2.2.1. Форма поиска файлов
- •2.2.2. Форма преобразования изображений
- •Кнопка «Преобразование»
- •Кнопка «Сохранить»
- •Меню «Файл» Элемент Меню «Файл» - подменю «Параметры страницы»
- •Элемент Меню «Файл» - подменю «Вывод на печать»
- •Элемент Меню «Файл» - подменю «Закрыть»
- •2.2.3. Реализация алгоритмов интерполяции
- •Заключение
- •Список использованной литературы
2.2.2. Форма преобразования изображений
Рис.10. Форма преобразования. Отображение указанного изображения
Форма преобразования изображений визуально разделена на две части. В левой стороне скомпонованы:
-
две рабочие кнопки («Преобразование» и «Сохранить»)
-
группа – выбор «Тип интерполяции» (между билинейной и бикубической)
-
группа – выбор расширения изображения (.jpg, . giv, .png, .bmp)
-
группа – изменение данных исходного разрешения и опция сохранения пропорций изображения
-
группа – отображение данных исходного разрешения изображения.
В правой части отображается изображение, которое преобразовывается. Для этого использован компонент Image (рисунок) для отображения изображений.
Кнопка «Преобразование»
Фрагмент кода:
procedure TForm3.Button1Click(Sender: TObject);
var
bm,bm1: TBitmap;
path,ext: string;
i,width,height,new_width,new_height: integer;
dx,dy: single;
begin
…
//билинейная
0: bm:=interpolate(bm, new_width/width,new_height/height);
//бикубическая
1: begin
bm1.Width:=new_width;
bm1.Height:=new_height;
//растягивание изображения
Unit4.deletescansrect(bm,bm1,bm.Canvas.ClipRect,bm1.Canvas.ClipRect);
//обработка бикубическим алгоритмом
bm:=Bicubic(bm1);
end;
end;
image1.Picture.Assign(bm);
label5.Caption:= inttostr(image1.picture.width);
label6.Caption:= inttostr(image1.picture.Height);
end;
end;
…
end;
end;
Рис.11. Кнопка «Преобразовать»
Свойство этой кнопки – преобразовывать выделенное изображение по одному из алгоритмов повышения разрешения: билинейной или бикубичекой интерполяции.
Кнопка «Сохранить»
Фрагмент кода:
…
begin
if savepicturedialog1.Execute then
begin
bitmap:=image1.Picture.Bitmap;
//выбор типа сохранения
case RadioGroup1.ItemIndex of
//jpg
0: begin
SaveBitmapToJPG(bitmap,savepictureDialog1.FileName+'.jpg');
end;
//gif
1: begin
SaveBitmapToGif(bitmap,savepictureDialog1.FileName+'.gif');
end;
//png
2: begin
SaveBitmapToPNG(bitmap,savepictureDialog1.FileName+'.png');
end;
//bmp
3: begin
image1.Picture.SaveToFile(savepictureDialog1.FileName+'.bmp');
…
Рис.12. Кнопка «Сохранить»
Кнопка «Сохранить» сохраняет измененные параметры по указанному пути.
При сохранении преобразованного изображения, можно выбрать с каким расширением его сохранить.
//выбор типа сохранения
case RadioGroup1.ItemIndex of
//jpg
0: begin
SaveBitmapToJPG(bitmap,savepictureDialog1.FileName+'.jpg');
end;
//gif
1: begin
SaveBitmapToGif(bitmap,savepictureDialog1.FileName+'.gif');
end;
//png
2: begin
SaveBitmapToPNG(bitmap,savepictureDialog1.FileName+'.png');
end;
//bmp
3: begin
image1.Picture.SaveToFile(savepictureDialog1.FileName+'.bmp');
end;
Фрагмент кода выбора типа интерполяции:
…
//выбор типа интерполяции
case RadioGroup2.ItemIndex of
//билинейная
0: bm:=interpolate(bm, new_width/width,new_height/height);
//бикубическая
1: begin
bm1.Width:=new_width;
bm1.Height:=new_height;
…
Выполняется выбор типа интерполяции, с помощью RadioGroup - группы зависимых переключателей. Он содержит специальные свойства для обслуживания нескольких связанных между собой зависимых переключателей.