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


相关推荐

  • Java环境变量配置详细步骤

    Java环境变量配置详细步骤引言很多初学Java的小伙伴可能都会听别人说想要编译运行Java程序需要配置环境变量,所以在这里我就手把手教给你如何配置Java环境变量;再多说一句,可能会有小伙伴想:我编译运行Java程序干嘛要配置环境变量呢,直接用IDEA等开发工具不好嘛;其实对于Java初学者,学习Java最好开始不要使用这些开发工具,因为这些工具功能实在是太强大了,并不适合开始学习Java,不利于打好基础;所以开始最好还是老老实实用DOS编译运行Java程序吧!;注:电脑系统是win10下载JDK至于什么是JDK还有到底有

    2022年7月7日
    20
  • JQuery中的select下拉框[通俗易懂]

    JQuery中的select下拉框[通俗易懂]<select id="SelectData"><optionvalue="1">dataOne</option&

    2022年7月2日
    22
  • leetcode-403. 青蛙过河(动态规划|记忆化搜索)[通俗易懂]

    leetcode-403. 青蛙过河(动态规划|记忆化搜索)[通俗易懂]一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。给你石子的位置列表 stones(用单元格序号 升序 表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一块石子上)。开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格 1 跳至单元格 2 )。如果青蛙上一步跳跃了 k 个单位,那么它接下来的跳跃距离只能选择为 k – 1、k 或 k + 1 个单位。 另请注意

    2022年8月9日
    12
  • openssl生成证书和公私钥_openssl查看证书信息

    openssl生成证书和公私钥_openssl查看证书信息OpenSSL生成证书

    2022年9月19日
    0
  • 在图像的傅里叶变换中,什么是基本图像_傅立叶变换

    在图像的傅里叶变换中,什么是基本图像_傅立叶变换从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。 傅立叶变换属于调和分析的内容。”分析”二字,可以解释为深入的研究。从字面上来看,”分析”二字,实际就是”条分缕析”而已。它通过对函数的”条分缕析”来达到对复杂函数的深入理解和研究。从哲学上看

    2022年8月30日
    4
  • vue可以和jquery一起用吗_项目中vue和jquery一起如何使用

    vue可以和jquery一起用吗_项目中vue和jquery一起如何使用拿起html的时候,在数据处理上,疯狂怀念数据双向绑定,vue又成了我的必选项,但是有些业务场景其实并不适用vue,所以最终技术选型为vue+jquery混合使用,结合两边的优点,大大提高开发效率。vue和jquery同时引入的时候,jquery操作一定要放在vue后面,要等DOM渲染完成,jquery才能进行DOM事件操作。那么vue+jquery应该如何使用呢?一、首先引入vue文件(cdn或者下载到本地都行),参考vue官方连接https://cn.vuejs.org/v2/guide/ins

    2022年10月15日
    0

发表回复

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

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