Using getrect for Image Processing
34 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sordin
el 21 de Dic. de 2017
Comentada: vijay Gudipudi
el 25 de Sept. de 2018
I am trying to use the getrect function to replace a selected portion of one image with the corresponding portion in another image (provided the images are of the same size and class). getrect(...) returns the coordinates of the selected rectangle so we know what the starting and stopping rows and columns are. I used two sample images:
X=imread('office_1.jpg');
Y=imread('office_5.jpg');
Here is what I did:
imshow(X)
rect = getrect;
x1=rect(1);
x2=rect(2);
y1=rect(3);
y2=rect(4);
X(x1:x2, y1:y2)=Y(x1:x2, y1:y2);
Z = X;
imshow(Z)
However, after I select an area, the resulting image (Z) is just the first image (X). What is wrong here?
Any suggestions would be greatly appreciated.
0 comentarios
Respuesta aceptada
Image Analyst
el 21 de Dic. de 2017
LOTS of errors in that. Mostly due to not computing x1,x2,y1,y2 correctly using the rect variable, which is [x, y, width, height], NOT [x1,x2,y1,y2]. Then you didn't use the third index, needed because they are color images not gray scale images. Finally, you reversed x and y in the indexing. Remember arrays index as array(y, x), NOT array(x,y) because the row/y/vertical value is always the first index, not the colulmn/x/horizontal value.
Fixed code is below:
image1=imread('office_1.jpg');
subplot(2, 1, 1);
imshow(image1);
title('Image1', 'FontSize', 20);
image2=imread('office_5.jpg');
subplot(2, 1, 2);
imshow(image2);
title('Image2', 'FontSize', 20);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, 0.96]);
drawnow;
uiwait(helpdlg('Draw out a rectangle over the bottom Image2.'));
rect = getrect;
x1 =rect(1)
x2 = x1 + rect(3)
y1 =rect(2)
y2 = y1 + rect(4)
Z = image1; % Initialize
Z(y1:y2, x1:x2, :) = image2(y1:y2, x1:x2, :);
imshow(Z)
title('Z', 'FontSize', 20);
1 comentario
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!