基本全局阈值法(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)
上一篇 2022年5月24日 下午8:20
下一篇 2022年5月24日 下午8:20


相关推荐

  • CSS-精灵图片的使用(从一张图片中截图指定位置图标)

    CSS-精灵图片的使用(从一张图片中截图指定位置图标)目录一、名词解释二、使用难点三、使用步骤四、程序源码一、名词解释  在网页中,我们可以看到有很多的小图标,比如微博上的登录位置有很多这样的小图标。因为浏览器显示网页的所有内容都需要从我们自己的服务器进行下载,如果将这些图标分别存在服务器上,那么当需要显示的时候将会发出很多次请求–&gt;响应–&gt;下载,这样一来将会消耗大量的时间来下载这些小图标  所…

    2022年5月5日
    44
  • gzip解压_银河麒麟gzip解压

    gzip解压_银河麒麟gzip解压1、首先说为什么采用zlib解压,因为zlib可以解压内存数据。2、下载zlib库后,自己在projcts目录里面根据需要编译lib库3、静态链接只需要zlib.h;zconf.h;zlib.lib三个文件即可(动态的不介绍了)4、解压函数:[html]viewplaincopyprint?/* HTTP gzip decomp

    2025年9月30日
    7
  • 公众号推送早安问候以及天气预报(JAVA)

    公众号推送早安问候以及天气预报(JAVA)公众号推送早安问候以及天气预报 JAVA

    2026年3月18日
    2
  • oracle 查看所有表和视图

    oracle 查看所有表和视图查看所有表:select*fromall_tables查看所有视图:select*fromall_views

    2025年6月6日
    4
  • GBDT算法详解_gbdt算法

    GBDT算法详解_gbdt算法基本思想GBDT的基本结构是决策树组成的森林,学习方式是梯度提升。具体的讲,GBDT作为集成模型,预测的方式是把所有子树的结果加起来。GBDT通过逐一生成决策子树的方式生成整个森林,生成新子树的过程是利用样本标签值与当前树林预测值之间的残差,构建新的子树。例如,当前已经生成了3课子树了,则当前的预测值为D(x)=d1(x)+d2()x+d3(x),此时我们得到的当前的预测值为D(x)效果并不好,与真正的拟合函数f(x)还有一定的差距。GBDT希望的是构建第四棵子树,使当前树林的预测结果D(x)与第四棵

    2022年10月12日
    5
  • 合并排序

    合并排序与很多有用的算法类似 合并排序基于这样一个技巧 将 2 个大小为 N 2 的已排序序列合并为一个 N 元素已排序序列仅需要 N 次操作 这个方法叫做合并 我们用个简单的例子来看看这是什么意思 通过此图你可以看到 在 2 个 4 元素序列里你只需要迭代一次 就能构建最终的 8 元素已排序序列 因为两个 4 元素序列已经排好序了 1 在两个序列中 比较当前元素 当前 头一次出现的第一个 2

    2026年3月19日
    1

发表回复

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

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