3张图像加权融合的matlab代码
时间: 2023-05-22 16:06:05 浏览: 50
以下是3张图像加权融合的MATLAB代码:
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
img3 = imread('image3.jpg');
% 定义权重
w1 = 0.4;
w2 = 0.3;
w3 = 0.3;
% 融合图像
fusion_img = w1*double(img1) + w2*double(img2) + w3*double(img3);
fusion_img = uint8(fusion_img);
% 显示融合后的图像
imshow(fusion_img);
希望能帮到您!
相关问题
matlab图像融合加权平均法代码
Matlab图像融合加权平均法是一种常用的图像融合方法,它通过对两幅图像的像素进行加权平均来实现融合。以下是一个简单的Matlab代码示例:
```matlab
% 读取两幅待融合的图像
image1 = imread('image1.jpg');
image2 = imread('image2.jpg');
% 确保两幅图像的尺寸相同
if size(image1) ~= size(image2)
error('两幅图像尺寸不一致');
end
% 设置融合权重
weight1 = 0.5; % 第一幅图像的权重
weight2 = 0.5; % 第二幅图像的权重
% 进行图像融合
fused_image = weight1 * double(image1) + weight2 * double(image2);
fused_image = uint8(fused_image);
% 显示融合结果
imshow(fused_image);
```
上述代码中,首先使用`imread`函数读取了两幅待融合的图像,然后通过判断两幅图像的尺寸是否一致来确保能够进行融合。接着设置了两幅图像的权重,这里使用了相同的权重0.5。最后,通过加权平均的方式将两幅图像进行融合,并将结果显示出来。
PCA图像融合matlab代码
PCA图像融合是一种常用的图像融合方法,它通过主成分分析(PCA)来实现。下面是一个简单的PCA图像融合的Matlab代码示例:
```matlab
% 读取两幅待融合的图像
image1 = imread('image1.jpg');
image2 = imread('image2.jpg');
% 将图像转换为灰度图像
gray1 = rgb2gray(image1);
gray2 = rgb2gray(image2);
% 将灰度图像转换为向量形式
vector1 = double(gray1(:));
vector2 = double(gray2(:));
% 计算两幅图像的均值向量
mean1 = mean(vector1);
mean2 = mean(vector2);
% 中心化处理
centered1 = vector1 - mean1;
centered2 = vector2 - mean2;
% 构建协方差矩阵
covariance = cov(centered1, centered2);
% 对协方差矩阵进行特征值分解
[eigenvectors, eigenvalues] = eig(covariance);
% 提取主成分(特征向量)
principal_component = eigenvectors(:, end);
% 计算融合后的图像
fused_image = image1 * principal_component(1) + image2 * principal_component(2);
% 显示融合后的图像
imshow(uint8(fused_image));
```
这段代码实现了简单的PCA图像融合,首先读取两幅待融合的图像,然后将其转换为灰度图像,并将灰度图像转换为向量形式。接着计算两幅图像的均值向量,并进行中心化处理。然后构建协方差矩阵,并对其进行特征值分解,提取主成分(特征向量)。最后,根据主成分对两幅图像进行加权融合,得到融合后的图像,并显示出来。