Condensa los valores de los píxeles de una tabla plana en una tabla de imágenes de CAS. Esta acción es la operación inversa a la acción `flattenImages`. Es útil para reconstruir imágenes a partir de datos de píxeles tabulares, por ejemplo, después de realizar manipulaciones de datos en los valores de los píxeles.
| Parámetro | Descripción |
|---|---|
| casOut | Especifica la tabla de salida para almacenar las imágenes condensadas. |
| copyVars | Especifica una lista de variables para copiar de la tabla de entrada a la tabla de salida. |
| decode | Especifica si se deben decodificar las imágenes. Esto es útil si la tabla de salida necesita contener las imágenes en un formato visual en lugar de solo los datos binarios. |
| depth | Especifica la profundidad de bits de los píxeles en las imágenes de salida (por ejemplo, 8 para escala de grises, 32 para color). |
| groupedChannels | Cuando se establece en True, asume que los píxeles de las imágenes en la tabla de entrada están agrupados por canal (por ejemplo, BB...GG...RR...). |
| height | Especifica la altura de las imágenes de salida. |
| inputs | Especifica las variables de entrada que contienen los valores de los píxeles para construir las imágenes. |
| numberOfChannels | Especifica el número de canales en las imágenes de salida (por ejemplo, 1 para escala de grises, 3 para color). |
| table | Especifica la tabla de entrada que contiene los datos de los píxeles aplanados. |
| width | Especifica la anchura de las imágenes de salida. |
Este bloque de código crea una tabla CAS llamada 'pixel_data' que contiene los valores de los píxeles para dos imágenes pequeñas de 2x2 en escala de grises. Cada fila representa un único píxel con su identificador de imagen, coordenadas (fila, columna) y valor.
| 1 | DATA casuser.pixel_data; |
| 2 | LENGTH _id_ $20; |
| 3 | /* Image 1 */ |
| 4 | _id_ = 'image1'; _channel_ = 0; _row_ = 0; _col_ = 0; _value_ = 10; OUTPUT; |
| 5 | _id_ = 'image1'; _channel_ = 0; _row_ = 0; _col_ = 1; _value_ = 50; OUTPUT; |
| 6 | _id_ = 'image1'; _channel_ = 0; _row_ = 1; _col_ = 0; _value_ = 100; OUTPUT; |
| 7 | _id_ = 'image1'; _channel_ = 0; _row_ = 1; _col_ = 1; _value_ = 150; OUTPUT; |
| 8 | /* Image 2 */ |
| 9 | _id_ = 'image2'; _channel_ = 0; _row_ = 0; _col_ = 0; _value_ = 200; OUTPUT; |
| 10 | _id_ = 'image2'; _channel_ = 0; _row_ = 0; _col_ = 1; _value_ = 210; OUTPUT; |
| 11 | _id_ = 'image2'; _channel_ = 0; _row_ = 1; _col_ = 0; _value_ = 220; OUTPUT; |
| 12 | _id_ = 'image2'; _channel_ = 0; _row_ = 1; _col_ = 1; _value_ = 230; OUTPUT; |
| 13 | RUN; |
Este ejemplo toma la tabla 'pixel_data' y la condensa en una nueva tabla de imágenes llamada 'image_table'. Especifica que las imágenes son de 2x2 píxeles con 1 canal (escala de grises).
| 1 | |
| 2 | PROC CAS; |
| 3 | image.condenseImages / TABLE={name='pixel_data', groupBy={'_id_'}}, inputs={{name='_value_'}}, casOut={name='image_table', replace=true}, width=2, height=2, numberOfChannels=1; |
| 4 | |
| 5 | RUN; |
| 6 |
Este ejemplo demuestra cómo condensar datos de píxeles para una imagen en color (3 canales). También utiliza el parámetro `copyVars` para transferir una columna de metadatos ('source') de la tabla de entrada a la de salida.
| 1 | /* 1. Crear datos de ejemplo para una imagen en color */ |
| 2 | DATA casuser.pixel_data_color; |
| 3 | LENGTH _id_ $20 SOURCE $50; |
| 4 | SOURCE = 'synthetic_data'; |
| 5 | /* Image 1 - Canal Rojo */ |
| 6 | _id_ = 'color_image1'; _channel_ = 0; _row_ = 0; _col_ = 0; _value_ = 255; OUTPUT; |
| 7 | _id_ = 'color_image1'; _channel_ = 0; _row_ = 0; _col_ = 1; _value_ = 0; OUTPUT; |
| 8 | /* Image 1 - Canal Verde */ |
| 9 | _id_ = 'color_image1'; _channel_ = 1; _row_ = 0; _col_ = 0; _value_ = 0; OUTPUT; |
| 10 | _id_ = 'color_image1'; _channel_ = 1; _row_ = 0; _col_ = 1; _value_ = 255; OUTPUT; |
| 11 | /* Image 1 - Canal Azul */ |
| 12 | _id_ = 'color_image1'; _channel_ = 2; _row_ = 0; _col_ = 0; _value_ = 0; OUTPUT; |
| 13 | _id_ = 'color_image1'; _channel_ = 2; _row_ = 0; _col_ = 1; _value_ = 0; OUTPUT; |
| 14 | RUN; |
| 15 | |
| 16 | /* 2. Condensar la imagen */ |
| 17 | PROC CAS; |
| 18 | image.condenseImages / |
| 19 | TABLE={name='pixel_data_color', groupBy={'_id_'}}, |
| 20 | inputs={{name='_value_'}}, |
| 21 | copyVars={'source'}, |
| 22 | casOut={name='color_image_table', replace=true}, |
| 23 | width=2, |
| 24 | height=1, |
| 25 | numberOfChannels=3, |
| 26 | groupedChannels=false; |
| 27 | RUN; |