How can i do this?

1 visualización (últimos 30 días)
judy  frost
judy frost el 17 de Oct. de 2012
Here is my code:
[m,n] = size(I);
for c = 1:n
for r = 1:m
x = round(s*r);
y = round(s*c);
if x > 0 && x < row && y > 0 && y < col % inside
S(r,c,:) = I(x,y,:);
end
end
end
Implementation works fine but the timing issues is the problem.
Thanks in advance :)
  1 comentario
Randy Souza
Randy Souza el 22 de Oct. de 2012
judy, did you flag your question as inappropriate for a reason? If not, can you please delete the flag? Thanks!

Iniciar sesión para comentar.

Respuesta aceptada

Matt Fig
Matt Fig el 18 de Oct. de 2012
Editada: Matt Fig el 18 de Oct. de 2012
One thing I notice in your code. It looks, by the way you index inside the FOR loop, like your image is 3D. If so, the variable col will not contain the number of columns of the matrix. It will contain the product of the number of columns and all higher dimensions. If your image is 2D, then why are you indexing like it is 3D??
I will assume your image is 3D, and you really want the variable col to store the number of columns. This vectorization is much faster than the FOR loop, depending on the sizes involved and the scale factor. Note that I use the variable IM instead of calling it image because naming a variable the same name as a MATLAB function masks that function.
C = 1:col;
R = 1:row;
X = round(R*s);
Y = round(C*s);
idx = X>0 & X<row;
X = X(idx);
R = R(idx);
idx = Y>0 & Y<col;
Y = Y(idx);
C = C(idx);
scaled_IM2 = zeros(size(IM),class(IM));
scaled_IM2(R,C,:) = IM(X,Y,:);

Más respuestas (1)

Sean de Wolski
Sean de Wolski el 17 de Oct. de 2012
You'll get an enormous speedup just by preallocating scaled_image so that it does not change size on every iteration.
scaled_image = zeros(size(your_image));
for c
for r
etc;
Also note, don't call your variable image since this is a useful builtin function.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!

Translated by