通过坐标映射重叠两个2D阵列图像

时间:2018-09-22 18:21:30

标签: arrays image matlab mapping overlap

我正在进行逐像素分析。我有一张参数图像img1和一张参数 ROI 矩阵图像(仅包含ROI内的值,而在其他地方为零),img2,我要重叠的分辨率为256x256。我可以支配的是:

  • 两个图像阵列img1和img2具有相同的FoV范围,但发生位移并覆盖不同的区域。
  • 两个图像的实际参考点(以毫米为单位),对于img1和img2分别为refpoint1 =(-88.5,-98.6)和refpoint2 =(-86.1,-96.7)。参考点位于其相应图像的左上像素(1,1)。
  • 两个图像的像素间距为1.42像素/毫米。

我想通过坐标映射将img2移到与img1重叠的位置。

尝试

temp = zeros(size(img1));
s = size(img2);
x = abs(refpoint1(1) - refpoint2(1)) * pixspacing;
y = abs(refpoint1(2) - refpoint2(2)) * pixspacing;
temp(x:x+s(1)-1, y:y+s(2)-1) = img2;

关闭解决方案

x = (refpoint1(1) - refpoint2(1)) * pixspacing;
y = (refpoint1(2) - refpoint2(2)) * pixspacing;
img2 = imtranslate(img2, [x, y], 'FillValues', 0, 'OutputView', 'full');

现在的问题是,ROI图像对齐并且彼此重叠,但是我无法执行img1。* img2操作,因为img2与img1的分辨率不同。如何裁剪img2并使其对齐?

0 个答案:

没有答案