Hi, someone can help me how to do "translation" in image ?

2 vues (au cours des 30 derniers jours)
yovel atia
yovel atia le 13 Sep 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:
TNX!!

Réponse acceptée

Walter Roberson
Walter Roberson le 13 Sep 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.

Plus de réponses (1)

Image Analyst
Image Analyst le 13 Sep 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.

Catégories

En savoir plus sur Biomedical Imaging dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by