Code covered by the BSD License

### Highlights from Finds edges in a binary image

3.0
3.0 | 1 rating Rate this file 5 Downloads (last 30 days) File Size: 1.52 KB File ID: #41239 Version: 1.0

# Finds edges in a binary image

### Nazar Petruk (view profile)

Function "EDGE2" is an alternative to function "EDGE". Function is compact and fast.

File Information
Description

Features of code:
1. Not difficult.
2. The minimum number of lines.
3. Using simple operations on matrices.
4. Fast.

CODE:

function [OUT] = edge2(IN)
% EDGE2 finds edges in a binary image.
% IN - logic array (binary image).
% OUT - logic array (binary image) of the same size as IN.
%
% Binary image IN:
% (0) "false" - background,
% (1) "true" - objects.
% Binary image OUT:
% (1) "true" where the function finds edges,
% (0) "false" elsewhere.
%
% Remarks
% -------
% Edges can be internal and external. This function finds the EXTERNAL
% edges. But if you need to find the internal edges, you must invert
% a binary image IN.
%
% Example
% -------
% Find edges in the binary image IN:
%
% OUT = edge2(IN); external edges
% OUT = edge2(~IN); internal edges
%
%
% Author: Nazar Petruk
% email: petruk.n.p@gmail.com
% Date: 2013, April
% Copyright (c) 2013, by Nazar Petruk

[r,c] = size(IN);
% Creating a logic array A. The dimension of the array A is equal to
% the dimension of the array IN plus 2(two).
A = false([r,c]+2);
% Fill the array A, using the operation "OR".
for i = 0:2,
for j = 0:2,
A((1:r)+i,(1:c)+j) = A((1:r)+i,(1:c)+j) | IN;
end;
end;
% Receiving array OUT, using the operation "exclusive-OR".
OUT = xor(A(2:r+1,2:c+1), IN);

Required Products MATLAB
MATLAB release MATLAB 8.0 (R2012b)