1.软件版本
matlab2017b
3.核心代码
function varargout = Tops(varargin)% TOPS MATLAB code for Tops.fig% TOPS, by itself, creates a new TOPS or raises the existing% singleton*.%% H = TOPS returns the handle to a new TOPS or the handle to% the existing singleton*.%% TOPS('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in TOPS.M with the given input arguments.%% TOPS('Property','Value',...) creates a new TOPS or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Tops_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to Tops_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 Tops% Last Modified by GUIDE v2.5 04-Apr-2013 07:31:51% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Tops_OpeningFcn, ... 'gui_OutputFcn', @Tops_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});endif 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 Tops is made visible.function Tops_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 Tops (see VARARGIN)% Choose default command line output for Topshandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes Tops wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = Tops_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 structurevarargout{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)parameter;SIZE = str2num(get(handles.edit2,'string'));[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');if isequal(filename,0) disp('Users Selected Canceled');elsestr=[pathname filename];I0 = imread(str);I1 = imresize(I0,[SIZE,SIZE]);axes(handles.axes1);imshow(I1);end;% --- 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)parameter;I_gray = rgb2gray(I1);axes(handles.axes2);imshow(I_gray);Inew = I_gray;% --- 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)parameter;I_10 = im2bw(I1);axes(handles.axes2);imshow(I_10);Inew = I_10;% --- 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)clc;clear;close all;function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end% --- 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)parameter;wg = str2num(get(handles.edit3,'string'));qs = str2num(get(handles.edit5,'string'));qstep = str2num(get(handles.edit6,'string'));[Rs,Cs] = size(Inew);npix = sum(sum(Inew));%计算零即数量的像素在第i盒尺寸Lwidth = Rs;p = log(width)/log(2);MaxBox = power(Rs,2)/power(2,2);NsL = double(zeros(MaxBox,p));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for Ig = p-1:-1:0 siz = 2^(p-Ig); sizm1 = siz - 1; index = log2(siz); count = 0; for i=1:siz:(width-siz+1) for j=1:siz:(width-siz+1) count = count + 1; sums = sum(sum(Inew(i:i+sizm1,j:j+sizm1))); NsL(count,index) = sums; end endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Qran = qs;logl = zeros(p,1);for i=1:p logl(i) = log(power(2,i));end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%PsL = double(zeros(MaxBox,p));for j=1:p No_boxes = power(Rs,2)/power(power(2,j),2); norm = sum(NsL(1:No_boxes,j)); for i=1:No_boxes PsL(i,j) = NsL(i,j)/norm; endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%f(alpha),alphafor kj=1:p count = 0; No_boxes = power(Rs,2)/power(power(2,kj),2); for q = -Qran:qstep:Qran qsum = 0; for i=1:No_boxes if PsL(i,kj) ~= 0 qsum = qsum + power(PsL(i,kj),q); end end fqnum = 0; aqnum = 0; smuiqL = 0; for i=1:No_boxes if PsL(i,kj) ~= 0 muiqL = power(PsL(i,kj),q)/qsum; fqnum = fqnum + (muiqL * log(muiqL)); aqnum = aqnum + (muiqL * log(PsL(i,kj))); smuiqL = smuiqL + muiqL; end end count = count + 1; fql(kj,count) = fqnum; aql(kj,count) = aqnum; qval(count) = q; endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%alpha_qfor i=1:count line = polyfit(logl,aql(:,i),1); aq(i) = line(1); yfit = polyval(line,logl); sse = sum(power(aql(:,i)-yfit,2)); sst = sum(power(aql(:,i)-mean(aql(:,i)),2)); ar2(i) = 1-(sse/sst);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%f_qfor i=1:count line = polyfit(logl,fql(:,i),1); fq(i) = line(1); yfit = polyval(line,logl); sse = sum(power(fql(:,i)-yfit,2)); sst = sum(power(fql(:,i)-mean(fql(:,i)),2)); fr2(i) = 1-(sse/sst);endaxes(handles.axes3);plot(aq,fq,'b-o');xlabel('alpha','FontSize',10);ylabel('f(alpha)','FontSize',10);pause(1);axes(handles.axes5);plot(qval,fq,'b-o');xlabel('q','FontSize',10);ylabel('f(alpha)','FontSize',10);pause(1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Qran = 20*qs;for kj=1:p count = 0; No_boxes = power(Rs,2)/power(power(2,kj),2); for q = -Qran:10*qstep:Qran qsum = 0; for i=1:No_boxes if PsL(i,kj) ~= 0 qsum = qsum + power(PsL(i,kj),q); end end fqnum = 0; aqnum = 0; smuiqL = 0; for i=1:No_boxes if PsL(i,kj) ~= 0 muiqL = power(PsL(i,kj),q)/qsum; fqnum = fqnum + (muiqL * log(muiqL)); aqnum = aqnum + (muiqL * log(PsL(i,kj))); smuiqL = smuiqL + muiqL; end end count = count + 1; fql(kj,count) = fqnum; aql(kj,count) = aqnum; qval(count) = q; endendfor i=1:count line = polyfit(logl,aql(:,i),1); aq(i) = line(1); yfit = polyval(line,logl); sse = sum(power(aql(:,i)-yfit,2)); sst = sum(power(aql(:,i)-mean(aql(:,i)),2)); ar2(i) = 1-(sse/sst);endfor i=1:count line = polyfit(logl,fql(:,i),1); fq(i) = line(1); yfit = polyval(line,logl); sse = sum(power(fql(:,i)-yfit,2)); sst = sum(power(fql(:,i)-mean(fql(:,i)),2)); fr2(i) = 1-(sse/sst);endfor i=1:count Dq(i) = (aq(i)*qval(i)-fq(i))/(qval(i)-1);endaxes(handles.axes4);plot(qval,Dq,'b-o');xlabel('q','FontSize',10);ylabel('D(q)','FontSize',10);pause(1);axes(handles.axes6);plot(aq,qval,'b-o');xlabel('alpha','FontSize',10);ylabel('q','FontSize',10);pause(1);aqs = aq;fqs = fq;qvals = qval;Dqs = Dq;function edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties.function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');endfunction edit5_Callback(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit5 as text% str2double(get(hObject,'String')) returns contents of edit5 as a double% --- Executes during object creation, after setting all properties.function edit5_CreateFcn(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');endfunction edit6_Callback(hObject, eventdata, handles)% hObject handle to edit6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit6 as text% str2double(get(hObject,'String')) returns contents of edit6 as a double% --- Executes during object creation, after setting all properties.function edit6_CreateFcn(hObject, eventdata, handles)% hObject handle to edit6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end% --- 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)parameter;fid = fopen('save_alpha.txt','wt');for i = 1:length(aqs) fprintf(fid,'%f\n',aqs(i));endfclose(fid);fid = fopen('save_falpha.txt','wt');for i = 1:length(fqs) fprintf(fid,'%f\n',fqs(i));endfclose(fid);fid = fopen('save_Q.txt','wt');for i = 1:length(qvals) fprintf(fid,'%f\n',qvals(i));endfclose(fid);fid = fopen('save_D.txt','wt');for i = 1:length(Dqs) fprintf(fid,'%f\n',Dqs(i));endfclose(fid); 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.144.145.146.147.148.149.150.151.152.153.154.155.156.157.158.159.160.161.162.163.164.165.166.167.168.169.170.171.172.173.174.175.176.177.178.179.180.181.182.183.184.185.186.187.188.189.190.191.192.193.194.195.196.197.198.199.200.201.202.203.204.205.206.207.208.209.210.211.212.213.214.215.216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.245.246.247.248.249.250.251.252.253.254.255.256.257.258.259.260.261.262.263.264.265.266.267.268.269.270.271.272.273.274.275.276.277.278.279.280.281.282.283.284.285.286.287.288.289.290.291.292.293.294.295.296.297.298.299.300.301.302.303.304.305.306.307.308.309.310.311.312.313.314.315.316.317.318.319.320.321.322.323.324.325.326.327.328.329.330.331.332.333.334.335.336.337.338.339.340.341.342.343.344.345.346.347.348.349.350.351.352.353.354.355.356.357.358.359.360.361.362.363.364.365.366.367.368.369.370.371.372.373.374.375.376.377.378.379.380.381.382.383.384.385.386.387.388.389.390.391.392.393.394.395.396.397.398.399.400.401.402.403.404.405.406.407.408.409.410.411.412.413.414.415.416.417.418.419.420.421.422.423.424.425.426.427.428.429.430.431.432.433.434.435.436.437.
4.操作步骤与仿真结论
运行tops.m文件。会得到如下的结果:
我们选择任意一个图形进行测试:仿真效果如下所示:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删