Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function cc = chain_code(matrix, i, j)
- %matrix: array
- %i, j: initial pixel
- [M,N] = size(matrix);
- d_i = [0 -1 -1 -1 0 1 1 1];
- d_j = [1 1 0 -1 -1 -1 0 1];
- firstVal = matrix(i, j);
- k = 0;
- w = i; y = j; %Current pixel coordinates
- index = 4;
- while ((w ~= i) || (y ~= j))
- proper_neighbor = false;
- d = -1;
- for ii = index+1:index+7 %Pixel neighbors
- jj = mod(ii, 8);
- if ((d_i(jj + 1) + w) <= M) && ((d_j(jj + 1) + y) <= N) && (d_i(jj + 1) + w > 0) && ((d_j(jj + 1) + y) > 0)
- if (matrix(d_i(jj + 1) + w, d_j(jj + 1) + y) == firstVal)
- d = jj;
- proper_neighbor = true;
- break;
- end;
- end;
- end;
- if proper_neighbor
- if k < 200
- k = k+1;
- c(k) = d;
- w = w + d_i(d+1); y = y + d_j(d+1);
- index = mod(d+4, 8);
- end;
- else break;
- end;
- if k >= 200
- break;
- end;
- end;
- cc = c;
Advertisement
Add Comment
Please, Sign In to add comment