基本全局阈值法(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python多线程通信_python socket多线程

    Python多线程通信_python socket多线程作者:billy版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处创建线程线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程并行执行不同的任务。由于线程是操作系统直接支持的执行单元,因此,高级语言(如Python、Java等)通常都内置多线程的支持。Python的标准库提供了两个模块:_thread和threading,_thread

    2022年8月31日
    5
  • pycharm下的调试功能[通俗易懂]

    pycharm下的调试功能[通俗易懂]pycharm下的调试功能

    2022年8月27日
    8
  • java调用python脚本返回的参数_javaweb调用python

    java调用python脚本返回的参数_javaweb调用python实际工程项目中可能会用到Java和python两种语言结合进行,这样就会涉及到一个问题,就是怎么用Java程序来调用已经写好的python脚本呢,一共有四种方法可以实现:1、在java类中直接执行python语句此方法需要引用org.python包,需要下载Jpython。Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython是在JVM上实现的Python,由J

    2025年8月25日
    3
  • F分布的概率密度函数_F分布的统计量是

    F分布的概率密度函数_F分布的统计量是定义:设X1∼χ2(m),X2∼χ2(n)X_{1}\sim\chi^{2}(m),X_{2}\sim\chi^{2}(n)X1​∼χ2(m),X2​∼χ2(n),X1X_{1}X1​与X2X_{2}X2​相互独立,则称随机变量F=X1/mX2/nF=\frac{X_{1}/m}{X_{2}/n}F=X2​/nX1​/m​服从自由度为mmm及nnn的FFF分布,mmm称为第一自由度,n\boldsymbol{n}n称为第二自由

    2022年10月10日
    3
  • linux的进程调度指的是系统对进程调用_Linux进程调度实验

    linux的进程调度指的是系统对进程调用_Linux进程调度实验进程状态进程调度就是让进程从一种状态切换到另一种状态。Linux中进程的主要状态如下,值状态缩写含义0TASK_RUNNINGR正在运行或可运行1TASK_INTERRUPTIBLES可中断的休眠2TASK_UNINTERRUPTIBLED不可中断的休眠4__TASK_STOPPEDT停止状态,当进程接收到SIGSTOP等signal信息8__TASK_TRACEDt跟踪状态,进程被debugge…

    2022年9月28日
    2
  • betterintellj的激活码(注册激活)[通俗易懂]

    (betterintellj的激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    130

发表回复

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

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