基于 MATLAB 编程实现图像自动阈值分割算法,要求对 256X256 的 lenna.jpg 图像进行自动阈值分割分割。
时间: 2023-06-13 08:05:55 浏览: 52
好的,我们可以使用 MATLAB 中的 Otsu 自适应阈值分割算法来实现图像自动阈值分割。以下是具体的实现步骤:
1. 读入 lenna.jpg 图像:
```matlab
img = imread('lenna.jpg');
```
2. 将图像转化为灰度图像:
```matlab
gray_img = rgb2gray(img);
```
3. 使用 Otsu 自适应阈值分割算法进行图像分割:
```matlab
level = graythresh(gray_img);
BW = imbinarize(gray_img,level);
```
其中,`level` 表示计算得到的阈值,`imbinarize` 函数可以根据阈值将图像二值化。
4. 显示原始图像和分割后的图像:
```matlab
subplot(1,2,1),imshow(gray_img),title('原始图像');
subplot(1,2,2),imshow(BW),title('分割后的图像');
```
完整的代码如下:
```matlab
img = imread('lenna.jpg');
gray_img = rgb2gray(img);
level = graythresh(gray_img);
BW = imbinarize(gray_img,level);
subplot(1,2,1),imshow(gray_img),title('原始图像');
subplot(1,2,2),imshow(BW),title('分割后的图像');
```
运行代码后,即可显示原始图像和分割后的图像。