使用Matlab读入一幅图像,输出其直方图,选取阈值,分割图像;尝试改变阈值大小,观察分割结果的变化;在一个窗口中输出原图像和提取结果,并给每幅子图像加上标题
时间: 2024-05-01 12:23:53 浏览: 157
matlab.rar_histogram threshold_基于 阈值 图像 分割_阈值分割_阈值分割 MATLAB
以下是使用Matlab进行图像分割的代码示例:
```matlab
% 读入图像
img = imread('lena.png');
% 输出直方图
histogram(img);
% 选取阈值进行分割
threshold = 128;
binary_img = imbinarize(img, threshold);
% 改变阈值大小,观察分割结果的变化
threshold2 = 200;
binary_img2 = imbinarize(img, threshold2);
% 在一个窗口中输出原图像和提取结果,并给每幅子图像加上标题
subplot(1, 3, 1);
imshow(img);
title('Original Image');
subplot(1, 3, 2);
imshow(binary_img);
title(['Threshold = ' num2str(threshold)]);
subplot(1, 3, 3);
imshow(binary_img2);
title(['Threshold = ' num2str(threshold2)]);
```
在上述示例中,我们首先使用`imread`函数读入一幅图像,然后使用`histogram`函数输出其直方图。接着,我们选取一个阈值进行分割,使用`imbinarize`函数可以将图像转换为二值图像。我们还可以通过改变阈值大小,观察分割结果的变化。
最后,我们使用`subplot`函数将原图像和两幅分割结果放在同一个窗口中,通过`title`函数为每幅子图像添加标题。
阅读全文