我有一组多个冲浪或图像c图,它们有不同的颜色图,我希望最终的图是它们合并的结果:surf_final = \sum_i surf_i
第一个hic是多个彩色地图,它是通过instructions来解决的。颜色没有混合,而是硬分离。
期望的结果是两种颜色的混合而不是硬分离。一种解决方案是将每个surf或imagesc转换为matlab rgb图像,然后将它们添加到一起:rgb_f = rgb_1 + rgb_2, imshow(rgb_f)
。
这种方法的问题在于尺度丢失,各种表面被重新缩放到相同的尺寸。一种选择是强制缩放一致。
我正在寻找的理想解决方案是混合多个冲浪地块,同时保留比例和轴信息,这样的其他项目可以很容易地绘制在合并的表面之上。任何帮助将不胜感激。
修改
合并色图cmap = [map1; map2]
的结果:
将Z1
和Z2
的{{1}}和surf1
转换为rgb的结果
然后添加它们:
(04-01-2014)我已经做了一个有用解决方案的例子,但只有当人们知道每个冲浪的概率密度函数被绘制时。对于每次冲浪,我分别为surf2
和colormap
设置了cmap_p1
,cmap_p2
和pdf1
个人。我计算了两个meash grides pdf2
和Z1
的可能性。然后我计算了混合系数Z2
并创建了一个RBG图像,如下所示:
alpha = Z1 ./ (Z1 + Z2)
答案 0 :(得分:0)
我有这个工作,如果有人的水平高于10,如果你能发布密度(1)和(2),我会很高兴:链接http://rapidshare.com/share/5E05B150DCBD4D50074452F68FDF13D3
我的解决方案:
我有一组密度函数和相关联的色图{p(x),cmap} ^ N和一个指定的 meash网格X = Y = linspace(min,max,spacing)。
1)在循环中,我为每个pdf p_i(x)
计算CData_i2)我将CData转换为RGB图像,I =重塑(cmap(CData(:),:),[间距3])每个pdf_i
3)基于CData为I计算混合系数f(对每个p_i(x)做他的:
f(:,i) = CData ./ max(CData(:)); (i is for the ith pdf)
f = f./repmat(sum(f,2),1,number_pdfs);
原因是最终图像将是所有图像的线性加权组合,I_final = \ sum_i f_i * I_i和\ sum_i f_i = 1应保持。
4)最终for循环合并所有RGB图像,Is = {I},一起
表示i = 1:nbGMMs
I = I + repmat(reshape(fractions(:,i),spacing,spacing),[1 1 3]) .* Is(:,:,:,i);
端
退回是必须在同一个meashgrid 上评估所有密度函数,使得像素(x,y)坐标对应于CData矩阵中的相同列条目。