Code:
function varargout = ImageCompression1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton,
...
'gui_OpeningFcn', @ImageCompression1_OpeningFcn, ...
'gui_OutputFcn',
@ImageCompression1_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
function ImageCompression1_OpeningFcn(hObject, eventdata,
handles, varargin)
guidata(hObject, handles);
guidata(hObject, handles);
set(handles.axes1,'visible','off')
set(handles.axes2,'visible','off')
axis off
axis off
function varargout = ImageCompression1_OutputFcn(hObject,
eventdata, handles)
varargout{1} = handles.output;
function pushbutton1_Callback(hObject, eventdata, handles)
global file_name;
file_name=uigetfile({'*.bmp;*.jpg;*.png;*.tiff;';'*.*'},'Select
an Image File');
fileinfo = dir(file_name);
SIZE = fileinfo.bytes;
Size = SIZE/1024;
set(handles.text7,'string',Size);
imshow(file_name,'Parent', handles.axes1)
function pushbutton2_Callback(hObject, eventdata, handles)
global file_name;
if(~ischar(file_name))
errordlg('Please
select Images first');
else
I1 =
imread(file_name);
I = I1(:,:,1);
I = im2double(I);
T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1
1 0 0
0 0
1 1
1 0 0
0 0 0
1 1
0 0 0
0 0 0
1 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0 0 0
0];
B2 = blkproc(B,[8 8],'P1.*x',mask);
I2 = blkproc(B2,[8 8],'P1*x*P2',T',T);
I = I1(:,:,2);
I = im2double(I);
T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1
1 0 0
0 0
1 1
1 0 0
0 0 0
1 1
0 0 0
0 0 0
1 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mask);
I3 = blkproc(B2,[8 8],'P1*x*P2',T',T);
I = I1(:,:,3);
I = im2double(I);
T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1
1 0 0
0 0
1 1
1 0 0
0 0 0
1 1
0 0 0
0 0 0
1 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0
0 0
0 0 0
0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mask);
I4 = blkproc(B2,[8 8],'P1*x*P2',T',T);
L(:,:,:)=cat(3,I2, I3, I4);
imwrite(L,'CompressedColourImage.jpg');
fileinfo = dir('CompressedColourImage.jpg');
SIZE = fileinfo.bytes;
Size = SIZE/1024;
set(handles.text8,'string',Size);
imshow(L,'Parent', handles.axes2)
end
No comments:
Post a Comment