I have an image in the figure as shown above.
I want to display region of interest (white portion) at the center of the figure window (align centered position-registration). How can I do it?
Please explain. Thank you.

 채택된 답변

Image Analyst
Image Analyst 2022년 5월 7일
편집: Image Analyst 2022년 5월 7일

1 개 추천

Try using regionprops to get the centroid, then imtranslate to shift it to the center of the image:
rgbImage = imread('image.png');
subplot(2, 1, 1);
imshow(rgbImage)
axis('on', 'image')
% Get binary image from the RGB image the poster attached.
binaryImage = rgbImage(:, :, 1) > 128;
% Find centroid.
props = regionprops(binaryImage, 'Centroid')
% Translate the image.
xt = props.Centroid(1)
yt = props.Centroid(2)
% Get center of image
[rows, columns, numberOfColorChannels] = size(binaryImage)
xc = columns/2;
yc = rows/2;
deltax = xc - xt
deltay = yc - yt
hold on;
plot(xt, yt, 'r+', 'LineWidth', 2, 'MarkerSize', 60);
centeredImage = imtranslate(rgbImage,[deltax deltay],'FillValues', 0);
subplot(2, 1, 2);
imshow(centeredImage)
axis('on', 'image')
% Draw center lines.
xline(xc, 'LineWidth', 2, 'Color', 'r');
yline(yc, 'LineWidth', 2, 'Color', 'r');

댓글 수: 9

image-pro
image-pro 2022년 5월 7일
Field reference for multiple structure elements that is followed by more reference blocks is an error.
Error in centre (line 13)
xt = props.Centroid(1);
Walter Roberson
Walter Roberson 2022년 5월 7일
That would be an error if there is more than one region in the image, but the image were asked to deal with only has one region. If there could be more than one region then the question is not well defined: what should be centered if there are multiple regions? The largest region? The centroid of the centroids of all the regions? The center of mass?
image-pro
image-pro 2022년 5월 8일
What will be the code to define centroid of all regions and multiple regions?
c = vertcat(props.Centroid);
cc = mean(c, 1);
cc will now be the unweighted centroid of the centroids. This would be different than the centroid of the occupied portions of the image.
To get the centroid over the entire image use
props = regionprops( double(binaryImage), 'Centroid')
image-pro
image-pro 2022년 5월 8일
Undefined function or variable 'xline'.
Error in centre (line 29)
xline(xc, 'LineWidth', 2, 'Color', 'r');
Image Analyst
Image Analyst 2022년 5월 8일
You must have a really old version. Those are optional. They just put red crosshairs over the image. You can just delete those lines.
image-pro
image-pro 2022년 5월 8일
The output in second image is not translated(shifted in centered position). why?
Image Analyst
Image Analyst 2022년 5월 8일
Loooks like you have a huge white frame around your blobs. Why? It also looks like your image has a black caption atop the image. Why? Are these screenshots of an entire figure rather than a binary image you got from a photo?
image-pro
image-pro 2022년 5월 8일
Thanks a lot Image Analyst you solved my problem. Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

질문:

2022년 5월 5일

댓글:

2022년 5월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by