code to record data in csv file from gui matlab
Hi, i'm new to Matlab. i have this code that extract image feature using gui. i have problem creating a code that can record data extracted into csv and txt file. i want the data extracted from image are recorded into a single csv file each time an image is load into the gui. the data will be use to train a neural network. can some one help me? tq
[filename, pathname] = uigetfile( ... {'*.jpg', 'All JPG-Files (*.jpg)'; ... '*.*','All Files (*.*)'}, ... 'Open'); % If "Cancel" is selected then return if isequal([filename,pathname],[0,0]) return % Otherwise construct the fullfilename and Check and load the file. else File = fullfile(pathname,filename); % if the MAT-file is not valid, do not save the name fopen(File); a=[pathname,filename]; %file directory set(handles.edit38,'String',filename); i=imread(File);%load image" axes(handles.axes2); imshow(i); r=rgb2gray(i);%grayscale image axes(handles.axes3); imshow(r); L = medfilt2(r,[5 5]);%filtered image axes(handles.axes4); imshow(L); level=graythresh(L);%define treshvalue to convert image to binary c=im2bw(L,level); axes(handles.axes5); imshow(c); [xsize,ysize]=size(c);% read the size of the image xsize ysize m00=0; m01=0; m10=0; m11=0; m12=0; m21=0; m02=0; m20=0; m03=0; m30=0; for x=1:xsize for y=1:ysize if (~c(x,y)==0), m00=m00+1; m01=m01+(y); m10=m10+(x); m11=m11+(x*y); m02=m02+(y^2); m20=m20+(x^2); m12=m12+(x*y^2); m21=m21+(x^2*y); m03=m03+(y^3); m30=m30+(x^3); end end end %centroid z=x,y xbar=m10/m00; ybar=m01/m00; xbar ybar set(handles.edit36,'String',num2str(m10/m00)); set(handles.edit43,'String',num2str(m01/m00)); %calculate the area of binary image BW =~c; area= bwarea(BW); area imshow(BW); set(handles.edit37,'String',num2str(area)); bw2=~c; perimeter=bwperim(bw2); perimeter=bwarea(perimeter); set(handles.edit44,'String',num2str(perimeter))%display to GUI u00=m00; u11=m11-(m10.*(m01/m00))-((m10/m00).*m01)+((m10/m00).*(m10/m00)).*m00; u20=m20-(m10/m00).^2; u02=m02-(m01/m00).^2; u12=m12-2*m11.*(m01/m00)+m10.*((m01/m00).^2)-m02.*(m10/m00)+2*m01.*(m01/m00).*(m10/m00)-((m10/m00).^2).*(m10/m00).*m00; u21=m21-2*m11.*(m10/m00)+m01.*((m10/m00).^2)-m20.*(m01/m00)+2*m10.*(m10/m00).*(m01/m00)-((m10/m00).^2).*(m01/m00).*m00; u03=m03-2*m02.*(m01/m00)+m01.*((m01/m00).^2)+m02.*(m01/m00)+2*m01.*((m01/m00).^2)-((m01/m00).^3).*m00; u30=m30-2*m20.*(m10/m00)+m10.*((m10/m00).^2)+m20.*(m10/m00)+2*m10.*((m10/m00).^2)-((m10/m00).^3).*m00; tmp1=u00.^2; tmp2=u00.^(2.5); n20=u20/tmp1; n11=u11/tmp1; n02=u02/tmp1; n30=u30/tmp2; n12=u12/tmp2; n21=u21/tmp2; n03=u03/tmp2; n11 n12 n21 n02 n20 n03 n30 M1=n20+n02; M2=(n20-n02).^2+(4*(n11.^2)); M3=((n30-3*n12).^2)+(3*n21-n03).^2; M4=((n30+n12).^2)+(n21+n03).^2; M5=(n30-3*n12).*(n30+n12)+(((n30+n12).^2)-3*((n21-n03).^2))+(3*n21-n03)*(n21+n03)*(3*((n30+n12).^2)-(n21-n03).^2); M6=(n20+n02).*(((n30+n12).^2)-((n21+n03).^2))+4*n11.*(n30+n12).*(n21+n03); M7=(3*n21-n03).*(n30+n12).*(((n30-n12).^2)-3*((n21+n03).^2))+(3*n12-n30).*(n21+n03).*(3*((n12+n30).^2)-((n21+n03).^2)); M1 M2 M3 M4 M5 M6 M7 set(handles.M1,'String',num2str(M1)); set(handles.M2,'String',num2str(M2)); set(handles.M3,'String',num2str(M3)); set(handles.M4,'String',num2str(M4)); set(handles.M5,'String',num2str(M5)); set(handles.M6,'String',num2str(M6)); set(handles.M7,'String',num2str(M7)); %~~~~~~~~~~~~~~~~~~~~~~~~use when train data~~~~~~~~~~~~~~~~~~~~~ % stt=0; %use it when train data\\set grade value set 1 if pet, set 0 if nonpet % humoment=[num2str(M1) ',' num2str(M2) ',' num2str(M3) ',' num2str(M4) ',' num2str(M5) ',' num2str(M6) ',' num2str(M7) ',' num2str(perimeter) ',' num2str(area) ',' num2str(xbar) ',' num2str(ybar) ',' num2str(stt)]; % Record (humoment,'C:\MATLABDATA\datatrain.csv') %use it when train data % %~~~~~~~~~~~~~~~~~~~~~~~~use when test data~~~~~~~~~~~~~~~~~~~~~~ humoment=[num2str(M1) ',' num2str(M2) ',' num2str(M3) ',' num2str(M4) ',' num2str(M5) ',' num2str(M6) ',' num2str(M7) ',' num2str(perimeter) ',' num2str(area) ',' num2str(xbar) ',' num2str(ybar) ]; data= [filename ',' num2str(M1) ',' num2str(M2) ',' num2str(M3) ',' num2str(M4) ',' num2str(M5) ',' num2str(perimeter) ',' num2str(M6) ',' num2str(M7) ',' num2str(area) ',' num2str(xbar) ',' num2str(ybar)]; Record(humoment,'C:\MATLABDATA\datatest.csv') Record(data,'C:\MATLABDATA\datatest.txt') set(handles.edit45,'String','Load completed') end
Replies
You are reading an archived discussion.
Related Posts
This is the official promotion video of the new Toshiba Libretto W100 7-inch dual-screen netbook.
[video=youtube;DycgQSISt_U]https://www.youtube.com/watch?v=DycgQSISt_U[/video]
Share your views and opinions about this.
Philips' Master LED bulbs i.e. the company's new bulbs, dubbed EnduraLED, are four times as bright. Due in the fourth quarter of the year, the 60W equivalent at left sucks...
[FONT="]Condensate Polishers at Power Plant[/FONT]
“This article is talking about the functions of Condensate Polishers at Power Plants , and Their Types according to their Functionality , .. “
Condensate...
i was in my friends village bfore a few days n i noticed that there is a serious problem wid the farmers i.e they wake up at night every now...
Hi,
I'm working on active and reactive power control of Dubly Fed induction generator.
I need help, Anyone had sample or reference can be recommendated.
Cheers!
Jade