• 大小: 55KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: matlab  DCT  

资源简介

交互式原理与应用的实际操作。本文件采用Matlab的代码进行操作。实现了DCT变换。 中间的Huffman编码略有精简

资源截图

代码片段和文件信息

function varargout = DCT(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name‘       mfilename ...
                   ‘gui_Singleton‘  gui_Singleton ...
                   ‘gui_OpeningFcn‘ @DCT_OpeningFcn ...
                   ‘gui_OutputFcn‘  @DCT_OutputFcn ...
                   ‘gui_LayoutFcn‘  []  ...
                   ‘gui_Callback‘   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State varargin{:});
else
    gui_mainfcn(gui_State varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before DCT is made visible.
function DCT_OpeningFcn(hobject eventdata handles varargin)
handles.output = hobject;

% Update handles structure
guidata(hobject handles);


% --- Outputs from this function are returned to the command line.
function varargout = DCT_OutputFcn(hobject eventdata handles) 
varargout{1} = handles.output;


% --- Executes on button press in Sure.
function Sure_Callback(hobject eventdata handles)
global image; %至关重要!!
%如果不再一次用global image,那么就调用不了sure里的变量
%同时还会报错说类型不对...struct...Image之类的

temp = get(handles.argument‘string‘);
argument = str2double(temp);
image_compress = dct_compress_function(imageargument);
axes(handles.axes2);
imshow(image_compress);
title(‘变换后图像‘);
%PSNR
psnr = PSNR_compute(imageimage_compress);
set(handles.PSNR‘string‘psnr);

%compression ratio
set(handles.compress_rate‘string‘rate);


function argument_Callback(hobject eventdata handles)


% --- Executes during object creation after setting all properties.
function argument_CreateFcn(hobject eventdata handles)

if ispc && isequal(get(hobject‘BackgroundColor‘) get(0‘defaultUicontrolBackgroundColor‘))
    set(hobject‘BackgroundColor‘‘white‘);
end

function PSNR_Callback(hobject eventdata handles)

function PSNR_CreateFcn(hobject eventdata handles)
if ispc && isequal(get(hobject‘BackgroundColor‘) get(0‘defaultUicontrolBackgroundColor‘))
    set(hobject‘BackgroundColor‘‘white‘);
end


% --------------------------------------------------------------------
function File_Callback(hobject eventdata handles)


% --------------------------------------------------------------------
function Open_File_Callback(hobject eventdata handles)
global image;
[filenamepathname]=uigetfile({‘*.bmp;*.jpg;*.png;*.jpeg;*.tif‘}‘选择图像‘);
if isequal(filename0)||isequal(pathname0)
    warndlg(‘Please select a picture first!‘‘Warning‘);
    return;
else
    str=[pathname filename];
    image= imread(str);
    axes(handles.axes1);
    imshow(image);
    title(‘原始图像‘);
end

% --------------------------------------------------------------------
function Save_File_Callback(hobject eventdata handles)
[FileNamePathName] = uiputfile({‘*.jpg‘‘JPEG(*.jpg)‘;...
                                 ‘*.bmp‘‘Bitmap(*.bmp)‘;...
                                 ‘*.gif‘‘GIF(*.gif)‘;...
                                 ‘*.*‘

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      34641  2018-12-31 23:23  DCT.fig

     文件       3584  2018-12-31 23:23  DCT.m

     文件       4951  2019-01-03 21:47  dct_compress_function.m

     文件        448  2018-12-31 17:41  Inverse_function.m

     文件      19181  2018-12-31 16:53  lena.jpg

     文件        322  2018-12-31 17:56  PSNR_compute.m

----------- ---------  ---------- -----  ----

                63127                    6


评论

共有 条评论