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