libCBDetect 1.0.0__cp313-cp313-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.
@@ -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-cp313-cp313-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.cp313-win_amd64.pyd,sha256=Ib3EuCssjZCWNqnhiRuXY0OEhD3-HERM_CaeJ87ZkVE,350720
2
+ libCBDetect/__init__.py,sha256=XhNkFtfnRVz3G_ofxCNyjN7TxxMQR5WIzL-Cm_w1EJc,772
3
+ libcbdetect-1.0.0.dist-info/DELVEWHEEL,sha256=aNWgwjNfCMG3wI07pNVI57SQiFy8cfoXV3hyf3GWA4U,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=_PdgJ-W7uMAsWwnGnEdiicDU_PKcobRdffEM23gmN6g,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,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: scikit-build-core 0.11.5
3
+ Root-Is-Purelib: false
4
+ Tag: cp313-cp313-win_amd64
5
+
@@ -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.