用matlab实现两幅图像的差异对比,并用红框标记
时间: 2024-03-13 20:23:02 浏览: 24
以下是用MATLAB实现两幅图像的差异对比,并用红框标记的示例代码:
```matlab
% 读取两幅图像
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
% 将两幅图像转换为灰度图像
gray1 = rgb2gray(img1);
gray2 = rgb2gray(img2);
% 计算两幅图像的差异
diff = imabsdiff(gray1, gray2);
% 通过二值化处理,将差异图像转换为黑白图像
bw = imbinarize(diff);
% 对差异图像进行腐蚀操作,去除噪点
se = strel('disk', 4);
bw = imerode(bw, se);
% 寻找差异区域的边界
boundaries = bwboundaries(bw);
% 将差异区域用红框标记在原始图像上
figure;
imshow(img1);
hold on;
for k = 1:length(boundaries)
boundary = boundaries{k};
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2);
end
title('差异对比');
% 显示差异图像
figure;
imshow(diff);
title('差异图像');
```
在上述代码中,我们首先读取了两幅图像并将它们转换为灰度图像。然后,通过计算两幅图像的差异,得到了差异图像。为了方便观察,我们将差异图像转换为黑白图像,并对它进行腐蚀操作,去除噪点。接着,我们使用`bwboundaries`函数寻找差异区域的边界,并将这些边界用红框标记在原始图像上。最后,我们显示了差异图像,以便更好地观察两幅图像的差异。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)