rbu*_*rbu 2 matlab image-processing
我开始在MATLAB中编写一个程序,用动态覆盖相同大小和不同alpha的两个灰度图像.因此,两个图像都绘制在一个图中,而在它们下面是一个滑块,第二个图像的alpha可以从零增加到一个.因此,当移动滑块时,实际上可以看到两个图像混合.假设滑块为0.3,则第二个图像的'AlphaData'设置为0.3,而第一个图像的'AlphaData'始终为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)
Run Code Online (Sandbox Code Playgroud)
有关混合彩色图像的信息,请参阅我在MATLAB上的答案:在RGB图像上应用透明蒙版并与其他图像混合