When I run the following code it gives the error:
Error: File: image_processing_project.m Line: 55 Column: 1Function definitions are not permitted in this context.
I think there must be something wrong with the way I've placed the functions in the following code:
M = imread('C:\Users\bostock_h\Documents\Images\130510_162.jpg');M = int16(M);x = 975; %dimensions of the image
y = 1010;sum=0;steps = 12; %the number of steps taken for the average
lowlimit = 40; %minimum value to pass
highlimit = 200; %maximum value to pass
movel = 10; %amount of pixels moved to the left after check
prog = 0; pixelnum = (x - movel - 1)*y; %Total number of pixels in the image
%Main loop begin
for j = 1:y for i1 = movel + 1:x c = checkright (i1,j); if c ~= 0 b = 1; else b = -1; end if c == 0 c = checkleft (i1,j); end if c == -1 if b == 1 M(j,i1-movel) = 1; end end if c == 1 if b == 1 M(j,i1-movel) = 250; end end if c == 1 if b == -1 M(j,i1+movel) = 250; end end if c == -1 if b == -1 M(j,i1+movel) = 1; end end prog = prog + 1; percent = (prog / pixelnum) * 100 end endimagesc(M)colormap(gray)function c = checkright(i1,j)x1 = 1;y1 = 0;c = checkhorizontal(i1,j,x1);endfunction c = checkleft(i1,j)x1 = -1;y1 = 0;c = checkhorizontal(i1,j);function c = checkhorizontal(i1,j,x1)for n = 0:steps sum = M(j, i1 + n*x1) + sum;endavg = sum / steps;if avg < lowlimit c = -1*x1;end if avg > highlimit c = 1*x1;endend
Best Answer