clc, clear all
% function [Kettenkode, Anfangspunkt ]=direction(i , j) %nach OKE
%A = imread('resmim.jpg'); 
%BW = im2bw(A);


A=[0 1 0 0
   0 1 1 0
   0 0 1 1
   1 0 0 1 
   0 0 1 0
   0 0 1 1
   0 1 0 1
   1 1 0 0  %wenn alle hier 1 wäre,dann fehlermeldung
   ]


% A=[ 0     0     0     0
%     0     0     0     0
%     0     0     0     0
%     0     0     1     1]
% 


%f=0;
Y=[];


for i=1:size(A, 1)-1
    for j=1:size(A, 2)-1
        
      % i, j
        if  (A(i, j)==1 && A(i, j+1)==1 &&  A(i+1, j)==0  && A(i+1,  j+1)==0  && A(i-1,  j)==1 && A(i-1,  j+1)==0) |...
                (A(i, j)==1 && A(i, j+1)==1 && A(i+1,  j)==0  && A(i+1,  j+1)==0  && A(i-1,  j)==0 && A(i-1,  j+1)==1) |...
                (A(i, j)==1 && A(i, j+1)==1 && A(i+1,  j)==0  && A(i+1,  j+1)==0  && A(i-1,  j)==1 && A(i-1,  j+1)==1) 
            k=4                 % Kettenkode=4;
            An=[i, j+1]         % Anfangspunkt=(i, j+1);
            
            Y=[Y; k, An]
        
        elseif (A(i, j)==0 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==1  && A(i+2,  j)==1 && A(i+2,  j+1)==0) |...
                (A(i, j)==0 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==1  && A(i+2,  j)==0 && A(i+2,  j+1)==1) |...
                (A(i, j)==0 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==1  && A(i+2,  j)==1 && A(i+2,  j+1)==1)
            k=0                 % Kettenkode=0;
            An=[i+1, j]         % Anfangspunkt=(i+1, j);
            
            Y=[Y; k, An]
            
        elseif (A(i, j)==1 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==0  && A(i,  j-1)==1 && A(i+1,  j-1)==0) |...
                (A(i, j)==1 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==0  && A(i,  j-1)==0 && A(i+1,  j-1)==1) |...
                (A(i, j)==1 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==0  && A(i,  j-1)==1 && A(i+1,  j-1)==1)
            k=6               % Kettenkode=6;
            An=[i, j]         % Anfangspunkt=(i, j);
            
            Y=[Y; k,An]
        
        elseif (A(i, j)==0 && A(i, j+1)==1 &&  A(i+1, j)==0  && A(i+1,  j+1)==1  && A(i,  j+2)==1 && A(i+1,  j+2)==0) |...
                (A(i, j)==0 && A(i, j+1)==1 &&  A(i+1, j)==0  && A(i+1,  j+1)==1  && A(i,  j+2)==0 && A(i+1,  j+2)==1) |...
                (A(i, j)==0 && A(i, j+1)==1 &&  A(i+1, j)==0  && A(i+1,  j+1)==1  && A(i,  j+2)==1 && A(i+1,  j+2)==1)
            k=2               % Kettenkode=2;
            An=[i+1, j+1]         % Anfangspunkt=(i+1, j+1);
            
            Y=[Y; k,An]
            
        elseif (A(i, j)==1 && A(i, j+1)==1 &&  A(i+1, j)==1  && A(i+1,  j+1)==0)
            k=5               % Kettenkode=5;
            An=[i, j+1]         % Anfangspunkt=(i, j+1);
            
            Y=[Y; k,An]
            
        elseif (A(i, j)==1 && A(i, j+1)==1 &&  A(i+1, j)==0  && A(i+1,  j+1)==1)
            k=3               % Kettenkode=3;
            An=[i+1, j+1]         % Anfangspunkt=(i+1, j+1);
            
            Y=[Y; k,An]
            
        elseif (A(i, j)==1 && A(i, j+1)==0 &&  A(i+1, j)==1  && A(i+1,  j+1)==1)
            k=7               % Kettenkode=7;
            An=[i, j]         % Anfangspunkt=(i, j);
            
            Y=[Y; k,An]
        
        elseif (A(i, j)==0 && A(i, j+1)==1 &&  A(i+1, j)==1  && A(i+1,  j+1)==1)
            k=1               % Kettenkode=1;
            An=[i+1, j]         % Anfangspunkt=(i+1, j);

            Y=[Y; k,An]
                   
        end
    end
end




