基本全局阈值法(basic global thresholding)MATLAB实现

基本全局阈值法(basic global thresholding)MATLAB实现基本全局阈值分割步骤如下:(1)设定参数,并选择一个初始的估计阈值。(2)用阈值分割图像。将图像分成两部分:是由灰度值大于的像素组成,是由灰度值小于或等于的像素组成。(3)计算和中所有像素的平均灰度值和,以及新的阈值。(4)如果,则推出即为最优阈值;否则,将赋值给,并重复步骤(2)~(4),直到获取最优阈值。其具体实现MATLAB代码如下:%i…

大家好,又见面了,我是你们的朋友全栈君。

基本全局阈值分割步骤如下:

   (1)设定参数基本全局阈值法(basic global thresholding)MATLAB实现,并选择一个初始的估计阈值基本全局阈值法(basic global thresholding)MATLAB实现

   (2)用阈值基本全局阈值法(basic global thresholding)MATLAB实现分割图像。将图像分成两部分:基本全局阈值法(basic global thresholding)MATLAB实现是由灰度值大于基本全局阈值法(basic global thresholding)MATLAB实现的像素组成,基本全局阈值法(basic global thresholding)MATLAB实现是由灰度值小于或等于基本全局阈值法(basic global thresholding)MATLAB实现的像素组成。

   (3)计算基本全局阈值法(basic global thresholding)MATLAB实现基本全局阈值法(basic global thresholding)MATLAB实现中所有像素的平均灰度值基本全局阈值法(basic global thresholding)MATLAB实现基本全局阈值法(basic global thresholding)MATLAB实现,以及新的阈值基本全局阈值法(basic global thresholding)MATLAB实现

   (4)如果基本全局阈值法(basic global thresholding)MATLAB实现,则推出基本全局阈值法(basic global thresholding)MATLAB实现即为最优阈值;否则,将基本全局阈值法(basic global thresholding)MATLAB实现赋值给基本全局阈值法(basic global thresholding)MATLAB实现,并重复步骤(2)~(4),直到获取最优阈值。

其具体实现MATLAB代码如下:

 

%image_bgt.m

function level =image_bgt(I)

%该函数使用basic global thresholding算法实现二值化

I = im2double(I);          %对图像归一化

[M,N] = size(I);

T0 = 0.001;           %设置门限

T1 = (max(max(I)) +min(min(I)))/2;          %得到初始阈值T1

%定义G1、G2的下标,同时起统计个数的作用

columns1 = 1;

columns2 = 1;

%开始遍历

while 1

    for i = 1:M

        for j = 1:N

            if I(i,j)>T1

                G1(columns1) = I(i,j);          %得到分组G1

                columns1 = columns1 + 1;

            else

                G2(columns2) = I(i,j);          %得到分组G2

                columns2 = columns2 + 1;

            end

        end

    end

       %计算G1、G2均值

    ave1 = mean(G1);

    ave2 = mean(G2);

    T2 = (ave1 + ave2)/2;           %得到新阈值T2

    if abs(T2 – T1)<T0        %判断T2是否满足条件

        break;

    end

    T1 = T2;

    columns1 = 1;

    columns2 = 1;

end

level = T2;

end

 

%DIP_exp4_2.m

%该m文件调用image_bgt函数对图像进行basic global thresholding算法阈值分割

clc;clear;closeall;

I =imread(‘cameraman.tif’);

level =image_bgt(I);            %得到basic global thresholding算法阈值

J = im2bw(I,level);                    %实现图像二值化,即非黑即白

subplot(121),imshow(I);title(‘原图像’);

subplot(122),imshow(J);title(‘basicglobal thresholding后图像’);

 

运行DIP_exp4_2.m文件得结果如下:

基本全局阈值法(basic global thresholding)MATLAB实现

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141908.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django(61)认证组件源码分析

    Django(61)认证组件源码分析认证组件源码入口APIView下的dispatch下的self.initial(request,*args,**kwargs),源码如下:definitial(self,request,

    2022年7月29日
    5
  • 学习PetShop3.0(4)购物车

    学习PetShop3.0(4)购物车终于到购物车了,在看这个之前应该已经明白了第三篇的那个模型,这样购物车基本也就明白了。来看一下ShoppingCart.aspx这个页。当你看好了一个宠物,比如可爱的GoldenRetriever,嘿嘿,那就点addtocart按钮,这时就会跳到ShoppingCart.aspx,url里带了这个宠物的id号,根据该id号程序将该宠物放到cart里面。然后你可以再去挑别的宠物,比如一只猫(……

    2022年10月16日
    4
  • freemarker菜鸟教程_freemarker自定义标签

    freemarker菜鸟教程_freemarker自定义标签使用的环境为SpringMVC+FreeMarker,要在ftl页面中使用contextPath,需要在viewResolver中做如下配置(红色部分):这样,在页面中使用${rc.contextPath}就可获得contextPath

    2025年12月14日
    2
  • MERGE 函数的使用[通俗易懂]

    MERGE 函数的使用[通俗易懂]1.Merge是什么?

    2022年4月30日
    209
  • 获取和分析Dump的几种工具简介[通俗易懂]

    获取和分析Dump的几种工具简介[通俗易懂]最近在进一步学习support技能的时候,了解到分析Dump的重要性,经过学习,做一些笔记。一、什么是Dump文件。Dump文件时进程的内存镜像。可以把程序的执行状态保存到Dump文件中。Dump文件分为内核模式Dump和用户模式Dump。其中内核模式Dump是操作系统创建的崩溃转储,例如蓝屏Dump。而在我们调试或Troubleshooting过程中使用的Dump是用户模式Dump,又分为F…

    2022年10月2日
    3
  • access 注入

    0x00前言现在access的站,比较少,有的话也是小型网站在用,因为access的性能比较差,多人访问都能卡死,所以很多网站都很少会采用access的数据库搭建。但是该学的我们还是得学。0x0

    2021年12月11日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号