matlab最小分类错误全局二值化算法

2023-10-29

 

转自:http://download.csdn.net/detail/hupeng810/1511870

function imagBW = kittlerMet(imag)

% KITTLERMET binarizes a gray scale image 'imag' into a binary image

% Input:

%   imag: the gray scale image, with black foreground(0), and white

%   background(255).

% Output:

%   imagBW: the binary image of the gray scale image 'imag', with kittler's

%   minimum error thresholding algorithm.

 

% Reference:

%   J. Kittler and J. Illingworth. Minimum Error Thresholding. Pattern

%   Recognition. 1986. 19(1):41-47

 

MAXD = 100000;

imag = imag(:,:,1);

[counts, x] = imhist(imag);  % counts are the histogram. x is the intensity level.

GradeI = length(x);   % the resolusion of the intensity. i.e. 256 for uint8.

J_t = zeros(GradeI, 1);  % criterion function

prob = counts ./ sum(counts);  % Probability distribution

meanT = x' * prob;  % Total mean level of the picture

% Initialization

w0 = prob(1);   % Probability of the first class

miuK = 0;   % First-order cumulative moments of the histogram up to the kth level.

J_t(1) = MAXD;

n = GradeI-1;

for i = 1 : n

    w0 = w0 + prob(i+1);

    miuK = miuK + i * prob(i+1);  % first-order cumulative moment

    if (w0 < eps) || (w0 > 1-eps)

        J_t(i+1) = MAXD;    % T = i

    else

        miu1 = miuK / w0;

        miu2 = (meanT-miuK) / (1-w0);

        var1 = (((0 : i)'-miu1).^2)' * prob(1 : i+1);

        var1 = var1 / w0;  % variance

        var2 = (((i+1 : n)'-miu2).^2)' * prob(i+2 : n+1);

        var2 = var2 / (1-w0);

        if var1 > eps && var2 > eps   % in case of var1=0 or var2 =0

            J_t(i+1) = 1+w0 * log(var1)+(1-w0) * log(var2)-2*w0*log(w0)-2*(1-w0)*log(1-w0);

        else

            J_t(i+1) = MAXD;

        end

    end

end

minJ = min(J_t);

index = find(J_t == minJ);

th = mean(index);

th = (th-1)/n

imagBW = im2bw(imag, th);

 

% figure, imshow(imagBW), title('kittler binary');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab最小分类错误全局二值化算法 的相关文章

  • 在 tlistbox 中绘制缩略图

    在 DelphiXE 中 我使用 tFileOpenDialog 选择一个文件夹 然后在 tListBox 中列出该文件夹中的所有 jpg 文件 我允许将列表项拖放到列表中进行自定义排序 以便稍后按顺序显示它们 我希望能够在文件名旁边绘制图
  • 在电子邮件中嵌入背景图像

    我正在尝试使用电子邮件中的嵌入图像作为背景图像 我有以下代码来嵌入它 LinkedResource backgroundLink new LinkedResource background gif backgroundLink Conten
  • 从 URL 任何文件类型创建图像

    我知道imagecreatefromgif https www php net manual en function imagecreatefromgif php imagecreatefromjpeg https www php net
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • MATLAB 图形渲染:OpenGL 与 Painters?

    当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时 我一无所知 但我遇到过某些示例 其中does matter plot 0 0 ko markersize 50 linewidth 8 set gcf renderer ope
  • SSRS:报告加载外部图像,找不到图像,我可以隐藏图像控件吗

    我的 SSRS 报告从报告服务器上的客户编号特定文件夹中加载每个客户的徽标图像 我编写一个表达式 根据客户编号形成图像的 URL http localhost images iCustomerNumber ToString logo gif
  • 静态时序数据的数据库解决方案

    我们拥有一个庞大且不断增长的实验数据集 该数据集取自约 30 000 名受试者 对于每个主题 都有多个数据记录 在每个记录中 收集了多个生理数据时间序列 每个时间序列约 90 秒长 并以 250Hz 采样 我应该注意到 时间序列的任何给定实
  • MATLAB:MEX 矩阵除法给出的结果与 m 文件不同

    我使用 MATLAB 的编码器工具创建了矩阵指数函数的 MEX 版本 以在另一组函数中使用 问题是 MEX 版本给出的结果与原始 m 文件不同 经过调试 我认为这是因为MEX文件和m文件没有做相同的矩阵除法 或者 MEX 文件首先就有问题
  • 获取输入图像类型选择的图片并加载到图像标签中

    所以 我有一个用于上传 img 文件的输入框 我想要做的是从该数据 或选定的源 中获取数据并将其路由到图像标签的 src 属性中 像这样的东西 http jsfiddle net QC2c4 http jsfiddle net QC2c4
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3
  • MATLAB 中的内存映射文件?

    我决定使用 memmapfile 因为我的数据 通常为 30Gb 到 60Gb 太大 无法放入计算机内存中 我的数据文件由两列数据组成 对应于两个传感器的输出 并且它们采用 bin 和 txt 格式 m memmapfile G E Str
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • 是否可以进一步压缩 Base64 PNG 字符串?

    我有一个 PNG 图像并获得了它的 Base64 PNG 字符串表示形式 它仍然很大 我想知道是否可以进一步压缩它 这可能吗 背景 我正在使用 Selenium 2 Java 创建当前网页的屏幕截图 将其转换为 base64 字符串并将该字
  • 在每次迭代中使用 for 循环的索引命名图像

    我正在使用 MATLAB 进行图像处理项目 我使用 for 循环在每次循环迭代时生成某种图像数据 图像大小不同 我的问题是如何阻止它在下一次迭代中覆盖图像 Img i j data 理想情况下我希望它有 Img 1 data for 1st
  • 找不到仅适用于数字的 Tesseract 4.0 tessdata

    正如这篇文章中所说 pytesseract 仅使用 tesseract 4 0 数字不起作用 https stackoverflow com questions 46574142 pytesseract using tesseract 4
  • 如何为活动添加背景图片?

    使用主题或 ImageView use the android backgroundxml 中的属性 如果您想将其应用到整个活动 最简单的方法是将其放在布局的根目录中 因此 如果您有一个relativelayout作为您的xml的开头 请将
  • Kotlin:使用 Picasso 从 flickr 加载图像时出现错误 503

    我的应用程序使用 Android 的 Picasso 库从 flickr 加载图像 奇怪的是 不久前将我的应用程序迁移到 Kotlin 后 它工作得很好 但现在我开始出现 随机 503 错误 我已经在 flickr 控制面板中为每个图像设置
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 如何将条形图的 XtickLabels 向左移动?

    我目前正在尝试创建频率直方图 为此 我必须创建一个条形图 条形图之间没有空格 然而 这集中于XTickLabels在酒吧的中间 由于它是一个直方图 我希望数值位于每个条形之间的线上 以便它可以直观地指示间隔 本质上 我需要将所有刻度标签移至

随机推荐

  • Ant Design Pro V5精讲(基础篇九):TypeScript入门

    解决什么技术痛点 JavaScript是一门灵活的编程语言 但它的缺陷是没有类型约束 隐藏类型转换 var的作用域问题等 在编程中我们有一个共识 错误出现的越早越好 写代码出错比代码编译出错好 代码编译出错比代码运行期间出错好 开发阶段出错
  • 金融级云原生探索实践系列 - 开篇

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 由蚂蚁金服主办的 SOFAStack Cloud Native Workshop 将在 6月24日于 KubeCon CloudNativeCon Open Source
  • 支持向量回归删除异常值Python

    1 支持向量回归 SVR 原理 支持向量回归 Support Vector Regression SVR 不仅可以用于预测 还可以用于异常值检测 其基本思路是训练一个回归模型 通过对每个数据点进行预测 并计算其预测残差 来判断该数据点是否为
  • 利用树莓派3和RTL-SDR V3搭建一个低成本的QRP小功率监测点

    TUTORIAL SETTING UP A LOW COST QRP FT8 JT9 WSPR ETC MONITORING STATION WITH AN RTL SDR V3 AND RASPBERRY PI 3 QRP是无线电通讯简语
  • centos7中安装docker,并安装mysql5.7

    参考地址 https www runoob com docker centos docker install html centos7中安装docker Docker从1 13版本之后采用时间线的方式作为版本号 分为社区版CE和企业版EE
  • python做项目管理_python项目实现配置统一管理的方法

    一个比较大的项目总是会涉及到很多的参数 最好的方法就是在一个地方统一管理这些参数 最近看了不少的python项目 总结了两种很有意思的配置管理方法 第一种 基于easydict实现的配置管理 首先需要安装numpy easydict以及ya
  • HCIP第十天作业

    要求及拓扑图 第一步 配IP 给AS2上的路由各配两个环回 其中一个是建邻用的 其他按正常配 第二步 给AS2上的路由配一个OSPF协议 并且将用户环回改成广播通信 第三步 起BGP协议 R1 R8直连 64512跟64513是两个联邦 所
  • 2.比较运算符逻辑运算符

    比较运算符逻辑运算符 比较运算符 比较运算符 gt 大于 lt 小于 等于 gt 大于等于 lt 小于等于 不等于 注 Infinity Infinity NaN NaN 比较结果为true或者false 字符串比较时是比较ASCII码的值
  • SaaS部署和私有化部署的区别及各自的优点

    以前开发一个软件如果想要在企业内运行就必须要安装在本地的服务器上 这就导致企业除了需要支付软件开发的费用之外 还需要支付服务器的费用 但是随着软件开发技术的不断发展 现在很多软件都不需要安装服务器用户通过互联网就能够访问到软件获得服务 这就
  • S7-1500项目案例程序,带5个S7-1200轮询,5个ET200SP

    S7 1500项目案例程序 带5个S7 1200轮询 5个ET200SP 博图软件编程 PTO脉冲模式控制20个轴 100个气缸 与2台机器人联动 采用ModbusRTU 485通讯 PROFINET IO智能通讯 PTP RS232自由口
  • 怎么查服务器的配置信息,怎么查自己服务器的配置信息

    怎么查自己服务器的配置信息 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果 帮助您直观的了解云服务器资源 在精简视图中 您可以快速获取弹性云服务器基本信息 登录信息 配置信息 监控信息 精简视图提供了云服务器资源概况
  • git clone 报错SSL connect error

    在一台centos上搭建frp的时候遇到了这个问题 做下记录 问题提示 fatal unable to access https github com fatedier frp git SSL connect error 原因 缺少相应的库
  • 关于PHPstorm打开laravel的代码提示的工具的方法

    关于PHPstorm打开laravel的代码提示的工具的方法 1 composer 安装 composer require barryvdh laravel ide helper 2 生成模型的工具 php artisan ide help
  • vlc集成c#_c#的一个视频播放库的封装-VLC.DotNet

    VLC的强大是众所周知的 如果你不知道 那你现在就知道了 FFMPEG和VLC的关系 VLC调用了FFMPEG的库 FFMPEG和libav的关系 libav是FFMPEG的开发人员中独立出来一部分后创建的一个新的工程 以上都是段子 没有深
  • QT 鼠标形状设置

    QT提供了十分便捷的设置鼠标形状的方法 在QT界面的根类QWidget中有QCursor cursor void setCursor QCursor void unsetCursor 三个方法 因而对于一切直接或间接继承自QWidget的控
  • Java缓存 @上源码

    用途 提高响应速度 减轻后台处理负担 分类 1 前端 客户端浏览器缓存 CDN加速 代理服务器缓存 nginx 2 后端 本地缓存 Guava Cache Ehcache 分布式缓存 Memcache Redis 数据库缓存 按照存放介质类
  • 奥的斯服务器故障显示m什么意思,奥迪斯电梯故障代码对照表 奥的斯电梯故障解决方法...

    刚从事电梯维保行业 我们除了培训中系统的学习外 实践中总结出来的窍门和技巧同样重要 当我们所见的故障案例和维修的电梯比较多的时候 经验及自然来了 这就是我们经常说熟能生巧 下面是diantijob小编整理的关于奥的斯电梯常见的故障代码和故障
  • h5移动端,通过监听路由回退事件关闭弹窗

    最近在做一个商城项目 项目设计是在移动端浏览器上使用 目前先不内嵌在app内部 在做商品详情页的时候 也调研了其他的app交互 其中有一个交互是在商品详情页 点击当前商品包含的服务详情按钮 会弹窗 点击返回按钮或者手机自带的返回 会关闭弹窗
  • 前后端分离--用户注册功能的实现

    爱旅行 用户注册 Object Obj application getAttribute active itripUser getUserCode 不能 toString 可能obj的值为空 就会出现异常 String activeCode
  • matlab最小分类错误全局二值化算法

    转自 http download csdn net detail hupeng810 1511870 function imagBW kittlerMet imag KITTLERMET binarizes a gray scale ima