matlab运用全局阀值(OSTU 阈值)进行二值化得到 bw_Ostu
时间: 2023-07-22 07:18:10 浏览: 53
好的,针对您的问题,我可以为您提供以下 Matlab 代码:
```matlab
% 读入图像
img = imread('your_image.jpg');
% 将图像转换为灰度图
gray = rgb2gray(img);
% 计算 OSTU 阈值
level = graythresh(gray);
% 将图像进行二值化处理
bw_Ostu = imbinarize(gray, level);
```
这段代码可以将您的图像进行二值化处理,并且使用 OSTU 阈值选择最佳的阈值进行二值化。注意,这段代码中的 `your_image.jpg` 需要替换成您自己的图像文件名。
相关问题
对MATLAB自带的图像football进行OSTU阈值分割和二值化
好的,我可以帮你解决这个问题。你可以按照以下步骤完成:
1.首先,你需要使用以下命令来读取MATLAB自带的图像football:
```matlab
>> I = imread('football.jpg');
```
2.接下来,你可以使用`graythresh`函数来计算OSTU阈值。使用以下命令:
```matlab
>> level = graythresh(I);
```
这个命令会计算图像I的OSTU阈值,并将其存储在变量`level`中。
3.接下来,你可以使用`im2bw`函数将图像二值化。使用以下命令:
```matlab
>> BW = im2bw(I,level);
```
这个命令会将图像I使用OSTU阈值进行二值化,并将结果存储在变量`BW`中。
4.最后,你可以使用`imshow`函数来显示二值化后的图像。使用以下命令:
```matlab
>> imshow(BW);
```
这个命令会显示二值化后的图像。
这样,你就可以使用MATLAB对自带的图像football进行OSTU阈值分割和二值化了。
MATLABR2018b代码,对图像进行OSTU二值化
以下是MATLAB R2018b代码,使用OSTU算法对图像进行二值化。
```matlab
% 读取图像
image = imread('image.jpg');
% 将图像转为灰度图像
grayImage = rgb2gray(image);
% 计算OSTU阈值
threshold = graythresh(grayImage);
% 将图像二值化
binaryImage = imbinarize(grayImage, threshold);
% 显示原始图像和二值化图像
subplot(1, 2, 1);
imshow(grayImage);
title('原始图像');
subplot(1, 2, 2);
imshow(binaryImage);
title('OSTU二值化图像');
```
以上代码首先将彩色图像转换为灰度图像,然后使用 `graythresh` 函数计算OSTU阈值。最后,使用 `imbinarize` 函数将图像二值化。最后,我们使用 `subplot` 和 `imshow` 函数将原始图像和二值化图像显示在同一个窗口中。