Blobs: build the blob hierarchy as a pgraph graph instead of hand-rolled parent/children + exporters
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- computer-vision
Línea de trabajo
Start with src/machinevisiontoolbox/ImageBlobs.py and the existing test_graph_* tests in tests/test_image_blobs.py; compare the current graph output with the pgraph 1.0 exporters and check compatibility with pgraph 0.6.x. Decide how Blob.parent and Blob.children and filtering behave, then preserve the public signatures and output formats while replacing the hand-written exporters.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Current state
Blobs (src/machinevisiontoolbox/ImageBlobs.py) represents the blob hierarchy with ad-hoc parent / children references on each Blob, built from OpenCV's findContours hierarchy array. Blobs.graph() (and dotfile()) then re-implements graph export by hand: DOT, Mermaid, fenced Mermaid, GraphML and ELK JSON, roughly 150 lines of string building.
pgraph is already a core dependency (it is only used by BundleAdjust today), and pgraph 1.0 ships exporters for exactly these formats (pgraph.exporters.dot/mermaid/graphml/elk, Graph.export(), Graph.dotfile()), plus rendering to images via GraphViz.
Proposal
- Build the blob tree as a
pgraph.DGraph(parent -> child edges), withBlobinstances as vertices (or vertices holding them). - Replace the hand-written exporters in
Blobs.graph()/dotfile()with the pgraph ones, keeping the public signatures and output formats. - Decide whether
Blob.parent/Blob.childrenstay as thin views over the graph or remain stored references (public API, so don't break it). - Gain for free: tree traversal, components, plotting and rendered images, and one place to fix export bugs.
Things to check
- Output compatibility with the existing
test_graph_*tests intests/test_image_blobs.py(node labels, ordering, attributes in GraphML/ELK). - Must work with both pgraph 0.6.x (no
Vertex,edges()is aset, no exporters module) and 1.0, or the minimum pgraph version has to be raised inpyproject.toml. The exporters exist only in 1.0. - Filtering a
Blobsset can leave dangling parent/child references (see the warning in the__getitem__/filter docs); a graph representation should either handle or make explicit this.
Related: pgraph test coverage review (BundleAdjust is currently the only pgraph user).
- Lenguaje dominante
- Python
- Estrellas
- 224
- Forks
- 31
- Merge medio
- 1 d 20 h
- PR fusionados (30 d)
- 28
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de petercorke/machinevision-toolbox-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 42/100
petercorke/machinevision-toolbox-python#157 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
petercorke/machinevision-toolbox-python#152 ·
Los mantenedores suelen responder en 1 día
-
ROSBag: RealSense bags have a 4-byte depth-units trailer that is guessed, not parsedPosiblemente ocupada @theluckystrike la tomó hace 3 días. Abiertobug help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
petercorke/machinevision-toolbox-python#151 ·
Los mantenedores suelen responder en 1 día
-
Sources.py: quick wins, split into a package, and API unificationPosiblemente ocupada @zw1915 la tomó hace 3 días. Abiertohelp wanted tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
petercorke/machinevision-toolbox-python#150 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 43/100
petercorke/machinevision-toolbox-python#148 ·
Los mantenedores suelen responder en 1 día
Todos los issues de petercorke/machinevision-toolbox-python
Issues similares
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
awslabs/visual-asset-management-system#514 ·
Los mantenedores suelen responder en 1 día
-
backend bug spec:REQ-053
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
nolte/kamerplanter#2547 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
EleutherAI/lm-evaluation-harness#4425 ·
Los mantenedores suelen responder en 1 día
-
Gemini: respect PLANNING_DISABLED=1 in lifecycle context hooksPosiblemente ocupada @AmariAugustin la tomó hoy. Abiertobug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
OthmanAdi/planning-with-files#329 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
wr.dynamodb.read_items returns [{}] for a single partition value that does not existPosiblemente ocupada @auraseb la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
aws/aws-sdk-pandas#3520 ·
Los mantenedores suelen responder en 2 días