# An Automatic 3D Point Cloud Registration Method Based on Biological Vision
## 2 Cone Vertex Detection
### Multi-View Observation  
Since the measured space is three-dimensional, in order to carry out the all-round observation of a target, three base planes need to be selected as observation planes, for example, XOY, YOZ, and ZOX planes. In each observation plane, the target can be observed from different viewpoints. Without loss of generality, the XOY observation plane can be taken as an example, as shown in Figure 3a. Figure 3: Multi-view observation. (**a**) Observations from different viewpoints; (**b**) image binarization under constraints; (**c**) binary image. Figure 2: The principles of cone vertex detection based on biological vision. At viewpoint I, the observed 3D point is notated as \(P_{i}^{1}=\left(x_{i}^{1},y_{i}^{1},z_{i}^{1}\right)\left(i=1,2,\ldots,n-1,n\right)\), where \(n\) is the number of points. Its corresponding 2D projection point on the YOZ plane is notated as \(\widetilde{p}_{i}^{1}=\left(\widetilde{x}_{i}^{1},\widetilde{y}_{i}^{1}\right)\). \[\left\{ \begin{array}{l}\widetilde{x}_{i}^{1}=y_{i}^{1}\\ \widetilde{y}_{i}^{1}=z_{i}^{1}\end{array} \right. \tag{1}\]  
The center point of the 2D point cloud is notated as \(\widetilde{p}_{c}^{1}=\left(\widetilde{x}_{c}^{1},\widetilde{y}_{c}^{1}\right)\). \[\widetilde{p}_{c}^{1}=\frac{\sum\limits_{i=1}^{n}\widetilde{p}_{i}^{1}}{n}. \tag{2}\]  
The width \(w_{1}\) and height \(h_{1}\) of its corresponding minimum enclosing rectangle (MER) are calculated as follows:  
\[\left\{ \begin{array}{l}w_{1}=\max\limits_{i=1,2,\ldots,n-1,n}\left( \widetilde{x}_{i}^{1}\right)-\min\limits_{i=1,2,\ldots,n-1,n}\left(\widetilde {x}_{i}^{1}\right)\\ h_{1}=\max\limits_{i=1,2,\ldots,n-1,n}\left(\widetilde{y}_{i}^{1}\right)-\min \limits_{i=1,2,\ldots,n-1,n}\left(\widetilde{y}_{i}^{1}\right)\end{array} \right.. \tag{3}\]  
In the YOZ plane, the imaging process of the retina can be simulated to generate a binary image \(I^{1}\) with width \(W_{1}\) and height \(H_{1}\) as:  
\[\mathrm{v}\left\{ \begin{array}{l}W_{1}=kw_{1}\\ H_{1}=kh_{1}\end{array} \right.,k\geq 1, \tag{4}\]  
where \(k\) is a zoom coefficient. Then, the pixel coordinate of the center point \(l_{c}^{1}=\left(\widetilde{x}_{c}^{1},\widetilde{y}_{c}^{1}\right)\) of the image can be calculated as follows:  
\[\left\{ \begin{array}{l}\overline{x}_{c}^{1}=\left(W_{1}-1\right)/2\\ \widetilde{y}_{c}^{1}=\left(H_{1}-1\right)/2\end{array} \right.. \tag{5}\]  
Then, the 2D point cloud \(\widetilde{p}_{i}^{1}\) can be shifted to the image pixel coordinate system as:  
\[\overline{p}_{i}^{1}=\widetilde{p}_{i}^{1}-\widetilde{p}_{c}^{1}+l_{c}^{1}, \tag{6}\]  
where \(\overline{p}_{i}^{1}\) is the corresponding point of \(\widetilde{p}_{i}^{1}\) in image \(I^{1}\). If the grayscale of \(\overline{p}_{i}^{1}\) is directly set to 255 and that of the other pixels is set to 0, the target area in the binary image becomes only a set of discrete pixels but not a connected domain, which cannot be used to detect corners. As is shown in Figure 3b, \(A\), \(B\), and \(C\) are three vertices of an arbitrary triangle patch \(T_{j}(j=1,2,\ldots,t-1,t)\) on the target surface, and its corresponding triangle in the image is notated as \(\overline{T}_{j}\), where \(t\) is the number of triangle patches. Both \(T_{j}\) and \(\overline{T}_{j}\) are connected domains. The coordinates of \(A\), \(B\), and \(C\) are notated as \(P_{A}^{1}\), \(P_{B}^{1}\), and \(P_{C}^{1}\), respectively. The coordinates of \(\overline{A}\), \(\overline{B}\), and \(\overline{C}\) in the image are notated as \(\overline{p}_{A}^{1}\), \(\overline{p}_{B}^{1}\), and \(\overline{p}_{C}^{1}\), respectively. \(\overline{Q}_{k}\) is an arbitrary pixel in image \(I^{1}\), and its coordinates are notated as \(\overline{q}_{k}^{1}\), where \((k=1,2,\ldots,m-1,m)\), and \(m\) is the number of pixels in image \(I^{1}\). Then, the following vectors can be obtained:  
\[\left\{