How do you align two images?

4 visualizaciones (últimos 30 días)
Ilana Mannine
Ilana Mannine el 1 de Mzo. de 2013
I've never used Matlab before so I am incredibly confused. For my assignment we are supposed to take three pictures, each representing the R, G, B color channels and align them to form the colored picture. This is what I have so far:
% name of the input file
imname = 'part1_1.jpg';
% read in the image
fullim = imread(imname);
% convert to double matrix (might want to do this later on to same memory)
fullim = im2double(fullim);
% compute the height of each part (just 1/3 of total)
height = floor(size(fullim,1)/3);
% separate color channels
B = fullim(1:height,:);
G = fullim(height+1:height*2,:);
R = fullim(height*2+1:height*3,:);
% Align the images
% Functions that might be useful to you for aligning the images include:
% "circshift", "sum", and "imresize" (for multiscale)
% imshow(R)
% imshow(G)
% imshow(G)
% aR = align(R,B);
% aG = align(G,B);
RGB = cat(3, R, G, B);
imshow(RGB)
% ssd = sum(sum((R -G) .^2));
% display(ssd);
% open figure
%%figure(1);
% create a color image (3D array)
% ... use the "cat" command
% show the resulting image
% ... use the "imshow" command
% save result image
%%imwrite(colorim,['result-' imname]);
This produces a colored image, but the pictures are not aligned properly. We are supposed to create an align function that aligns the two images, but I have no idea how to do that. He says we have to use a displacement vector, but again I'm not sure what that means. Any advice please? Don't direct me to a link, I really need direct help.

Respuestas (1)

Image Analyst
Image Analyst el 1 de Mzo. de 2013
Are you allowed to use the imregister() function? If so, just extract the three color channels and align all of them to the red channel. Of course we can't comment on how good your code does the job because you didn't upload your image.
  2 comentarios
Ilana Mannine
Ilana Mannine el 1 de Mzo. de 2013
Can you give an example? He said I'm supposed to align using a displacement vector. Can you tell me what that means please?
Image Analyst
Image Analyst el 2 de Mzo. de 2013
imregister has examples in the help. A displacement vector would probably be something like
displacementVector = [10, 20]; % row displacement, column displacement
out = in(displacementVector(1):end, displacementVector(2):end);

Iniciar sesión para comentar.

Categorías

Más información sobre Modify Image Colors en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by