Implement ilabel: fast pixel-based region labelling (from the MATLAB MVTB C extension)
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 5/5
- 預估耗時
- 一週以上
- 新手友好度
- 25/100
- Issue 類型
- 功能
- 描述清晰度
- 需要釐清
- 活躍度
- 活躍
研究方向
Start by inspecting wip/ilabel/ilabel.c and wip/ilabel/ilabel.py-unopt, then read the existing blob/label functions and the TODO in tests/test_image_processing.py. Decide and document the Python API and implementation route, with tests comparing shared examples to the contour-based blob code. Done means ilabel is implemented, its return values are tested, and the build and Python-only support implications are addressed.
由索引模型根據 Issue 內容生成。
描述
Parked work, to be implemented later. The files are on branch feat/fast-label under wip/ilabel/ (not in main).
What it is
A pixel-based, rather than contour-based, approach to segmentation / region labelling, based on the ilabel C extension (Copyright 1995-2009 Peter Corke) from the MATLAB Machine Vision Toolbox. The MATLAB signature was [l, m, parents, color] = ilabel(im).
What exists
wip/ilabel/ilabel.c: Cython 3.0.11 output (2024-12), 592 KB. It was generated from anilabel.pyxthat is not in the repo, but Cython embeds the source as/* "ilabel.pyx":NN */comments, so the.pyxcan be reconstructed from this file.wip/ilabel/ilabel.py-unopt: unoptimised pure-Python port, produced with Copilot (2024-12).- The Python toolbox has no implementation. The only reference is a TODO in
tests/test_image_processing.py(# TODO [l,ml,p,c] = ilabel(im);).
To do
- Reconstruct
ilabel.pyxfrom the embedded comments inilabel.c(or port afresh), and decide the implementation route (Cython extension vs numba vs NumPy/SciPy). Note this package is pure Python and builds with hatchling, so a compiled extension changes the build/wheel story (and Pyodide/JupyterLite support); a pure-Python/NumPy route avoids that. - Define the Python API (
Imagemethod, return values), consistent with the existing blob/label functions. - Tests, including a comparison with the existing contour-based blob code on shared examples, and the TODO above.
Related: #45
- 主要語言
- Python
- 星號
- 225
- 分支
- 35
- 平均合併
- 1 天 12 小時
- 30 天內合併 PR
- 33
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
petercorke/machinevision-toolbox-python 的其他 Issue
-
難度 1/5 1 小時以內 新手友好度 88/100
petercorke/machinevision-toolbox-python#168 ·
維護者通常 1 天內回覆
-
_isnotebook() does not recognise JupyterLite可能重新可做 關聯的 PR 已關閉且未合併。 未關閉
難度 3/5 半天 新手友好度 45/100
petercorke/machinevision-toolbox-python#166 ·
維護者通常 1 天內回覆
-
難度 3/5 1-2 天 新手友好度 76/100
petercorke/machinevision-toolbox-python#160 ·
維護者通常 1 天內回覆
-
tech-debt
難度 4/5 3-5 天 新手友好度 39/100
petercorke/machinevision-toolbox-python#159 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 42/100
petercorke/machinevision-toolbox-python#157 ·
維護者通常 1 天內回覆
查看 petercorke/machinevision-toolbox-python 的全部 Issue
相似的 Issue
-
area:scripts area:tests bug priority:later
難度 2/5 1-3 小時 新手友好度 72/100
Ikalus1988/MisakaNet#4358 ·
維護者通常 1 天內回覆
-
Discovered ports from service discovery are never propagated to modules in Module.load()可能已有人在做 @vishalmore90 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 70/100
OWASP/Nettacker#1828 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 88/100
aws-samples/sample-per-model-bedrock#708 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
-
難度 2/5 1-3 小時 新手友好度 75/100
sjkim1127/Reversecore_MCP#365 ·
維護者通常 1 天內回覆