cover another image by multiple image with exactly position ?
1 次查看(过去 30 天)
显示 更早的评论
Dear All,
I am doing my study thesis and I got problem that I don't know how to overlay current image to other image with exactly position.
The position was generate when i detect the centroid. (it can be seen in the stat variable in workspace after run my code)
Could any expert help me please ?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/999470/image.png)
another image is 'Original.jpg' that i attached to this post
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/999475/image.png)
This is my code:
Ibw = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/999460/finalmask.png');
stat = regionprops(Ibw,'Centroid');
imread(("https://www.mathworks.com/matlabcentral/answers/uploaded_files/999465/original.jpg"));
imshow(imread(("https://www.mathworks.com/matlabcentral/answers/uploaded_files/999465/original.jpg")))
hold on;
N=numel(stat);
for i=1:N
stat(i).BoundingBox=[stat(i).Centroid-32.5, 63,63];
plot(stat(i).Centroid(1),stat(i).Centroid(2),'+',LineWidth=2);
end
hold off
I2=imread("https://www.mathworks.com/matlabcentral/answers/uploaded_files/999465/original.jpg")
subimages=arrayfun(@(s)imcrop(I2,s.BoundingBox), stat,'uni',0); %You can use a new image here
montage(subimages,'Back','w','Bor',0)
for k = 1:N
b{k}=cell2mat(subimages(k,1))
filename=sprintf('image0%d.jpg',k)
imwrite(b{k},filename)
end
Thanks and Regards
Han
0 个评论
采纳的回答
Image Analyst
2022-5-16
2 个评论
Image Analyst
2022-5-17
If you don't have a binary image then imoverlay would not be what you want. If you have gray scale images then you may just want to paste them onto the image, covering up what was there before. See attached demo.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!