## 2 Theoretical Background
### Classical and Fuzzy Hough Transforms
```
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
99:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
99:
99:
90:
91:
92:
93:
94:
95:
96:
97:
98:



Divide the space of fuzzy points \((x,y)\) by a finite grid (if not already executed). 2. Divide the transformed space \((a,b,\,\ldots)\) by a finite grid, it gives the resolution of the result. 3. For each point \((a,b,\,\ldots)\) in the transformed space, and its environment add a vote proportional to the membership function for each fuzzy point \((x,y)\) in the original space, that is part of the fuzzy curve. 4. Search for the maximum of votes 1. If there is just one curve segment, the global maximum \((a_{max,0},b_{max,0},\,\ldots)\) will be the approximation of parameter \((a_{0},b_{0},\,\ldots)\) of the curve we were looking for. 2. If there are multiple curves, with longer and shorter segments, the local maxima \((a_{max,b},b_{max,k},\,\ldots)\) will also approximate parameters of the curves. The longer the curve in the original space, the more votes it obtains. By setting up a threshold the length of the detected segment can be controlled. 5. The curves with the detected approximate parameters \((a_{max,k},b_{max,k},\,\ldots)\) can be drawn in the original space \((x,y)\). Practically, if all fuzzy points \((x,y)\) have the same membership distribution around them, then the 3 rd step of the voting manifests in adding a vote \(\mu(|\alpha-a|,|\beta-b|,\,\ldots)\) to the neighboring points \((\alpha,\beta,\,\ldots)\) of the studied parameter space point \((a,b,\,\ldots)\). Using this approach made the Hough transform more tolerant to distortions from the original parametric curves. This made us able to use circular Hough transform for searching for contours of polyps, i.e., the three-parameter Equation (3) could be used instead of the four-parameter Equation (4). Using these considerations, the pseudocode of the circular fuzzy Hough transform is as follows in Algorithm 2. The applied voting membership function was a 3D-Gaussian, as it had a rather wide region around the center that is still close to 1. For a given parameter point \((a_{0},b_{0},r_{0}\,)\), the votes were given to the neighboring points \(([a_{0}-\sigma,a_{0}+\sigma],[b_{0}-\sigma,b_{0}+\sigma],[r_{0}-\sigma,r_{0}+ \sigma]\,)\) according to the membership function

\[\mu(a,b,r)=\exp\left(-\frac{(a-a_{0})^{2}+(b-b_{0})^{2}+(r-r_{0})^{2}}{2\sigma }\right). \tag{5}\]

As an example, an image (No. 220 form database CVC-Colon), its preprocessing steps, and transformed images are shown in the following figures. Figure 1 shows the image after reflection removal, its ground truth mask and its Prewitt edge detected version. Figure 2 shows the resulting votes for classical and fuzzy Hough transforms (for one with \(\sigma=5\) slight fuzziness, and another with \(\sigma=15\), wide fuzziness). Each column has four images, two at the radius values belonging to the two main detected circles, and there are 2 pictures with radii slightly smaller and larger than the circle at the polyp. Figure 3 shows the detected circles for different thresholds compared to the global maximum of the votes. Figure 1: A sample image (220) from database CVC-Colon [42] for demonstrating the Hough transform steps, is shown in subplot (**a**), its ground truth mask in subplot (**b**), and the Prewitt edge detected version of the picture in subplot (**c**).