CONVERTIR UNA FOTO EN TONOS DE GRISES A NUBE DE PUNTOS XYZ

El primer paso es leer el archivo que contiene la foto a convertir, utilizando la función

interconstruída de MathCAD READBMP. Esta función admite como argumento un string

con el nombre del archivo en formato BMP. Como resultado, regresa una matriz 2D con

filas y columnas por cada pixel de la foto. Los valores de esta matriz son el tono de gris

de cada pixel en un rango 0-255, en donde 0 es negro y 255 blanco.

Es posible obtener fácilmente el negativo de la foto. Simplemente con la operación:

Los valores de filas y columnas pueden

obtenerse con las funciones de MathCAD:

El número total de pixeles en la foto es:

Para hacer la conversión es necesario convertir todos los pixeles (filas x columnas) en 3

vectores que representan los valores de X, Y, Z. La variable de rango k inicia con el

primer elemento (posición cero) y termina con el último (posición NUMPIX-1).

La función de MathCAD mod es la división con enteros, y regresa el valor del módulo

de la división. Para que las diferentes posiciones de filas puedan ser almacenadas en

un vector x simplemente se divide el vector k entre MAXFIL.

Lo mismo ocurre para las posiciones de las columnas y el vector y:

Finalmente los valores de z se obtienen directamente de la matriz original utilizando los indices que se acaban de calcular en los vectores x y.

La nube de puntos se puede ahora graficar en el espacio 3D XYZ. Es necesario recordar

que los pixeles negros tienen z=0 y se encuentran en el plano XY, mientras que los

blancos en la parte más alta de la grafica. El resto de los pixeles intermedios son tonos

de grises. El factor de escala de la gráfica sirve para adecuar el aspecto visual.

Es posible contruir la matriz B copiando en sus columnas los vectores xyz:

y guardar la matriz B en un archivo de texto, separado por comas:

La importación de datos en un programa de CAD se muestra a continuación:

El archivo PDF está disponible en este link.