# High-quality-ellipse-detection **Repository Path**: code_lixin/High-quality-ellipse-detection ## Basic Information - **Project Name**: High-quality-ellipse-detection - **Description**: A high-quality ellipse detector based on arc-support line segments which can both accurately and efficiently detect ellipses in images. - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-08-17 - **Last Updated**: 2021-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # High-quality Ellipse Detection ## 1. Illustration - This is the source code for the paper [Arc-support Line Segments Revisited: An Efficient and High-quality Ellipse Detection](https://arxiv.org/abs/1810.03243). ***Important: Please use the citation of our IEEE TIP version instead of arXiv version***. - The main contribution of the proposed ellipse detector is to both accurately and efficiently detect ellipses in images, which is universally considered as a tough and long-standing problem in ellipse detection field. The proposed ellipse detector owns the features of *high localization accuracy, efficiency, robustness*, and *stability*, which comprehensively yields high-quality ellipse detection performance in front of real-world images. - There are only *two* extrinsic parameters, namely the elliptic angular coverage $T_{ac}$ and the ratio of support inliers $T_{r}$, which enables the proposed ellipse detector to be conveniently used and applied in real applications. In addition, the *specified_polarity* option can help users find the polarity-specific ellipses in the image. The default parameters $T_{ac} = 165^o$ and $T_{r} = 0.6$ are used for comparison experiments in our paper. - The source code is free for academic use. Please cite our paper if you use the source code, thanks. ## 2. Requirements - MATLAB - OpenCV (Version 2.4.9) - 64-bit Windows Operating System ## 3. How to use - Firstly, compile the file "generateEllipseCandidates.cpp" in MATLAB on your computer to generate the mex file "generateEllipseCandidates.mexw64" with the following command: --- mex generateEllipseCandidates.cpp -IF:\OpenCV\opencv2.4.9\build\include -IF:\OpenCV\opencv2.4.9\build\include\opencv -IF:\OpenCV\opencv2.4.9\build\include\opencv2 -LF:\OpenCV\opencv2.4.9\build\x64\vc11\lib -IF:\Matlab\settlein\extern\include -LF:\Matlab\settlein\extern\lib\win64\microsoft -lopencv_core249 -lopencv_highgui249 -lopencv_imgproc249 -llibmwlapack.lib --- Notably, the corresponding software paths of OpenCV and MATLAB, namely the "F:\OpenCV\opencv2.4.9\" and "F:\Matlab\settlein\", should be replaced to your own. - Secondly, run the demo file "LCS_ellipse.m". ## 4. Examples *Some high-quality ellipse detection examples run with default parameters and on the same computer with Intel Core i7-7500U 2.7GHz CPU and 8 GB memory* ### 4.1 Detecting all ellipses in the image --- - The number of detected ellipses: 4; Running time: 0.090s; Resolution: 651 x 436 --- - The number of detected ellipses: 25; Running time: 0.460s; Resolution: 720 x 435 --- - The number of detected ellipses: 3; Running time: 0.060s; Resolution: 512 x 456 --- - The number of detected ellipses: 8; Running time: 0.110s; Resolution: 752 x 525 ### 4.2 Detecting the ellipses with positive polarity - The number of detected ellipses: 4; Running time: 0.080s; Resolution: 752 x 525 ### 4.3 Detecting the ellipses with negative polarity - The number of detected ellipses: 4; Running time: 0.086s; Resolution: 752 x 525 ### 4.4 Detecting the ellipses sharing different polarity - The number of detected ellipses: 5; Running time: 0.226s; Resolution: 1000 x 680. ($T_{ac} = 165^{o}$, $T_r = 0.5$) ## 5. Successful Application Cases Up to Now - Car Wheel Hub Recognition - PCB Inspection - Object Fingerprinting - Robot Vision ## 6. Citation ``` @article{lu2019arc, title={Arc-Support Line Segments Revisited: An Efficient High-Quality Ellipse Detection}, author={Lu, Changsheng and Xia, Siyu and Shao, Ming and Fu, Yun}, journal={IEEE Transactions on Image Processing}, volume={29}, pages={768--781}, year={2019}, publisher={IEEE} } ``` ## 7. Our Previous Work We also proposed a [circle detection method](https://github.com/AlanLuSun/Circle-detection) in our previous work which could detect circles from image efficiently, precisely and robustly.