MATLABR2018b代码,对灰度图像进行OSTU二值化
时间: 2024-05-06 13:16:14 浏览: 15
下面是MATLAB R2018b的代码,用于对灰度图像进行OSTU二值化:
```matlab
% 读取灰度图像
img = imread('gray_image.jpg');
% 计算图像的直方图
histogram = imhist(img);
% 获取图像的像素总数
total_pixels = numel(img);
% 初始化类间方差最大值和阈值
max_variance = 0;
threshold = 0;
% 循环计算类间方差
for i = 1:255
% 计算类别1的像素总数和平均灰度值
class1_pixels = sum(histogram(1:i));
class1_mean = sum((0:i-1).*histogram(1:i))/class1_pixels;
% 计算类别2的像素总数和平均灰度值
class2_pixels = total_pixels - class1_pixels;
class2_mean = sum((i:255).*histogram(i+1:end))/class2_pixels;
% 计算类间方差
variance = class1_pixels*class2_pixels*(class1_mean-class2_mean)^2;
% 更新类间方差最大值和阈值
if variance > max_variance
max_variance = variance;
threshold = i;
end
end
% 二值化图像
binary_img = imbinarize(img, threshold/255);
% 显示原图和二值化图像
figure
subplot(1,2,1), imshow(img), title('原图')
subplot(1,2,2), imshow(binary_img), title('OSTU二值化')
```
请注意,这里假设输入的灰度图像是单通道的,即二维数组。如果您的图像是RGB彩色图像,请先将其转换为灰度图像。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)