libCBDetect 1.0.0__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- libCBDetect/Checkerboard.cp311-win_amd64.pyd +0 -0
- libCBDetect/__init__.py +27 -0
- libcbdetect-1.0.0.dist-info/DELVEWHEEL +2 -0
- libcbdetect-1.0.0.dist-info/METADATA +189 -0
- libcbdetect-1.0.0.dist-info/RECORD +10 -0
- libcbdetect-1.0.0.dist-info/WHEEL +5 -0
- libcbdetect-1.0.0.dist-info/licenses/LICENSE +7 -0
- libcbdetect.libs/concrt140-7ec2e462af9863fc63a36625cf0b5132.dll +0 -0
- libcbdetect.libs/msvcp140-3bb6fda0804f69805b472c303438e6c7.dll +0 -0
- libcbdetect.libs/opencv_world4110-3401ab4f818d41dccdb4b7e7dc8ec4fd.dll +0 -0
|
Binary file
|
libCBDetect/__init__.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
libCBDetect – Python bindings for the cbdetect C++ checkerboard detector.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# start delvewheel patch
|
|
7
|
+
def _delvewheel_patch_1_10_1():
|
|
8
|
+
import os
|
|
9
|
+
if os.path.isdir(libs_dir := os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'libcbdetect.libs'))):
|
|
10
|
+
os.add_dll_directory(libs_dir)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
_delvewheel_patch_1_10_1()
|
|
14
|
+
del _delvewheel_patch_1_10_1
|
|
15
|
+
# end delvewheel patch
|
|
16
|
+
|
|
17
|
+
from .Checkerboard import Checkerboard # noqa: F401
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
import os, sys
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
|
|
23
|
+
# shipped DLLs are put in …/libCBDetect.libs by delvewheel
|
|
24
|
+
_this_dir = Path(__file__).with_suffix('').parent
|
|
25
|
+
libs = _this_dir.parent / (f"{_this_dir.name}.libs")
|
|
26
|
+
if libs.exists() and hasattr(os, "add_dll_directory"):
|
|
27
|
+
os.add_dll_directory(libs)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Version: 1.10.1
|
|
2
|
+
Arguments: ['C:\\hostedtoolcache\\windows\\Python\\3.12.10\\x64\\Scripts\\delvewheel', 'repair', 'D:\\a\\libCBDetect\\libCBDetect\\wheelhouse\\libcbdetect-1.0.0-cp311-cp311-win_amd64.whl', '-w', 'wheelhouse\\repaired\\', '--add-path', 'C:\\opencv\\build\\x64\\vc16\\bin']
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: libCBDetect
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Python bindings for a C++ Checkerboard detector
|
|
5
|
+
Author-Email: =?utf-8?q?Micha=C3=ABl_Hillen?= <michael.hillen@uantwerpen.be>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: C++
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Project-URL: Homepage, https://github.com/InViLabUAntwerp/libCBDetect
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Requires-Dist: numpy<1.29.0,>=1.22.4
|
|
14
|
+
Requires-Dist: opencv-python-headless
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# Libcbdetect
|
|
18
|
+
|
|
19
|
+
- Unofficial implemention of [libcbdetect](http://www.cvlibs.net/software/libcbdetect/) in C++ based
|
|
20
|
+
on https://github.com/ftdlyc/libcbdetect.
|
|
21
|
+
|
|
22
|
+
Libdetect is fully automatic sub-pixel checkerboard / chessboard / deltille pattern detection. The algorithm
|
|
23
|
+
autmatically extracts corners to sub-pixel accuracy and combines them to (rectangular) checkerboards / chessboard-like.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Development
|
|
28
|
+
|
|
29
|
+
## 0. Setting up Windows environment
|
|
30
|
+
|
|
31
|
+
- Install Visual Studio Build Tools:
|
|
32
|
+
|
|
33
|
+
1. Download the "Visual Studio Build Tools" installer from
|
|
34
|
+
Microsoft [(link)](https://aka.ms/vs/17/release/vs_BuildTools.exe)
|
|
35
|
+
2. During installation, select "Desktop development with C++"
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 1. Installing local dependencies
|
|
40
|
+
|
|
41
|
+
### 1. OpenCV
|
|
42
|
+
|
|
43
|
+
1. **Windows (prebuilt binaries)**
|
|
44
|
+
1. Download the latest Windows release ZIP from
|
|
45
|
+
the [OpenCV GitHub releases page](https://github.com/opencv/opencv/releases).
|
|
46
|
+
2. Extract it (e.g., to `C:\`).
|
|
47
|
+
3. Set `OPENCV_DIR` in **System > Environment Variables** to the `C:\opencv\build`
|
|
48
|
+
folder. ([Integrating OpenCV with Visual Studio C++ Projects on Windows](https://christianjmills.com/posts/opencv-visual-studio-getting-started-tutorial/windows/?utm_source=chatgpt.com))
|
|
49
|
+
|
|
50
|
+
> [!TIP]
|
|
51
|
+
> Or use the following command in a PowerShell with administrator privileges to do everything at once
|
|
52
|
+
> ```shell
|
|
53
|
+
> $ver='4.11.0';$exe="$env:TEMP\opencv.exe";Invoke-WebRequest -Uri "https://github.com/opencv/opencv/releases/download/$ver/opencv-$ver-windows.exe" -OutFile $exe; Start-Process -FilePath $exe -ArgumentList "-y","-oC:\" -NoNewWindow -Wait; Remove-Item $exe; $base='C:\opencv'; $bin="$base\build\x64\vc16\bin"; $cfg="$base\build\x64\vc16\lib"; [Environment]::SetEnvironmentVariable('Path',[Environment]::GetEnvironmentVariable('Path','Machine')+';'+$bin,'Machine'); [Environment]::SetEnvironmentVariable('OpenCV_DIR',$cfg,'Machine'); $env:Path+=';'+$bin
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
2. **Linux (Ubuntu/Debian)**
|
|
57
|
+
```bash
|
|
58
|
+
sudo apt update
|
|
59
|
+
sudo apt install libopencv-dev -y
|
|
60
|
+
```
|
|
61
|
+
This installs both runtime and development headers/libraries for OpenCV
|
|
62
|
+
4.x. ([How to Install opencv in C++ on Linux?—GeeksforGeeks](https://www.geeksforgeeks.org/how-to-install-opencv-in-c-on-linux/?utm_source=chatgpt.com))
|
|
63
|
+
|
|
64
|
+
3. **macOS (Homebrew)**
|
|
65
|
+
```bash
|
|
66
|
+
brew update
|
|
67
|
+
brew install opencv
|
|
68
|
+
```
|
|
69
|
+
After installation, headers are in `/usr/local/include/opencv4`, libs in
|
|
70
|
+
`/usr/local/lib`. ([Getting started with Opencv with C++ - Nikhil Ramesh](https://nikku1234.github.io/2019-10-27-Getting-started-with-Opencv-with-C%2B%2B/?utm_source=chatgpt.com))
|
|
71
|
+
|
|
72
|
+
### 2. pybind11
|
|
73
|
+
|
|
74
|
+
1. **Windows**
|
|
75
|
+
```powershell
|
|
76
|
+
pip install "pybind11[global]"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
2. **Linux (Ubuntu/Debian)**
|
|
80
|
+
```bash
|
|
81
|
+
sudo apt update
|
|
82
|
+
sudo apt install -y python3-pybind11
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
3. **macOS (Homebrew)**
|
|
86
|
+
```bash
|
|
87
|
+
brew install pybind11
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 2. Creating a Python virtual environment
|
|
93
|
+
|
|
94
|
+
> [!NOTE]
|
|
95
|
+
> This environment will be used for building the project.
|
|
96
|
+
|
|
97
|
+
### Linux & macOS (bash/zsh)
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
python3 -m venv .venv
|
|
101
|
+
source .venv/bin/activate
|
|
102
|
+
python -m pip install --upgrade pip wheel build pybind11 cibuildwheel
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Windows (PowerShell)
|
|
106
|
+
|
|
107
|
+
```powershell
|
|
108
|
+
py -3.10 -m venv .venv
|
|
109
|
+
.venv\Scripts\Activate.ps1
|
|
110
|
+
python -m pip install --upgrade pip wheel build pybind11 cibuildwheel
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 3. Building the package
|
|
116
|
+
|
|
117
|
+
### 3-a Local build
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
python -m build
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
`scikit-build-core` invokes **CMake + pybind11** to compile the C++ extension
|
|
124
|
+
for **your** Python, then packages:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
dist/
|
|
128
|
+
├─ libCBDetect-0.1.0-cp313-cp313-macosx_15_0_arm64.whl
|
|
129
|
+
└─ libCBDetect-0.1.0.tar.gz
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Windows only**: Repair the wheel with delvewheel to include all required DLLs:
|
|
133
|
+
|
|
134
|
+
```powershell
|
|
135
|
+
pip install delvewheel
|
|
136
|
+
$wheel = Get-ChildItem -Path .\dist\*.whl | Sort-Object LastWriteTime -Descending | Select-Object -First 1
|
|
137
|
+
delvewheel repair $wheel.FullName -w .\dist\repaired\
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Install:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
pip install dist/checkerboard-*.whl --force-reinstall
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Windows**: Use the repaired wheel:
|
|
147
|
+
|
|
148
|
+
```powershell
|
|
149
|
+
pip install dist\repaired\*.whl --force-reinstall
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 3-b Editable installation for rapid iteration
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
pip install -e .[dev]
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Builds the extension **once** and leaves the Python
|
|
159
|
+
files linked to your working copy, so every code change is picked up
|
|
160
|
+
immediately.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Tips
|
|
165
|
+
|
|
166
|
+
If using CLion (on Windows), change the default toolchain in the CMake Profiles to ***Visual Studio***.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### Original CPP code:
|
|
171
|
+
|
|
172
|
+
https://github.com/ftdlyc/libcbdetect
|
|
173
|
+
|
|
174
|
+
### Reference Papers
|
|
175
|
+
|
|
176
|
+
[1] Geiger, A., Moosmann, F., Car, Ö., & Schuster, B. (2012, May). Automatic camera and range sensor calibration using
|
|
177
|
+
a single shot. In Robotics and Automation (ICRA), 2012 IEEE International Conference on (pp. 3936-3943). IEEE.
|
|
178
|
+
[2] Schönbein, M., Strauß, T., & Geiger, A. (2014, May). Calibrating and centering quasi-central catadioptric cameras.
|
|
179
|
+
In Robotics and Automation (ICRA), 2014 IEEE International Conference on (pp. 4443-4450). IEEE.
|
|
180
|
+
[3] Placht, S., Fürsattel, P., Mengue, E. A., Hofmann, H., Schaller, C., Balda, M., & Angelopoulou, E. (2014,
|
|
181
|
+
September). Rochade: Robust checkerboard advanced detection for camera calibration. In European Conference on Computer
|
|
182
|
+
Vision (pp. 766-779). Springer, Cham.
|
|
183
|
+
[4] Ha, H., Perdoch, M., Alismail, H., Kweon, I. S., & Sheikh, Y. (2017, October). Deltille Grids for Geometric Camera
|
|
184
|
+
Calibration. In 2017 IEEE International Conference on Computer Vision (ICCV) (pp. 5354-5362). IEEE.
|
|
185
|
+
[5] Duda, A., & Frese, U. (2018, September). Accurate Detection and Localization of Checkerboard Corners for
|
|
186
|
+
Calibration. In British Machine Vision Conference (BMCV), 2018.
|
|
187
|
+
[6] Sels, S., Ribbens, B., Vanlanduit, S., & Penne, R. (2019). Camera Calibration Using Gray Code. In Sensors (Vol. 19,
|
|
188
|
+
Issue 2, p. 246). MDPI AG. https://doi.org/10.3390/s19020246
|
|
189
|
+
[7] Hillen, M., De Boi, I., De Kerf, T., Sels, S., Cardenas De La Hoz, E., Gladines, J., Steenackers, G., Penne, R., & Vanlanduit, S. (2023). Enhanced Checkerboard Detection Using Gaussian Processes. Mathematics, 11(22), 4568. https://doi.org/10.3390/math11224568
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
libCBDetect/Checkerboard.cp311-win_amd64.pyd,sha256=R58wylIEcFLGEwAWt58tzQoS87BzPoeNLPiyCz6KyAo,348672
|
|
2
|
+
libCBDetect/__init__.py,sha256=XhNkFtfnRVz3G_ofxCNyjN7TxxMQR5WIzL-Cm_w1EJc,772
|
|
3
|
+
libcbdetect-1.0.0.dist-info/DELVEWHEEL,sha256=7iWVUMHDm5xjk6PlJiifC009gFCyC5OQlUDO-mH1whE,288
|
|
4
|
+
libcbdetect-1.0.0.dist-info/METADATA,sha256=wADuD5ZZOoc8tm2av3umjfystGEn02m0kQrUcRcQsiM,6700
|
|
5
|
+
libcbdetect-1.0.0.dist-info/RECORD,,
|
|
6
|
+
libcbdetect-1.0.0.dist-info/WHEEL,sha256=RKWfL8d6R7y9dzb5_AyhPLMoBaKZaDpOTwy7YMg9zGI,106
|
|
7
|
+
libcbdetect-1.0.0.dist-info/licenses/LICENSE,sha256=VYjJQNie7ZsjmGMD5hZVZCAHII10ono-c-YrsyLv3hA,1086
|
|
8
|
+
libcbdetect.libs/concrt140-7ec2e462af9863fc63a36625cf0b5132.dll,sha256=Dm6TVVn83yDW6RYDuQPacndtQovedp4_DxX_JL_IwN0,304128
|
|
9
|
+
libcbdetect.libs/msvcp140-3bb6fda0804f69805b472c303438e6c7.dll,sha256=pMIim9wqKmMKzcCVtNhgCOXD47x3cxdDVPPaT1vrnN4,575056
|
|
10
|
+
libcbdetect.libs/opencv_world4110-3401ab4f818d41dccdb4b7e7dc8ec4fd.dll,sha256=zP1NqCThFMRzXuFo3KBDPymjsSsrrnF2bgiZNHlMoCQ,64825856
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2025 UAntwerp InViLab research group
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|