Matlab中非纳米稀疏变换马赛克图像的高效融合

时间:2011-10-07 22:45:19

标签: matlab

我目前正在改进VLfeat主页上图像镶嵌示例应用程序的混合部分。在最后的混合阶段,我希望组合两个非稀疏图像,这两个图像都是使用interp2和{{1}的两个图像插值的输出}-旗。具体来说,给定两个图像矩阵nanA以及混合矩阵B所有相同维度C - by - M,我想要每个矩阵位置( N中的ij}和A想要查看

  • BA都在B中定义了值,因此请(i,j)表示其平均值,或
  • C(i,j)A在[{1}}中有一个已定义的(B)值,因此请将其放在~isnan()
  • (i,j)C(i,j)都没有在A中定义的值,因此将C(i,j)保留为

假设C初始化为所有纳米值。

我没有找到一种简单而优雅的方式来做到这一点而不必

  • 重塑 A和B到向量
  • 找到非纳米载体索引 B(i,j)
  • 找到AI=find(~isnan(A))BI=find(~isnan(B))交集 II
  • 使用AIBIII修改与AIBI相同长度的向量C,如上面三个步骤所述
  • 重新A返回B - 按 - C最终获得结果

我尝试使用矩阵和矩阵索引表达相同的步骤而没有成功。这是在MATLAB中这样做的唯一方法吗?这看起来很麻烦。

1 个答案:

答案 0 :(得分:1)

也许我错过了一些东西(例如,我不明白为什么你需要将矩阵重新整形为矢量)。

无论如何,这是一个尝试:

% Unconditionnaly compute the average into temp D matrix
D=(A+B)/2;
% Restore A and B values where B and A are NaN
D(isnan(A))=B(isnan(A));
D(isnan(B))=A(isnan(B));
% Only modify C wherever the final result is not NaN
C(~isnan(D))=D(~isnan(D));