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

1 次查看(过去 30 天)
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!!

采纳的回答

Walter Roberson
Walter Roberson 2021-9-13
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.

更多回答(1 个)

Image Analyst
Image Analyst 2021-9-13
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.

类别

Help CenterFile Exchange 中查找有关 Biomedical Imaging 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by