Estoy tratando de generar un RGB etiqueta sector con label2rgb y utilizarla para actualizar un RGB volumen, como este:
labelRGB_slice=label2rgb(handles.label(:,:,handles.current_slice_z), 'jet', [0 0 0]);
handles.labelRGB(:,:,handles.current_slice_z) = labelRGB_slice;
Me da el siguiente error:
**Assignment has more non-singleton rhs dimensions than non-singleton subscripts**
Error in Tesis_GUI>drawSeedButton_Callback (line 468)
handles.labelRGB(:,:,handles.current_slice_z) = labelRGB_slice;
De depuración, me sale esto:
size(labelRGB_slice)
ans =
160 216 3
K>> size(handles.labelRGB(:,:,handles.current_slice_z) )
ans =
160 216
Yo declaré que maneja.labelRGB como este:
handles.labelRGB = zeros(dim(1), dim(2), dim(3), 3);
Así que no entiendo el índice de disparidad.
¿Cómo puedo hacer la división de trabajo de asignación?
Basada en la forma en que se han declarado
handles.labelRGB
es una 4D matriz de tamaño[160 216 3 3]
sin embargo se indización como una matriz 3D utilizandohandles.labelRGB(:,:,handles.current_slice_z)
que significa matlab se utiliza lineal de indexación durante los últimos dos dimensiones. Así que si, decirhandles.current_slice_z = 5
, devuelvehandles.labelRGB(:,:,2,2)
que es una matriz de tamaño[160 216]
. Por lo tanto dependiendo del significado dehandles.current_slice_z
usted necesita para utilizaro