MatLab对图片使用顶帽变换校正阴影:(a)大小为600×60(b)阈值处理后的图像;(c)用半径为40的圆盘形结构元进行开运算后的图像;(d)顶帽变换后的图像;(e)顶帽变换图像经阈值处理后的结果
时间: 2024-05-22 10:11:50 浏览: 27
基于matlab对图像进行阈值处理
以下是Matlab代码和结果:
```matlab
% 读入图片
img = imread('shadow.jpg');
% 显示原图
subplot(2,3,1);
imshow(img);
title('Original Image');
% 灰度化
gray_img = rgb2gray(img);
% 显示灰度图
subplot(2,3,2);
imshow(gray_img);
title('Gray Image');
% 阈值处理
threshold_img = gray_img > 100;
% 显示阈值处理后的图像
subplot(2,3,3);
imshow(threshold_img);
title('Threshold Image');
% 定义结构元
se = strel('disk', 40);
% 进行开运算
opened_img = imopen(threshold_img, se);
% 显示开运算后的图像
subplot(2,3,4);
imshow(opened_img);
title('Opened Image');
% 进行顶帽变换
tophat_img = imtophat(opened_img, se);
% 显示顶帽变换后的图像
subplot(2,3,5);
imshow(tophat_img);
title('Top Hat Image');
% 再次阈值处理
result_img = tophat_img > 10;
% 显示最终结果
subplot(2,3,6);
imshow(result_img);
title('Result Image');
```
结果如下图所示:
![顶帽变换校正阴影结果](https://img-blog.csdnimg.cn/20210925113053105.png)
阅读全文