博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
otus算法
阅读量:5291 次
发布时间:2019-06-14

本文共 1613 字,大约阅读时间需要 5 分钟。

所谓的otus算法实际上就是寻找一个阈值,用来对整幅图的灰度进行分界,如果灰度大于这个阈值的就显示为白色,小于阈值的就显示为黑色。

而这个阈值该如何寻找就是otus算法的核心。

otus算法采用的是寻找最大类间分类法。

初听这个名字觉得很高大上,实际上就是把图像的灰度直方图找出来,然后用这个阈值进行分界,找到界限两边各自方差,然后将这两个方差求差的绝对值,绝对值最大的时候那个分界灰度就是阈值灰度,matlab代码如下:

function [ output_args ] = otus( IM )%OTUS Summary of this function goes here%   Detailed explanation goes here[m,n,h]=size(IM);GIM=rgb2gray(IM);%GIM为灰度图像his=zeros(256,1);%定义一个256行1列的灰度直方图hisvar=zeros(256,1);%记录每一灰度值的点的个数for i=1:m    for j=1:n        gray=GIM(i,j)+1;        his(gray,1)=his(gray,1)+1;    endend        for yu=1:255    left=0;%左边平均数    left_num=0;%左边总数    left_var=0;%左边方差        right=0;%右边平均数    right_num=0;%右边总数    right_var=0;%右边方差        for i=1:yu        left=his(i,1)*i+left;        left_num=left_num+his(i,1);    end     if left_num==0            left=0;        else    left=left/left_num;     end        for j=yu+1:255        right=his(j,1)*j+right;        right_num=right_num+his(j,1);    end     if right_num==0            right=0;        else    right=right/right_num;     end        %计算左右两边方差    for i=1:yu        if left_num==0            left_var=0;        else        left_var=((i-left)*his(i,1)/left_num).^2+left_var;        end    end        for j=yu+1:255        if right_num==0            right_var=0;        else        right_var=((j-right)*his(j,1)/right_num).^2+right_var;        end    end        var(yu,1)=abs(right_var-left_var);endyu_max=find(var==max(max(var)));for i=1:m    for j=1:n        if GIM(i,j)+1>yu_max        GIM(i,j)=255;        else            GIM(i,j)=0;        end    endendimshow(GIM);end

 

转载于:https://www.cnblogs.com/PHPer-Wu/p/4435543.html

你可能感兴趣的文章
图片生成缩略图
查看>>
SpecFlow特性介绍2-Context
查看>>
单独编译kvm模块
查看>>
基于SQL调用Com组件来发送邮件
查看>>
关于Mysql select语句中拼接字符串的记录
查看>>
动态规划 例子与复杂度
查看>>
安装webpack-dev-server后,npm run dev报错
查看>>
[BZOJ4567][SCOI2016]背单词(Trie+贪心)
查看>>
15软工课后作业01—15100120
查看>>
git回退到某个版本并提交
查看>>
查看oracle数据库的连接数以及用户
查看>>
简单几行js实现tab选项切换效果
查看>>
关于更改滚动条样式
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
[转帖] Oracle 关闭自动收集统计信息
查看>>
三.野指针和free
查看>>
VIO的Bundle Adjustment推导
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
asp.net FileUpload控件文件格式的判断及文件大小限制
查看>>