Esto es un error activo en octava:
error: imresize: IM must be a grayscale or RGB image.
No puedo encontrar una forma de evitar este error. ¿Hay algún código que deba agregarse antes de esta declaración para que funcione como lo hace en MATLAB?
ACTUALIZAR
Código de error activo:
In = ones(6,6);
In(3,3) = 2;
Out = imresize (In, 2);
Versión:
- OS-X 10.9.4
- Octave-4.0.3 (instalación directa de SourceForge)
Respuestas
1 para la respuesta № 1Los píxeles de grayimage en octava deben estar en el rango [0..1]. Puede escalar la amplitud de su matriz para satisfacer este criterio:
In = ones(6,6);
In(3,3) = -1;
minIn=min(In(:));
maxIn=max(In(:));
In1=(In-minIn)/(maxIn - minIn);
Out = imresize (In1, 2);
Out1=Out*(maxIn-minIn) + minIn;
0 para la respuesta № 2
No lo he probado, pero asumo que:
In = ones(6,6);
In(3,3) = -1;
minIn=min(In(:)); % do this
In=In-minIn; % do this - now In(3,3)=0!
Out = imresize (In, 2);
Out=Out+minIn; % do this
Hará el trabajo
0 para la respuesta № 3
Examinando los comentarios de @Andy, el imresize.m
El archivo MATLAB se puede colocar en el directorio de operaciones. Esto ejecutaría el código como en MATLAB y no generaría el error como en la implementación de Octave.
El código puede ser tomado de este lugar.