Skip to content
Snippets Groups Projects
Commit c5609bc7 authored by even's avatar even
Browse files

Article auto-detection

parent dbda5d00
No related branches found
No related tags found
No related merge requests found
\begin{algorithm}[h]
\SetAlgoLined
\SetKwInOut{Input}{input}
\SetKwInOut{Output}{output}
\SetKwData{image}{$\mathcal{I}$}
\SetKwData{iwidth}{$W_I$}
\SetKwData{iheight}{$H_I$}
\SetKwData{resol}{$\delta$}
\SetKwData{nullset}{$\emptyset$}
\SetKwData{Result}{Result}
\SetKwArray{mask}{$\mathcal{M}$}
\SetKwArray{bslist}{BSL}
\SetKwFunction{multi}{MultiDetect}
\SetKwFunction{pt}{Pt}
\SetKwData{Begin}{Start}
\SetKwData{End}{End}
\Input{Image \image, width \iwidth, height \iheight, resolution \resol}
\Output{\textit{\bslist} $\rightarrow$ list of detected blurred segments}
\BlankLine
\bslist $\leftarrow$ \nullset\;
\mask $\leftarrow$ \nullset\;
$i \leftarrow$ \resol/2\;
\Repeat{$i <$ \iwidth/2}{
\bslist $\leftarrow$ \bslist + \multi (\pt(\iwidth/2-i,\iheight),
\pt(\iwidth/2-i,0), \mask)\;
\bslist $\leftarrow$ \bslist + \multi (\pt(\iwidth/2+i,\iheight),
\pt(\iwidth/2+i,0), \mask)\;
$i \leftarrow i -$ \resol\;
}
$i \leftarrow$ \resol/2\;
\Repeat{$i <$ \iheight/2}{
\bslist $\leftarrow$ \bslist + \multi (\pt(0,\iheight/2-i),
\pt(\iwidth,\iheight/2-i), \mask)\;
\bslist $\leftarrow$ \bslist + \multi (\pt(0,\iheight/2+i),
\pt(\iwidth,\iheight/2+i), \mask)\;
$i \leftarrow i -$ \resol\;
}
\caption{AutoDetect: finds all blurred segments in the image.}
\end{algorithm}
Article/Fig_method/plafondAuto.png

499 KiB

Article/Fig_method/plafond_petit.png

502 KiB

Article/Fig_method/vcercle.png

19.1 KiB

Article/Fig_method/vcercleAuto.png

15.8 KiB

......@@ -4,7 +4,7 @@
%\usepackage[T1]{fontenc}
\usepackage{graphicx}
\graphicspath{{./images/}{./images/introduction}}
%\graphicspath{{./Fignotions/}{./Figmethod}}
\usepackage[ruled,vlined]{algorithm2e}
......
......@@ -95,7 +95,6 @@ iii) points marked as occupied are rejected when selecting candidates for the
blurred selegment extension in the fine tracking step.
\input{Fig_method/algoMulti}
%\input{algo1}
Beyond the possible detection of a large set of edges at once, the
multi-detection allows the detection of some unaccessible edges in
......@@ -162,9 +161,44 @@ This example illustrates our detector versatility.
\subsection{Automatic blurred segment detection}
Explication et b\'etail de l'algo
An unsupervised mode is also proposed to automatically detect all the
straight edges in the image. A stroke that crosses the whole image, is
swept in both direction, vertical then horizontal, from the center to
the borders. At each position, the multi-detection algorithm is run
to collect all the segments found under the stroke.
\input{Fig_method/algoAuto}
The behaviour of the unsupervised detection is depicted through the two
examples of \RefFigure{fig:auto}.
The example on the left shows the detection of thin straight objects on a
circle with variable width.
On the left half of the circumference, the distance between both edges
exceeds the initial assigned width and a thick blurred segment is build
for each of them. Of course, on a curve, a continuous thickenning is
observed untill the blurred segment minimal width reaches the initial
assigned width.
On the right half, both edges are encompassed in a common blurred segment,
and at the extreme right part of the circle, the few distant residual points
are grouped to form a thick segment.
The example on the right shows the limits of the edge detector on a picture
with quite dense repartition of gradient.
All the salient edges are well detected but they are surrounded be a lot
of false detections, that rely on the presence of many local maxima of
the gradient magnitude with similar orientations.
\subsection{Implementation details}
\begin{figure}[h]
\center
\begin{tabular}{c@{\hspace{0.2cm}}c}
\includegraphics[width=0.37\textwidth]{Fig_method/vcercleAuto.png} &
\includegraphics[width=0.58\textwidth]{Fig_method/plafondAuto.png}
\end{tabular}
\caption{Automatic detection of blurred segments.}
\label{fig:auto}
\end{figure}
A directional scanner is encoded as an iterator that provides successively
all the scan lines.
% \subsection{Implementation details}
%
% A directional scanner is encoded as an iterator that provides successively
% all the scan lines.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment