matlab阈值分割代码

matlab
% 读取图像 originalImage = imread('example_image.jpg'); % 将图像转换为灰度图像 grayImage = rgb2gray(originalImage); % 计算图像的直方图 [counts, bins] = imhist(grayImage); % 使用 Otsu 方法计算最佳阈值 threshold = graythresh(grayImage); % 使用最佳阈值进行二值化 binaryImage = imbinarize(grayImage, threshold); % 显示原始图像、灰度图像和二值化图像 subplot(1, 3, 1); imshow(originalImage); title('Original Image'); subplot(1, 3, 2); imshow(grayImage); title('Grayscale Image'); subplot(1, 3, 3); imshow(binaryImage); title('Binary Image'); % 可选:保存二值化图像 imwrite(binaryImage, 'binary_image.jpg');

这个示例代码中,首先读取了一张图像,然后将其转换为灰度图像。接着,使用 imhist 函数计算了灰度图像的直方图,然后使用 graythresh 函数基于 Otsu 方法计算了最佳阈值。最后,使用 imbinarize 函数根据这个阈值进行了二值化。通过显示原始图像、灰度图像和二值化图像,可以对处理结果进行可视化。

如果你想要更多控制阈值分割过程,可以尝试手动选择阈值。

matlab
% 读取图像 originalImage = imread('example_image.jpg'); % 将图像转换为灰度图像 grayImage = rgb2gray(originalImage); % 显示原始图像和灰度图像 subplot(1, 2, 1); imshow(originalImage); title('Original Image'); subplot(1, 2, 2); imshow(grayImage); title('Grayscale Image'); % 通过对话框手动选择阈值 threshold = inputdlg('Enter threshold value:'); threshold = str2double(threshold); % 使用手动选择的阈值进行二值化 binaryImage = grayImage > threshold; % 显示二值化图像 figure; imshow(binaryImage); title('Binary Image'); % 可选:保存二值化图像 imwrite(binaryImage, 'binary_image_manual_threshold.jpg');

在这个示例中,你可以通过对话框手动输入阈值。然后使用这个阈值进行二值化,并显示二值化图像。