How to deform 2 circles?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello everybody,
[Problem]: I want to deform a circular images to minimize the difference between them.
Original Images:


Currently done:

close all; clc;clear all;
I1 = imread('Image1.png'); I2 = imread('Image2.png');
I = imshowpair(I1, I2, 'montage');
I = rgb2gray(I.CData);
bw = im2bw(I);
bw = imfill(imcomplement(bw), 'holes');
imshow(bw);
L = logical(bw);
s = regionprops(L,I, 'Centroid','Area','BoundingBox','MeanIntensity');
%%Smallest cmr index
[min_area_cmr,min_cmr_idx] = min([s.Area]);
min_cmr_bb = s(min_cmr_idx).BoundingBox;
cropped_min_cmr_bb = imcrop(I, min_cmr_bb);
[nr nc] = size(cropped_min_cmr_bb);
%%Background
[~,maxGrayLevel] = max(imhist(I));
[row,col]=ind2sub(size(I), min_cmr_idx);
background_im = I.*0+maxGrayLevel;
%%Intensity
averageMeanIntensity = mean([s.MeanIntensity]);
resized_cmrs = background_im;
figure(1)
for k = 1 : size(s, 1)
thisBlobsBoundingBox = s(k).BoundingBox;
subImage = imcrop(I, thisBlobsBoundingBox);
subImage = imresize(subImage, [nr,nc]); %re-sized to smallest
subplot(1, 3, k);
new_I2(:,:,k)= subImage;
imshow(new_I2(:,:,k),[]);
r1 = floor(s(k).Centroid(2)-nr/2);c1 = floor(s(k).Centroid(1) - nc/2);
r2 = nr + r1- 1; c2 = nc + c1 - 1;
binaryImage = im2bw(subImage);
binaryImage = imfill(binaryImage, 'holes');
mask = bwareaopen(binaryImage, floor(min_area_cmr*0.9));
subImage = double(subImage) * averageMeanIntensity/s(k).MeanIntensity;
subImage(~mask) = maxGrayLevel;
resized_cmr(r1:r2,c1:c2) = subImage;
end
[optimizer,metric] = imregconfig('multimodal');
tformmovingRegisteredDefault = imregister(new_I2(:,:,1), new_I2(:,:,2), 'affine', optimizer, metric);
figure(1); subplot(1, 3, 3); imshowpair(tformmovingRegisteredDefault, new_I2(:,:,2))
title('Default registration')
Wanted Output: And I want to deform one of the images in order to minimize the difference between them. Could you suggest me please any working/implemented techniques in Matlab, please?
@Image Analyst
@Walter Roberson
I'll vote for all your answers and would gladly appreciate any comments.
Ivan
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Geometric Transformation and Image Registration finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!