function varargout = work(varargin)
% WORK MATLAB code for work.fig
% WORK, by itself, creates a new WORK or raises the existing
% singleton*.
%
% H = WORK returns the handle to a new WORK or the handle to
% the existing singleton*.
%
% WORK('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in WORK.M with the given input arguments.
%
% WORK('Property','Value',...) creates a new WORK or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before work_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to work_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help work
% Last Modified by GUIDE v2.5 24-May-2019 11:00:49
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @work_OpeningFcn, ...
'gui_OutputFcn', @work_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 work is made visible.
function work_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to work (see VARARGIN)
% Choose default command line output for work
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes work wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = work_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
axis off;
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
ima_gray=image_gray(M);
imshow(ima_gray);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
[X2,map2]=rgb2ind(M,0.2);
imshow(X2,map2);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
BW1=im2bw(M,0.6);
imshow(BW1);
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
B=immultiply(M,1.5);
imshow(B);
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
ima_red=M(:,:,1);
ima_green=M(:,:,2);
ima_blue=M(:,:,3);
histogram_red=histogram(ima_red);
histogram_green=histogram(ima_green);
histogram_blue=histogram(ima_blue);
figure,
subplot(1,3,1);plot(histogram_red),title('红色通道');
xlim([0 255])
subplot(1,3,2),plot(histogram_green),title('绿色通道');
xlim([0 255])
subplot(1,3,3),plot(histogram_blue),title('蓝色通道');
xlim([0 255])
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
I=im2double(M);
h=0:0.1:1;
v=0.01:-0.001:0;
J=imnoise(I, 'localvar', h, v);
imshow(J);
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
S=image_gray(M);
J=im2double(S);
T=dctmtx(8); %计算离散余弦变换矩阵
K=blkproc(J, [8 8], 'P1*x*P2', T, T'); %对每个小方块进行离散余弦变换
mask=[ 1 1 1 1 0 0 0 0 %只选择左上角的10个系数
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 ];
K2=blkproc(K, [8 8], 'P1.*x', mask); %系数选择
L=blkproc(K2, [8 8], 'P1*x*P2', T', T); %对每个小方块进行离散余弦反变换
imshow(L);
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global M;
L = rgb2ycbcr(M);
imshow(L);
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename, pathname] = uigetfile('*.jpg', '读取图片文件'); %选择图片文件
if isequal(filename,0) %判断是否选择
msgbox('没有选择任何图片');
else
pathfile=fullfile(pathname, filename); %获得图片路径
global M;
M=imread(pathfile); %将图片读入矩阵
imshow(M);
end
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton13 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
button13=questdlg('你确定退出吗?','退出程序','Yes','No','Yes');
if strcmp(button13,'Yes')
close all;
end;
%所调函数
function d=image_gray(src)
ima_red=src(:,:,1);
ima_green=src(:,:,2);
ima_blue=src(:,:,3);
d=0.299*ima_red+0.587*ima_green+0.114*ima_blue;