Giter Club home page Giter Club logo

nube-puntos-tanque-gas's Introduction

Nube de puntos de tanque de gas con vedo python

Realizado por: Jaimen Aza

Aquí, se presentan varios procedimientos que se pueden hacer a partir de una nube de puntos con extensión ply. La nube de puntos aquí presentada corresponde a un tanque de gas, al cual, se desea encontrar su diámetro y su altura.

Abrir nube de puntos

Primero visualizaremos la nube de puntos tal cual es capturada por la cámara de Tiempo de Vuelo (ToF) Helios2 (ver figura 1). Esta nube de puntos retorna las coordenadas en unidades de milímetros.

Figura 1. Nube de puntos inicial, sin modificaciones.

Transformación de nube de puntos a imagen de profundidad

Comúnmente es típico tener una imagen de profundidad y transformarla a una nube de puntos 3D. En este caso será al contrario, a partir de una nube de puntos 3D se desea llegar a una imagen de profundidad. El resulta de muestra en la figura 2.

Figura 2. imagen de profundidad a partir de la nube de puntos 3D.

Segmentación del tanque de gas en la imagen de profundidad

Una vez se obtiene la imagen de profundidad, se desea segmentar el tanque de gas presentado en la imagen, para esto se detecta una circunferencia y se crea una máscara que elimina todo lo que esté afuera del círculo (ver figura 3).

Figura 3. Segmentación del tanque de gas en la imagen de profundidad.

Dibujar radio sobre la imagen 2D

Una vez detectado el círculo, se dibuja el radio y la longitud de este sobre la imagen ed profundidad, además se le asigna el falso color magma para efectos de visualización (ver figura 4).

Figura 4. Radio del tanque de gas sobre la imagen de profundidad.

Segmentación del tanque de gas en la nube de puntos 3D

Con la máscara encontrada en la segmentación del tanque de gas en la imagen de profundidad, vamos a segmentar el tanque de gas sobre la nube de puntos 3D mostrada en la figura 1. El resultado de la segmentación de la nube de puntos se muestra en la figura 5.

Figura 5. Segmentanción del tanque en la nube de puntos 3D. En la izquierda, nube de puntos que no corresponden al tanque. A la derecha nube de puntos del tanque.

Calcular punto mínimo y máximo de la nube de puntos

Ahora que tenemos el tanque de gas segmentado, se desea encontrar y dibujar sobre la nube de puntos el mínimo y el máximo valor de la nube, también se dibuja sobre la nube la distancia que existe entre estos dos puntos y el radio que se calculó anteriormente. Esto se muestre en la figura 6.

Figura 6. Nube puntos del tanque de gas con la distancia entre el mínimo punto y el máximo punto de la nube.

Proyección de la nube de puntos sobre el eje X

Para calcular el ancho y el alto del tanque de gas se hace una proyección de la nube de puntos sobre el eje x, con esto se consigue un perfil de la nube (ver figura 7).

Figura 7. Altura y ancho de la proyección de la nube de puntos del tanque sobre el eje X.

Visualización de nube de puntos de varios tanques

Para efectos de visualización, se hacen copias de la nube de puntos del tanque segmentada, se hace un desplazamiento a cada nube y luego se fusionan para mostrar una nube de puntos con varios tanques (ver figura 8).

Figura 8. Nube de puntos mostrando 6 tanques de gas.

instalar dependencias

pip install -r requirements.txt

nube-puntos-tanque-gas's People

Contributors

jaza00 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.