Estoy trabajando en un proyecto de procesamiento de imágenes en MATLAB. Para preprocesar la imagen más fácilmente, la he dividido en filas y columnas, así que a partir de una imagen original (una matriz 2D uint8), ahora tengo una matriz 3D, como una pila.MATLAB - Combinar submatrices
Después de procesar cada bloque, quiero recomponer la imagen de nuevo. El problema es que el número de filas y columnas es dinámico, por lo que no puedo usar (o no sé cómo usarlo aquí) el comando cat
o la sintaxis [firstsubmatrix secondsubmatrix]
.
Por cierto, hago la división de la siguiente manera:
numRows = 3
numCols = 3
blockHeight = originalHeight/numRows;
blockWidth = originalWidth/numCols;
blocks = uint8(zeros(numCols * numRows, blockHeight, blockWidth));
Así que para cada bloque, lleno su contenido utilizando
y0 = (row - 1) * rowHeight + 1;
y1 = row * rowHeight;
x0 = (col - 1) * rowWidth + 1;
x1 = col * rowWidth;
blocks(numBlock, :, :) = originalImage(y0:y1, x0:x1);
¿Hay una mejor manera de hacerlo, y cualquier forma de tener los bloques unidos?
Usted puede encontrar esto útil: http://www.mathworks.com/help/toolbox/images/ref/blockproc.html (o blkproc en las versiones anteriores) –