现在有一幅彩色标志图像和一幅彩色景色图像这两幅图像尺寸大小不同在不改变这两个图像尺寸的条件下如何使用matlab实现彩色标志图居中叠加到彩色风景图上并且要求叠加完成后的图像整体保留50的透明度先写出代码
假设彩色标志图像为A,彩色风景图像为B,则可以按照以下步骤实现叠加:
- 获取A和B的大小,计算A和B在B中居中的位置坐标。
[sizeA1, sizeA2, ~] = size(A);
[sizeB1, sizeB2, ~] = size(B);
posB1 = round((sizeB1 - sizeA1) / 2);
posB2 = round((sizeB2 - sizeA2) / 2);
- 将A叠加到B的中心位置上,并且设置透明度为50%。
B(posB1+1:posB1+sizeA1, posB2+1:posB2+sizeA2, :) = ...
0.5 * A + 0.5 * B(posB1+1:posB1+sizeA1, posB2+1:posB2+sizeA2, :);
完整代码如下:
A = imread('logo.png');
B = imread('landscape.png');
[sizeA1, sizeA2, ~] = size(A);
[sizeB1, sizeB2, ~] = size(B);
posB1 = round((sizeB1 - sizeA1) / 2);
posB2 = round((sizeB2 - sizeA2) / 2);
B(posB1+1:posB1+sizeA1, posB2+1:posB2+sizeA2, :) = ...
0.5 * A + 0.5 * B(posB1+1:posB1+sizeA1, posB2+1:posB2+sizeA2, :);
imshow(B);
注意:在实际使用中,需要根据自己的具体情况调整透明度和叠加位置等参数
原文地址: https://www.cveoy.top/t/topic/fjvh 著作权归作者所有。请勿转载和采集!