好像有点简单的bug,修修就好了,如果想用
%DCT和直方图
clear
h1=figure( ...
'menu','none',...
'color',[0.4,0.8,0.95],...
'position',[103.8 50.923 800.2 700.538],...
'Name',' 广西工学院信息与计算科学系', ...
'NumberTitle','off', 'HandleVisibility', 'on', ...
'Visible','on', 'Resize', 'off',...
'BusyAction','Queue','Interruptible','off',...
'IntegerHandle', 'off', ...
'Doublebuffer', 'on', ...
'Colormap', gray(256));
h3 = axes( ...
'units', 'pixels', ...
'BusyAction','Queue','Interruptible','off',...
'ydir', 'reverse', ...
'XLim', [.5 256.5], ...
'YLim', [.5 256.5],...
'CLim', [0 1], ...
'XTick',[],'YTick',[], ...
'Position', [180 394 250 250]);
blank = repmat(uint8(0),128,128);
h4 = image('Parent', h3,...
'CData', blank, ...
'BusyAction','Queue','Interruptible','off',...
'CDataMapping', 'scaled', ...
'Xdata', [1 256],...
'Ydata', [1 256],...
'EraseMode', 'none');
h5 = axes( ...
'units', 'pixels', ...
'BusyAction','Queue','Interruptible','off',...
'ydir', 'reverse', ...
'XLim', [.5 256.5], ...
'YLim', [.5 256.5],...
'CLim', [0 1], ...
'XTick',[],'YTick',[], ...
'Position', [300 100 250 250]);
h6 = image('Parent', h5,...
'CData', blank, ...
'BusyAction','Queue','Interruptible','off',...
'CDataMapping', 'scaled', ...
'Xdata', [1 256],...
'Ydata', [1 256],...
'EraseMode', 'none');
h7 = axes( ...
'units', 'pixels', ...
'BusyAction','Queue','Interruptible','off',...
'ydir', 'reverse', ...
'XLim', [.5 256.5], ...
'YLim', [.5 256.5],...
'CLim', [0 1], ...
'XTick',[],'YTick',[], ...
'Position', [500 394 250 250]);
blank = repmat(uint8(0),128,128);
h8 = image('Parent', h7,...
'CData', blank, ...
'BusyAction','Queue','Interruptible','off',...
'CDataMapping', 'scaled', ...
'Xdata', [1 256],...
'Ydata', [1 256],...
'EraseMode', 'none');
%--------------------------------------------
t1=uicontrol('parent',h1,...
'style','text',...
'string','直方图',...
'fontsize',10,...
'position',[585 650 80 20],...
'horizontalalignment','center');
t2=uicontrol('parent',h1,...
'style','text',...
'string','原始图像',...
'fontsize',10,...
'position',[255 650 80 20],...
'horizontalalignment','center');
t2=uicontrol('parent',h1,...
'style','text',...
'string','DCT变换图像',...
'fontsize',10,...
'position',[385 360 80 20],...
'horizontalalignment','center');
%--------------------------------------------
load imdemos saturn
img_0=saturn;
img2_0= double(img_0)/256;
img1_0= double(img_0)/8;
J_0=dct2(img1_0);
m_0=log(abs(J_0));
p0=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.870 0.131 0.054], ...
'String','Saturn', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',img2_0);',...
'set(h6,''CData'',m_0);',...
'hist(img2_0,[-0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 ]);']);
%------------------------------------------------------
%'Saturn|Pepper|Pout|Trees|Quarter|Circuit'
%--------------------------------------------
load imdemos pepper
img_1=pepper;
img2_1= double(img_1)/256;
img1_1= double(img_1)/8;
J_1=dct2(img1_1);
m_1=log(abs(J_1));
p1=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.770 0.131 0.054], ...
'String','Pepper', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',img2_1);',...
'set(h6,''CData'',m_1);',...
'hist(img2_1,[-0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 ])']);
%------------------------------------------------------
%'Saturn|Pepper|Pout|Trees|Quarter|Circuit'
%--------------------------------------------
load imdemos pout
img_2=pout;
img2_2= double(img_2)/256;
img1_2= double(img_2)/8;
J_2=dct2(img1_2);
m_2=log(abs(J_2));
p2=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.670 0.131 0.054], ...
'String','Pout', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',img2_2);',...
'set(h6,''CData'',m_2);',...
'hist(img2_2,[-0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 ])']);
%------------------------------------------------------
%'Saturn|Pepper|Pout|Trees|Quarter|Circuit'
%--------------------------------------------
load imdemos trees
img_3=trees;
img2_3= double(img_3)/256;
img1_3= double(img_3)/8;
J_3=dct2(img1_3);
m_3=log(abs(J_3));
p3=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.570 0.131 0.054], ...
'String','Trees', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',img2_3);',...
'set(h6,''CData'',m_3);',...
'hist(img2_3,[-0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 ])']);
%------------------------------------------------------
%'Saturn|Pepper|Pout|Trees|Quarter|Circuit'
%--------------------------------------------
load imdemos quarter
img_4=quarter;
img2_4= double(img_4)/256;
img1_4= double(img_4)/8;
J_4=dct2(img1_4);
m_4=log(abs(J_4));
p4=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.470 0.131 0.054], ...
'String','Quarter', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',img2_4);',...
'set(h6,''CData'',m_4);',...
'hist(img2_4,[-0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1.0])']);
%------------------------------------------------------
%'Saturn|Pepper|Pout|Trees|Quarter|Circuit'
%--------------------------------------------
load imdemos circuit
img_5=circuit;
img2_5= double(img_5)/256;
img1_5= double(img_5)/8;
J_5=dct2(img1_5);
m_5=log(abs(J_5));
p5=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.370 0.131 0.054], ...
'String','Quarter', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',img2_5);',...
'set(h6,''CData'',m_5);',...
'hist(img2_5,[-0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 ])']);
%------------------------------------------------------
p5=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.049 0.270 0.131 0.054], ...
'String','清空', ...
'Enable', 'on',...
'callback',[...
'set(h4,''CData'',blank);',...
'set(h6,''CData'',blank);',...
'hist(0);']);
%-----------------------------------------------
Hn=uicontrol( ...
'BusyAction','Queue','Interruptible','off',...
'Style','pushbutton', ...
'Units','normalized', ...
'Position',[0.749 0.010 0.131 0.054], ...
'String','close', ...
'Enable', 'on',...
'callback','close');