📄 run_ezw.m
字号:
function Run_ezw(bpp,waveletLevel)
if nargin == 0
bpp = 0.25;
waveletLevel = 5;
end
if nargin == 1
waveletLevel = 5;
end
close all;
%装载并显示原始图像
[filename, pathname] = uigetfile( ...
{'*.bmp;*.jpg;*.jpeg;','图像文件 (*.bmp;*.jpg;*.jpeg)';
'*.bmp', '位图文件 (*.bmp)'; ...
'*.jpg','jpeg图像文件 (*.jpg)'; ...
'*.jpeg','jpeg图像文件 (*.jpeg)'; ...
}, '选择被压缩图像');
FileFullname=strcat(pathname,filename); %全名
if isequal(filename, 0) %文件不存在存在
return;
end
I = imread(FileFullname); %读入图像,Image
imshow(I);
selection = questdlg('请选择ROI区域',...
'确定继续操作','Yes','No','Yes');
if strcmp(selection,'No')
return;
end
[BW,x,y] = roipoly; %区域选择
ijROI = find(BW==1);
sumROI = length(ijROI);
Imid=I;
Imid(ijROI)=0;
imshow(Imid);
imwrite(I,'midImg.pgm'); %写入中间图像,用pgm格式
%ezw编码
IezwImgName = uiputfile({'*ezw','ezw(*.ezw)'},'保存ezw编码...','ezwPart'); %ezw保存对话框
ezwcodestr=sprintf('ezw midImg %f -l %d -w 0 -h 256 -e %s',bpp,waveletLevel,IezwImgName);
%ezwcode = 'ezw midImg 0.25 -l 5 -w 0 -h 256 -e Iezw_0.25';
dos(ezwcodestr);
%huffman编码
IhuffImgName = uiputfile({'*.mat','MAT文件(*.mat)'}, 'ROI huffman编码...','huffPart'); %ROI保存对话框
huffImg = I(ijROI);
huffcode=mat2huff(huffImg);
save(IhuffImgName,'huffcode','x','y','bpp','waveletLevel','IezwImgName');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -