基于OTSU最大类间方差法的ROI分割、提取图像中的形状特征--面积、周长、离心率、zernike矩

分享一下最近学习的图像分类方面知识,整体的思路如下(之前的汇报ppt里截的)
在这里插入图片描述

把这个过程拆分几个部分共同学习一下吧

1.Otsu法原理

最大类间方差法OTSU是一种自适应的全局阈值确定的方法,根据灰度阈值T将图像分成背景和目标两部分,像素点数占比为ω_0和ω_1,平均灰度值为μ_0和μ_1

由已知,
在这里插入图片描述
图像平均灰度
在这里插入图片描述
类间方差
在这里插入图片描述
代入式(2-1)、(2-2)可得目标函数为
在这里插入图片描述
背景和目标之间的类间方差最大时,目标和背景的错分概率最小

2.原始Otsu算法与改进算法的实现

改进算法思想是在原始Otsu算法基础上求取最大类间、类内方差比值最小的情况。
在分割之前利用了一些灰度变换的方法做图像的预处理,详细内容可以看链接

% 原始的与改进的OTSU算法
clc,clear,close all

f = imread('C:\Users\HS\Desktop\duck.jpg');
f = rgb2gray(f);f1 = f;

figure,imshow(f);title('原图的灰度化');
set(gcf,'color','w');set(gca,'linewidth',1,'fontsize',16);

figure,histogram(f);title('原图的灰度直方图');
set(gcf,'color','w');set(gca,'linewidth',1,'fontsize',16);

g = imadjust(f,[0.1,0.85],[],0.5);%mamma<1时,变换凸显高灰度区域

ng = imnoise(g,'gaussian',0,0.1);

[frest,psnr] = get_winer(g,ng);  % 维纳滤波
figure();imshow(frest); title(['维纳滤波去噪,PSNR=',num2str(psnr)]);
set(gcf,'color','w');set(gca,'linewidth',1,'fontsize',16);

figure,histogram(frest);title('0.1高斯噪声滤波后的灰度直方图');
axis([0,255,0,7000]);
set(gca,'xtick',0:50:255); 
set(gca,'ytick',0:1000:7000); 
set(gcf,'color','w');set(gca,'linewidth',1,'fontsize',16);

%% 正式开始:传统的OTSU算法
[thresh,SM] = graythresh(frest); % OTSU算法,自适应选取二值化阈值
BWimg = im2bw(frest,thresh);%im2bw的结果是白底黑目标

figure;
imshow(BWimg);title('OTSU算法二值化结果');
set(gcf,'color','w');set(gca,'linewidth',1,'fontsize',16);

figure,histogram(BWimg);title('OTSU算法二值化结果的灰度直方图');
set(gcf,'color','w');set(gca,'linewidth',1,'fontsize',16);
%% 最大类间、类内比值法
[m,n] = size(f);
th = zeros(1,254); % 准备存放比值
f = double(f); % 必须转换成double格式!!!!否则不能计算像素!!!
% fi = 0;
% for i=1:m
%     for j=1:n
%         fprintf('fi=%d,',fi);
%         fprintf('f(%d,%d)=%d\n',i,j,f(i,j));
%         fi = fi+f(i,j)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值