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


相关推荐

  • pageruler蛋白marker_蛋白marker上样量

    pageruler蛋白marker_蛋白marker上样量下载软件(其实就是一堆脚本)gitclonehttps://github.com/jhcepas/eggnog-mapper.git下载数据库aliaspython=/usr/bin/python2.7pythondownload_eggnog_data.py拆分蛋白文件xx.faaawk’!/^>/{printf”%s”,$0;n=”\…

    2025年7月27日
    1
  • POSIX 螺纹具体解释(1-概要)

    POSIX 螺纹具体解释(1-概要)

    2022年1月9日
    41
  • C++——随机数算法

    C++——随机数算法前言:在这里,我们要明确,计算机随机化出来的数字都是伪随机数字,就是近似于随机数,简单来说这个伪随机数需要依靠一个种子来决定这个数值的大小。默认情况下,这个种子的值是1。这造成了如果不改变种子的值,我们生成的随机数就会是同一个值。所以,我们就要设置种子C语言版本在C语言里,产生随机数主要用上两个函数,一个是srand(),另外一个是rand()函数。这个也没啥介绍的,具体看代码,就传递几个参数。rand()函数会返回一个范围在0到RAND_MAX(至少是32767,我的机器上是int的最大值)之间的

    2022年7月14日
    9
  • linux下vsftpd架设ftp服务器「建议收藏」

    linux下vsftpd架设ftp服务器「建议收藏」1.sudoapt-getinstallvsftpd2.使用netstat-tnl可以查看是否打开了21端口。是否有这行:tcp000.0.0.0:210.0.0.0:*LISTEN3.用浏览器访问一下吧ftp://10.45.7.25安装完毕后,匿名用户可以正常访问ftp具体配置参见:原文地址:http://…

    2022年7月21日
    11
  • Hive 基本语法操练(二):视图和索引操作

    Hive 基本语法操练(二):视图和索引操作

    2022年4月2日
    51
  • c语言编木马程序,肿么用C语言编写木马.病毒等程序

    c语言编木马程序,肿么用C语言编写木马.病毒等程序嘿嘿给你个类病毒C程序源码,看下方法吧#defineSVCHOST_NUM6#include#includechar*autorun={“[autorun]\nopen=SVCHOST.exe\n\nshell\\1=打开\nshell\\1\\Command=SVCHOST.exe\nshell\\2\\=Open\nshell\\2\\Command=SVCHOST.exe\nshel…

    2022年6月22日
    114

发表回复

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

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