Guest User

Untitled

a guest
May 9th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. im = imread('prova2.jpg');
  2. im1D = rgb2gray(im);
  3. f = figure;     set(f,'name','Original image');         imshow(im1D,[]);
  4.  
  5. imBin = im1D > (graythresh(im1D)*255);
  6. imBinNeg = 1 - imBin;
  7. f = figure;     set(f,'name','Binarized negated image');         imshow(imBinNeg,[]);
  8.  
  9. imBN = imBinNeg;
  10. imSize = size(imBN);
  11.  
  12. %while (no acabemos xd)
  13.     % Step 1
  14.     flaggedPixels = ones(imSize(1),imSize(2));
  15.     for i = 1:imSize(1)
  16.        for j = 1:imSize(2)
  17.           if imBN(i,j) == 1
  18.               neighbors = [imBN(i-1,j) imBN(i-1,j+1) imBN(i,j+1) imBN(i+1,j+1) imBN(i+1,j) imBN(i+1,j-1) imBN(i,j-1) imBN(i-1,j-1)];
  19.               if min(neighbors) == 0                    % The pixel contains at least a 0 valued neighbor
  20.                   N = sum(neighbors);
  21.                   if N >= 2 && N <= 6                   % Condition a)
  22.                       Ts = CountTransitions(neighbors);
  23.                       if Ts == 1                        % Condition b)
  24.                           if neighbors(4-(1)) == 0 || neighbors(6-(1)) == 0 || neighbors(2-(1))*neighbors(8-(1)) == 0   % Conditions c) & d)
  25.                               flaggedPixels(i,j) = 0;   % Mark the pixel to be removed later
  26.                           end
  27.                       end
  28.                   end
  29.               end
  30.           end
  31.        end
  32.     end
  33.     if min(flaggedPixels) == 0
  34.         imBN = imBN .* flaggedPixels;
  35.     end
  36.    
  37.     % Step 2
  38.     flaggedPixels = ones(imSize(1),imSize(2));
  39.     for i = 1:imSize(1)
  40.        for j = 1:imSize(2)
  41.           if imBN(i,j) == 1
  42.               neighbors = [imBN(i-1,j) imBN(i-1,j+1) imBN(i,j+1) imBN(i+1,j+1) imBN(i+1,j) imBN(i+1,j-1) imBN(i,j-1) imBN(i-1,j-1)];
  43.               if min(neighbors) == 0                    % The pixel contains at least a 0 valued neighbor
  44.                   N = sum(neighbors);
  45.                   if N >= 2 && N <= 6                   % Condition a)
  46.                       Ts = CountTransitions(neighbors);
  47.                       if Ts == 1                        % Conditions a) & b) are the same ones as before
  48.                           if neighbors(8-(1)) == 0 || neighbors(2-(1)) || neighbors(4-(1))*nighbors(6-(1)) == 0  % Conditions c) & d)
  49.                               flaggedPixels(i,j) = 0;
  50.                           end
  51.                       end
  52.                   end
  53.               end
  54.           end
  55.        end
  56.     end
  57.     if min(flaggedPixels) == 0
  58.         imBN = imBN .* flaggedPixels;
  59.     end
  60.    
  61. %endwhile
Advertisement
Add Comment
Please, Sign In to add comment