【问题标题】:How do I combining two or more images in Matlab?如何在 Matlab 中组合两个或多个图像?
【发布时间】:2018-04-29 21:08:43
【问题描述】:

我需要将几张(不同纹理的)图像组合在一起。我试过以下代码:

% Read 4d data
I1 = importdata('Img1.tif');    
I2 = importdata('Img2.tif');

% Extract a slice of the data
extractImg1 = I1(:,:,1); 
extractImg2 = I2(:,:,1); 

% compute image size
[ny1, nx1] = size(extractA1);
[ny2, nx2] = size(extractA2);

P1 = extractImg1 (round(ny1/2)-120:round(ny1/2)+120, round(nx1/2)-120:round(nx1/2)+120);
figure, imshow(P1); title('Img1');
P2 = extractImg2 (round(ny2/2)-120:round(ny2/2)+120, round(nx2/2)-120:round(nx2/2)+120);
figure, imshow(P2); title('Img2');

请问,接下来我该怎么做?

其次,激光打印需要组合图像。因此,图像不具有完全相同的像素尺寸;有人告诉我,将它们组合起来是没有意义的,因为这可能会稍微降低准确性。

尽管如此,考虑到它们都具有相同的分辨率,我仍然有一种感觉,将图像组合起来并没有错。

我需要关于是否应该继续组合的建议。非常感谢。

【问题讨论】:

  • 它们的像素大小不同但分辨率相同?没有意义。分辨率由像素大小决定。
  • “组合”它们是什么意思?你想让它们重叠在一起,堆叠在一起,或者别的什么吗?更具体。
  • @Phil Goddard:我需要它们并排。谢谢!
  • @Cris Luengo:分辨率是指图像中每个像素的物理测量值。例如:img1 的像素尺寸为457x456,但物理尺寸为322 micron x 322 micronimg2480 x 481 pixels,测量 338 x 339 microns。每个的分辨率应分别为:322/457 = 0.705 micron/pixel338/480 = 0.705 micron/pixel。如果我错了,请纠正我。谢谢!
  • @User1772 完全正确。那么“像素大小”是什么意思呢?像素大小?我误解为像素的大小。 :)

标签: matlab image-processing combinations


【解决方案1】:

您已从两个图像中提取了两个大小相等的区域。如果您想将它们并排放在同一张图片中,请使用cat,或者等效地使用方括号[]

next_to_each_other = [P1,P2];
on_top_of_each_other = [P1;P2];

但请注意,即使它们的尺寸不同,您也可以将它们放在一起。例如,如果 I1NxM 像素,而 I2NxKN 垂直大小是 MATLAB 中的习惯),那么您仍然可以使用 [I1,I2]因为垂直大小匹配。

如果垂直和水平尺寸都不匹配,您可以在将它们放在一起之前使用padarray 用零(或任何合适的值)填充它们:

ny1 = size(I1,1);
ny2 = size(I2,1);
if ny1<ny2
   I1 = padarray(I1,[ny2-ny1,0,0],0,'post'); % The 0 is the value to pad
elseif ny2<ny1
   I2 = padarray(I2,[ny1-ny2,0,0],0,'post'); % The 0 is the value to pad
end
out = [I1,I2];

padarray 还允许复制矩阵中的数据,而不是用零填充。阅读文档以找到合适的内容。 padarray 需要图像处理工具箱。如果您没有它,您可以通过使用zeros 函数创建一个具有适当大小的零的数组来复制它的功能,然后使用[I1;zeros(ny2-ny1,size(I1,2),size(I1,3)] 之类的东西将其添加到图像中。

【讨论】:

  • 非常漂亮和详细的解释。非常感谢。您对我的问题的第二部分有什么建议吗?
  • @User1772 我不明白为什么不将它们结合起来,但我想这取决于你想要完成什么。通过填充而不是重新缩放,您可以保持分辨率不变,因此准确性应该没有问题。
  • 好的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2023-02-26
  • 1970-01-01
  • 2017-07-24
  • 2014-07-04
  • 2015-10-21
  • 2013-06-14
  • 2012-06-14
  • 2018-02-02
相关资源
最近更新 更多