我目前正在改进VLfeat主页上图像镶嵌示例应用程序的混合部分。在最后的混合阶段,我希望组合两个非稀疏图像,这两个图像都是使用interp2
和{{1}的两个图像插值的输出}-旗。具体来说,给定两个图像矩阵nan
和A
以及混合矩阵B
所有相同维度C
- by - M
,我想要每个矩阵位置( N
中的i
,j
}和A
想要查看
B
和A
都在B
中定义了值,因此请(i,j)
表示其平均值,或C(i,j)
或A
在[{1}}中有一个已定义的(B
)值,因此请将其放在~isnan()
或(i,j)
和C(i,j)
都没有在A
中定义的值,因此将C(i,j)保留为假设C初始化为所有纳米值。
我没有找到一种简单而优雅的方式来做到这一点而不必
B
和(i,j)
AI=find(~isnan(A))
和BI=find(~isnan(B))
的交集 II
AI
,BI
和II
修改与AI
和BI
相同长度的向量C,如上面三个步骤所述A
返回B
- 按 - C
最终获得结果我尝试使用矩阵和矩阵索引表达相同的步骤而没有成功。这是在MATLAB中这样做的唯一方法吗?这看起来很麻烦。
答案 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));