【问题标题】:Superimpose two figures叠加两个图形
【发布时间】:2014-09-10 16:54:03
【问题描述】:

我有两个图形 - 一个是系统发育树,另一个是天际线图(带有阴影位的线图)。

我想把树叠加到天际线上,像这样:

两个图都是白色背景的 tiff 文件。

这可以通过 MATLAB 实现吗?我的线图是用 MATLAB 制作的。

我也有插画家(CS6),但我完全是新手......

谢谢!

【问题讨论】:

  • 两张图片的尺寸是否相同?
  • @rayryeng 是的,它们是,并且在将它们绘制在子图中时,它们会排成一行。我知道我可以在 tree.tif 图像上绘制线条,但我需要反过来做,即树在顶部。

标签: matlab adobe-illustrator


【解决方案1】:

加载两个图像,然后将它们合并,假设透明度为0.5。因此,假设您的树形图位于名为imtree 的图像中,而天际线图位于名为imskyline 的图像中。将这些加载到 MATLAB 中,然后简单地求和:

out = uint8(0.5*double(imtree) + 0.5*double(imskyline));

在此之后,使用imshow(out); 显示您的图像并查看它的外观。希望这会奏效,因为我无法访问您的实际图像!

您可能不得不使用常量。也许在天际线情节较少的情况下增加树的重量。如果上述方法不起作用,请尝试以下操作:

out = uint8(0.75*double(imtree) + 0.25*double(imskyline));

或者,如果上述方法不起作用,请尝试使用imfuse 以自然的方式将两个图像融合在一起:

out = imfuse(imtree,imskyline,'blend','Scaling','joint');

上面的代码所做的是自然地混合图像,并以这样一种方式缩放两个图像之间的颜色,使它们可以很好地相互配合。

【讨论】:

  • 同时提供一定程度的透明度将允许混合,但在示例中,它们是“在另一个之上”。
  • @DennisJaheruddin 看起来图像是 alpha 拼接在一起的,这就是我建议将它们融合在一起的原因。我不确定它们应该如何叠加,但看起来我建议的方法奏效了。无论如何,感谢您的 cmets!
【解决方案2】:

我目前无法尝试,但我认为您想将一张图片放在彼此之上。

假设顶部图片是NaN,在您可以看到第二张图片的地方:

idx= ~isnan(frontimage)
backimage(idx) = frontimage(idx)

您可能需要先进行一些填充或缩放,因为这要求图像具有相同的大小。

【讨论】:

    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多