Hi, someone can help me how to do "translation" in image ?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
yovel atia
el 13 de Sept. de 2021
Respondida: Image Analyst
el 13 de Sept. de 2021
Hi
i need to do "translation" in image, but i don't found how to do that.
i need to take selfie image and then to center my face in the photo.
like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/736624/image.png)
TNX!!
0 comentarios
Respuesta aceptada
Walter Roberson
el 13 de Sept. de 2021
I = imread('cameraman.tif');
imshow(I)
BW = imbinarize(I);
L = bwareafilt(~BW, 1);
props = regionprops(L, 'Centroid');
CR = props.Centroid(2);
CC = props.Centroid(1);
hold on
plot(CC, CR, '+r', 'markersize', 20);
hold off
[R, C, P] = size(I);
rows_to_shift_down = floor(R/2 - CR);
cols_to_shift_right = floor(C/2 - CC);
J = circshift(I, [rows_to_shift_down, cols_to_shift_right]);
imshow(J)
%cross-check only, centroid should now be at center
BW = imbinarize(J);
L = bwareafilt(~BW, 1);
props = regionprops(L, 'Centroid');
CR = props.Centroid(2);
CC = props.Centroid(1);
hold on
plot(CC, CR, '+r', 'markersize', 20);
hold off
Yup, looks okay.
Más respuestas (1)
Image Analyst
el 13 de Sept. de 2021
Description
B = imtranslate(A,translation) translates image A by the 2-D or 3-D translation vector specified in translation.
If A has more than two dimensions and translation is a 2-element vector, then imtranslate applies the 2-D translation to each plane of A.
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!