Code bug with image algorithm

4 visualizaciones (últimos 30 días)
mona
mona el 16 de En. de 2014
Comentada: Walter Roberson el 17 de En. de 2014
Hello there,
Here's a part of the code that I'm using to approximate an image and I'm kind of not understanding the problem with the last line. I'm suspecting there's something wrong with the datatype of m. The value of m is (sqrt(M)-1)/2 where M is the number of coefficients.
sizeImage = size(riceImage,1);
A = zeros(sizeImage);
sel = (sizeImage/2-m:sizeImage/2+sizeImage)+1;
A(sel,sel) = B(sel,sel);
  1 comentario
José-Luis
José-Luis el 16 de En. de 2014
It would be helpful if you posted the error you get.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 16 de En. de 2014
Try this:
sizeImage = size(riceImage, 1); % Number of rows only (not # columns)
A = zeros(sizeImage); % rows by rows square image.
halfWidth = int32(sizeImage/2); % Round to nearest integer.
% The remaining code will go out of bounds and is nonsense.
% At least I don't understand the intent of it.
sel = (halfWidth -m : halfWidth + sizeImage)+1; % Maybe try end instead of sizeImage
A(sel,sel) = B(sel,sel); % No idea what this is supposed to do.
  1 comentario
Walter Roberson
Walter Roberson el 17 de En. de 2014
sizeImage/2+sizeImage is going to be greater than sizeImage so you are attempting to index outside the "A" that you defined.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by