Matlab 迭代法计算灰值图像的level

Matlab中,已知函数im2bw(X,Level),默认level为0.5。这里level为阈值,其含义是:

第Xij个像素,利用利用二值化处理时,level=T为临界值。

在确定T的大小时,可以用迭代法确定:

1、首先选择图像的平均灰度值作为初始阈值T0=108

2、根据初始阈值,将图像分为两部分,C1部分灰度值大于T,C2部分灰度值小于T

3、计算C1部分和C2部分的平均灰度值:

4、再计算新的阈值:

5、重复迭代第2-4步,当Ti+1和Ti的差几乎为0时,停止迭代,此时T为最佳阈值。

代码如下:

clc
clear all
close all
I=imread('0.jpg');
B=rgb2gray(I);
B=double(B);
mean(B(:))
[r,c]=size(B);
T(1)=108;
T(2)=10;
a=0;
b=0;
su1=0;
su2=0;
for k=2:1000if( T(k)-T(k-1)>0.0001 | T(k)-T(k-1) <(-0.0001))for i=1:rfor j=1:cif B(i,j)>T(k)su1=B(i,j)+su1;a=a+1;elsesu2=B(i,j)+su2;b=b+1;endendendu1=su1/a;u2=su2/b;T(k+1)=(u1+u2)/2;else T(k)end
end
t=T(800)/255
figure;imshow(I);
B=im2bw(I,t);
figure;imshow(B);

效果如图:

此时level=0.4869

在具体应用过程中,根据图像的不同,可以修改level大小,如果图像色彩比较丰富,内容饱满,level值可以设置大点,靠近1;如果色彩单一,内容较少,则level值设置靠近0。

在matlab中,还可以使用imbinarize函数,默认情况下,imbinarize 使用 Otsu 方法,该方法选择特定阈值来最小化阈值化的黑白像素的类内方差。

Matlab 迭代法计算灰值图像的level相关推荐

  1. matlab 蒙特卡罗计算pi值

    蒙特卡罗法计算pi值是比较基础的入门应用之一,网上流传的大部分代码包括百度百科上的代码都是使用for循环完成迭代的,运算速度非常慢,这里我们提供一个向量化运算的方式,以加快运算速度.接触编程久了后,会 ...

  2. java bigdecimal 开方_JAVA BigDecimal使用牛顿迭代法计算平方根(开方)

    Java中虽然可以用Math.sqrt获得某值的平方根,但是该值必须是double类型的.可是有些项目对数值精度要求比较高,我们一般会用BigDecimal来存储,BigDecimal并不提供计算平方 ...

  3. 使用MATLAB计算一幅图像的熵

    公式 熵的计算公式: H(x)=−∑i=1nP(ai)∗logP(ai)H(x)=-\sum_{i=1}^{n}P(a_i)*logP(a_i) H(x)=−i=1∑n​P(ai​)∗logP(ai​ ...

  4. matlab计算联合熵,如何用matlab软件计算一幅图像信息的熵以及两幅图像间的联合熵?...

    %计算一副图像的熵 %随机生成图像 A=floor(rand(8,8).*255); [M,N]=size(A); temp=zeros(1,256); %对图像的灰度值在[0,255]上做统计 fo ...

  5. 什么影响matlab损失值,matlab – 在计算Logistic损失函数的值和梯度时避免数值溢出...

    我目前正在尝试在MATLAB中实现涉及 logistic loss function的机器学习算法.不幸的是,由于数字溢出,我遇到了一些麻烦. 通常,对于给定的输入s,逻辑函数的值为: log(1 + ...

  6. matlab最大回撤值,用matlab计算区间最大回撤值和最大回撤率

    用matlab 计算区间最大回撤值和最大回撤率 在股票投资的时候有一个很重要的概念-最大回撤.最大回撤被定义为: min()min(max )j i j i i j j i j d x x x x & ...

  7. matlab计算miou值,深度学习计算机视觉图像分割领域指标mIoU(平均交并比)计算代码与逐行解析...

    import numpy as np import argparse import json from PIL import Image from os.path import join #设标签宽W ...

  8. 计算两张图像之间的PSNR和SSIM值

    计算两张图像之间的PSNR和SSIM值 from skimage.metrics import mean_squared_error as mse from skimage.metrics impor ...

  9. 全息图像恢复成物象matlab,计算全息再现图像.ppt

    计算全息再现图像的研究 F1307202班 张一鸣 导师 冯仕猛 Contents 2. 计算全息的理论和模拟再现 3. 计算全息的光学再现 4. 总结和展望 1. 研究背景和论文的主要工作 1. 研 ...

最新文章

  1. 第十五届智能车竞赛东北赛区普通四轮组冠军车-哈尔滨工业大学-紫丁香
  2. java web三:反射
  3. linux脚本下载,一个测试下载速度的shell脚本
  4. 注释 —— 《clean code》读后感
  5. python cmd命令 循环传参数_将参数从cmd传递给python脚本
  6. ddos攻击工具_linux下DDoS攻击模拟实战
  7. python按行读取excel文件_python3读取excel文件只提取某些行某些列的值方法
  8. 多条数据取第一条_tp框架查询数据
  9. 图像平均池化 利用pytorch对图像进行池化
  10. pythonthreading模块_python多线程之 threading模块详解
  11. 微软中国总部半日游学小记
  12. pnpm : 无法加载文件 C:\Users\86183\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。
  13. 第四代编程语言_几代编程语言
  14. 小区宽带网络解决方案
  15. 解决Excel中使用VBA出现microsoft visual c++ runtime错误
  16. 学生云服务器哪个好?阿里云,腾讯云,华为云,有适合学生党云服务器推荐吗?
  17. python 视频硬字幕提取 内嵌字幕提取工具
  18. TPM分析笔记(七)TPM 模块中的密码算法家族。
  19. 堪称神级的开源笔记应用!
  20. Jupyter Notebook 更改默认目录

热门文章

  1. NFS(网络文件系统)简介及搭建
  2. 安全通信与安全通信标准EN50159
  3. 多媒体数字展示技术解决方案
  4. 微信小程序自定义模态框
  5. 鼠标事件比较与鼠标位置
  6. Java多线程 - Runnable接口和Callable接口的区别
  7. 字符串与时间的格式转换
  8. springboot集成阿里云短信验证码
  9. 书店销售管理系统----数据库原理及应用综合实验
  10. 17.Ubuntu命令行下添加新用户