【问题标题】:MATLAB: Combine Two Grayscale Images With Different AlphaMATLAB:组合两个具有不同 Alpha 的灰度图像
【发布时间】:2014-07-29 08:24:11
【问题描述】:

我开始在 MATLAB 中编写一个程序,以动态叠加两个大小相同但 alpha 不同的灰度图像。因此,两个图像都绘制在一个图中,它们下方是一个滑块,第二个图像的 alpha 可以通过该滑块从零增加到一。因此,当移动滑块时,实际上可以看到两个图像混合。假设滑块为 0.3,那么第二张图像的 'AlphaData' 设置为 0.3,而第一张图像的 'AlphaData' 始终为 1。在屏幕上我现在看到一个图像,它是这两个图像的组合.

现在我想从图中得到这个图像(与之前的图像大小相同)并使用它。但我不知道该怎么做。

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    灰度图像只是数字数组。根据您获取数据的方式,它可能是 0~1 或 1~255。叠加两个图像只是添加数字。混合两个图像只是计算它们的加权和。

    clear;clc;close all
    I1_rgb = imread('peppers.png');
    I1_gray = rgb2gray(I1_rgb);
    figure(1)
    imshow(I1_gray)
    
    I2_gray = imread('coins.png');
    I2_gray = padarray(I2_gray, size(I1_gray)-size(I2_gray), ...
        'circular', 'post');
    figure(2)
    imshow(I2_gray)
    
    alpha = .3; % this can be dynamically adjusted by a slider
    O1 = I1_gray + I2_gray*alpha; % overlay
    figure(3)
    imshow(O1)
    O2 = I1_gray*(1-alpha) + I2_gray*alpha; % blend
    figure(4)
    imshow(O2)
    

    要混合彩色图像,请参阅我在MATLAB: Applying transparent mask over an RGB image and blending with another的回答

    【讨论】:

    • 终于!非常感谢你。而且比我预期的要容易得多。
    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    相关资源
    最近更新 更多