📜  在 MATLAB 中使用 Otsu 方法对数字图像进行二值化(1)

📅  最后修改于: 2023-12-03 15:23:13.367000             🧑  作者: Mango

在 MATLAB 中使用 Otsu 方法对数字图像进行二值化

介绍

在数字图像处理中,二值化是常见的一种处理方法,其将灰度图像转换为只包含两个值的图像,即二值图像。Otsu 方法是一种基于图像灰度的自适应二值化方法。它能够找到图像灰度最佳分割值,将图像分为前景和背景两部分。

在 MATLAB 中,我们可以使用 graythresh 函数实现 Otsu 方法。

实现步骤
  1. 导入需要进行二值化的图像,可以使用 imread 函数。
  2. 将图像转换成灰度图像,可以使用 rgb2gray 函数。
  3. 使用 graythresh 函数计算最佳分割值,得到二值化阈值。
  4. 使用 imbinarize 函数将灰度图像二值化。
  5. 可以使用 imshow 函数将二值化后的图像显示出来。
代码实现
% 读取图像
img = imread('test.jpg');

% 转换成灰度图像
gray_img = rgb2gray(img);

% 计算阈值
threshold = graythresh(gray_img);

% 二值化
binary_img = imbinarize(gray_img, threshold);

% 显示图像
imshow(binary_img);

上述代码中,test.jpg 为需要进行二值化的图像文件,可以将其替换成其他图像文件名。得到的二值化图像将显示在新弹出的窗口中。

参考资料
  1. MATLAB Document, Gray Thresholding, https://www.mathworks.com/help/images/ref/graythresh.html
  2. MATLAB Document, Image Segmentation Using the Otsu Threshold, https://www.mathworks.com/help/images/image-segmentation-using-the-otsu-threshold.html