## 2 Theoretical Background  
### Classical and Fuzzy Hough Transforms  
Hough transform has been in use for detecting straight lines and circles since a rather long time. The Hough transform is meant to find a parametric curve fitting to some measured points of the curve [13], if the shape, i.e., the general parametric formula of the curve is known. One of the simplest Hough transforms uses the two-parameter equation of a straight line, i.e.,  
\[y=a_{0}\cdot x+b_{0} \tag{1}\]  
with \(x\) and \(y\) being the coordinates of points in the Cartesian space, and \(a_{0}\) and \(b_{0}\) being the parameters from the parameter space \((a,b)\). Hough transform basically generates the curves belonging to each line point \((x_{0},y_{0})\) in the space of the parameters; in the case of straight lines, each point \((x_{0},y_{0})\) will form a straight line  
\[b=(-x_{0})\cdot a+y_{0} \tag{2}\]  
in the parameter space, too. If another point is on line (1) in the real space, it will have another line in the transformed space, similar to (2), but with different slope and offset. However, these lines, formed by the points on line (1) will have an intersection at \((a_{0},b_{0})\), i.e., at the parameter pair belonging to (1). This means, that the point \((a_{0},b_{0})\) will be arising from all the points \((x,y)\) of (1), thus, if we add one vote to each point of (1), then \((a_{0},b_{0})\) will have a high number of votes, whereas other points, that belong only to one of the lines of type (2) will have only one. This consideration was used by [PERSON] and later by many others to develop the following method. 1. Divide the space \((x,y)\) by a finite grid (if not already executed). 2. Divide the transformed space \((a,b)\) by a finite grid, it gives the resolution of the result. 3. For each point \((a,b)\) in the transformed space add a vote for each point \((x,y)\) in the original space, that is contained by the line. 4. Search for the maximum of votes 1. If there is just one line, the global maximum \((a_{max,0},b_{max,0})\) will be the approximation of parameter \((a_{0},b_{0})\) of the line we were looking for. 2. If there are multiple lines, longer and shorter segments, the local maxima \((a_{max,k},b_{max,k})\) will also approximate parameter pairs of lines. The longer the line in the original space, the more votes it obtains. By setting up a threshold, the length of the detected line segment can be controlled. 5. The lines \(y=a_{max,k}\cdot x+b_{max,k}\) with the detected approximate parameters \((a_{max,k},b_{max,\,k})\) can be drawn in the original space \((x,y)\). The algorithm is given for the case of straight lines like (1), but it can be generated easily to any kind of parametric curve. In the case of colorectal polyps, the circular or elliptic Hough transform is the most plausible, with parametric equations  
\[r_{0}^{2}=(x-a_{0})^{2}+(y-b_{0})^{2}, \tag{3}\]  
\[1=\frac{(x-h_{0})^{2}}{a_{0}^{2}}+\frac{(y-k_{0})^{2}}{b_{0}^{2}} \tag{4}\]  
It can be seen that the circle has three parameters, the radius \(r_{0}\), and the centre coordinates \(a_{0}\) and \(b_{0}\), while the ellipse has four parameters, the half axes \(a_{0}\) and \(b_{0}\), and the centre coordinates \(h_{0}\) and \(k_{0}\). Nowadays, Hough transforms are applied to images after edge detection [14; 15; 16], thus, the original space already has an innate grid, i.e., step 1 is mostly not necessary. Very often this edge detection step is considered as the first step of the Hough transform. As the focus of our paper is on circular Hough transform, here the pseudocode of the classical circular Hough transform is given in Algorithm 1.