51347

Основы сжатия. 2D Дискретное косинусное преобразование

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Написать программу осуществляющую прямое и обратное двумерное ДКП Дискретное Косинусное преобразование над выбранным изображением. Общий вид программы следующий: Здесь мы видим следующие элементы управления: Загрузить изображение загружает изображение и выводит в Imge Прямое 2DДКП преобразование Делает прямое преобразование и сохраняет в фаил Обратное 2DДКП преобразование Делает обратное преобразование из файла полученного ранее Код программы:...

Русский

2014-02-09

150.5 KB

23 чел.

Лабораторная работа 5.

Основы сжатия. 2D Дискретное косинусное преобразование


Выполнил: Шуклецов М.А.

 ФРТ, гр. 2106

Цель работы: Написать программу, осуществляющую прямое и обратное двумерное ДКП (Дискретное Косинусное преобразование) над выбранным изображением. Промежуточный массив данных сохранить во временный файл dct2d.data. После обратного преобразования результат вывести на экран.

Общий вид программы следующий:

Здесь мы видим следующие элементы управления:

«Загрузить изображение» - загружает изображение и выводит в Image

«Прямое 2D-ДКП преобразование» - Делает прямое преобразование и сохраняет в фаил

«Обратное 2D-ДКП преобразование» - Делает обратное преобразование из файла, полученного ранее

Код программы:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "cos_functions.h"    //Подключение внешних функций

#include "dct.h"

#include "extern.h"

#include "matrix_and_images.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

double CosMatrix[8][8];     //Объявление матрицы 8х8 для прямого ДКП

double CosMatrix_T[8][8];    //Объявление матрицы 8х8 для обратного ДКП

int dct_size = 8;      //Объявление размера для ДКП

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (OpenPictureDialog1->Execute())

       {

          try{

          Image_2D_Source->Picture->LoadFromFile(OpenPictureDialog1->FileName);

             }

           catch (EInvalidGraphic &Ex){

        ShowMessage("Ошибка загрузки изображения");

          }

       }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

DCT_2D_Full("sourse", Image_2D_Source->Picture->Bitmap->Handle, dct_size);  

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

IDCT_2D_Full("sourse", Image_2D_Dest);

}

//---------------------------------------------------------------------------

Вывод: Мы использовали заимствованную функцию, которая совершает ДКП при этом при прямом проходе создает временный фаил ”source” с размерами получаемыми через ярлык Image_2D_Source->Picture->Bitmap->Handle и размерами шага рамки в 8 пикселей. При обратном проходе берется вышеописанный фаил и изображение выводиться во 2 рамке.


 

А также другие работы, которые могут Вас заинтересовать

16324. ОПРЕДЕЛЕНИЕ ПОКАЗАТЕЛЯ ПРЕЛОМЛЕНИЯ И СРЕДНЕЙ ДИСПЕРСИИ ЖИДКОСТИ С ПОМОЩЬЮ РЕФРАКТОМЕТРА ИРФ-22 373.5 KB
  ОПРЕДЕЛЕНИЕ ПОКАЗАТЕЛЯ ПРЕЛОМЛЕНИЯ И СРЕДНЕЙ ДИСПЕРСИИ ЖИДКОСТИ С ПОМОЩЬЮ РЕФРАКТОМЕТРА ИРФ22 Методические указания содержат подробное описание одной лабораторной работы общего физического практикума по оптике. Целью работы является определение показателей пре...
16325. ИЗУЧЕНИЕ ВНЕШЕНЕГО ФОТОЭФФЕКТА 174.5 KB
  ИЗУЧЕНИЕ ВНЕШЕНЕГО ФОТОЭФФЕКТА Теоретическая часть Описание явления. Свет падающий на вещество передает этому веществу энергию в результате чего могут возникать разнообразные эффекты. Среди этих явлений важное место занимает внешний фотоэлектрический эффект ...
16326. ОПРЕДЕЛЕНИЕ ПОКАЗАТЕЛЯ ПРЕЛОМЛЕНИЯ СТЕКЛА ПРИ ПОМОЩИ МИКРОСКОПА 137.5 KB
  ОПРЕДЕЛЕНИЕ ПОКАЗАТЕЛЯ ПРЕЛОМЛЕНИЯ СТЕКЛА ПРИ ПОМОЩИ МИКРОСКОПА Теоретическая часть В основе определения показателя преломления стекла в данной работе используется один из фундаментальных законов геометрической оптики: закон преломления света. Согласно ...
16327. ИЗУЧЕНИЕ МИКРООБЪЕКТОВ ПРИ ПОМОЩИ МИКРОСКОПА 259.5 KB
  Лабораторная работа ИЗУЧЕНИЕ МИКРООБЪЕКТОВ ПРИ ПОМОЩИ МИКРОСКОПА Теоретические основы эксперимента Принцип действия микроскопа основан на формировании увеличенного изображения исследуемого объекта за счет увеличения угла зрения линзами. На рис.1 показан ход ...
16328. Поляризация света. Лабораторный практикум по общей физике 648.5 KB
  Поляризация света Лабораторный практикум по общей физике Оптика Содержание Часть I Теоретические основы эксперимента Электромагнитная природа света. Уравнения Максвелла Поперечность световой волны и поляризация света Поляризация при отражении
16329. Программирование алгоритмов линейной структуры 131.5 KB
  Лабораторная работа № 1 Программирование алгоритмов линейной структуры Цель: приобретение навыков программирования алгоритмов линейной структуры с помощью подпрограммыфункции вычисляющей значение арифметических выражений. Индивидуальные варианты лаборатор
16330. Программирование алгоритмов разветвляющейся структуры 293 KB
  Лабораторная работа № 2 Программирование алгоритмов разветвляющейся структуры Цель: приобретение навыков программирования алгоритмов разветвляющейся структуры с помощью пользовательской подпрограммыпроцедуры где на определенном этапе производится выбор очеред...
16331. Программирование алгоритмов ветвлений со многими вариантами 54.5 KB
  Лабораторная работа № 3 Программирование алгоритмов ветвлений со многими вариантами Цель: приобретение навыков программирования алгоритмов ветвлений со многими вариантами с помощью пользовательской подпрограммыфункции позволяющей выбрать необходимый вариант из...
16332. Программирование алгоритмов циклической структуры 128.5 KB
  Лабораторная работа № 4 Программирование алгоритмов циклической структуры Цель: приобретение навыков программирования алгоритмов циклической структуры с помощью подпрограммыпроцедуры позволяющую вычислять сумму произведение конечного ряда с помощью операторо