MATLAB--对于im2bw函数的优化

article/2025/10/5 19:37:41

    由于我在研究的是uint8图像,所以对于优化im2bw函数的形式为:im2bw(uint8[], T),不过其它形式也可以由类似思想导出。

测试代码:遍历8个图像得出时间

for n=1:8c=char(str(n));f=imread(c);testtime3%要测试的代码
end

算法一

tic
fR=im2bw(f(:,:,1),235/255);
fG=im2bw(f(:,:,2),20/255);
fB=im2bw(f(:,:,3),39/255);
toc


算法二

tic
fk=true(1030,1920);
fR=uint8(f(:,:,1)-235);
fR=fR&fk;
fG=uint8(f(:,:,2)-20);
fG=fG&fG;
fB=uint8(f(:,:,3)-39);
fB=fB&fk;
toc


分析:

从图中可以看出两者速度几乎相差无几,都为0.008-0.011范围内,那么问题来了,优化到底在哪。

优化(敲黑板):

1 im2bw的用处是将阈值以上的转为1,以下的转为0,但是假若我想要的在阈值以下怎么办,答案是求补集,但是这又是一次计算有木有。而采取算法二不管你取哪个范围都是同样的计算量。

2 对于单通道的阈值来说,两者速度相差无几,但是多通道阈值那就不一定了:

算法一时间会增加,因为要加一次交运算,时间为0.011-0.013:

ff=fR&fG&fB;
但是,但是算法二时间会减少,减少,减少,因为算法二多通道下反而只用计算一次交运算:

tic
fR=uint8(f(:,:,1)-235);
fG=uint8(f(:,:,2)-20);
fB=uint8(f(:,:,3)-39);ff=fR&fG&fB;
toc

时间为0.005-0.008,明显减少了(还有这种骚操作 大笑)。

3 也是很重要的一点,im2bw只能算单阈值,对于多阈值无能为力,而算法二计算多阈值只需要经过一次变换即可得到结果:

算法一,计算两次阈值,再进行交运算,搞不好还得进行补运算,慢的要死,此处不做测试(代码被删了),时间为2-3倍以上。

算法二,数学变换,采用矩阵运算,时间增幅很小,为0.007-0.010。

tic
fR=f(:,:,1);
fR=(fR-183).*(223-fR);
fG=f(:,:,2);
fG=(fG-26).*(40-fG);
fB=f(:,:,3);
fB=(fB-4).*(18-fB);fR=uint8(fR);
fG=uint8(fG);
fB=uint8(fB);ff=fR&fG&fB;
toc


结果:

拒绝im2bw,从我做起。单通道单阈值都有缺陷,对于多通道多阈值无能为力,慢到炸。不如我自己的算法。


http://chatgpt.dhexx.cn/article/SCjepPof.shtml

相关文章

MATLAB中将图像转换为二值图像im2bw

在MATLAB中将图像转换为二值图像,主要运用im2bw函数,涉及到一个灰度门槛的数值。 对于灰度图像 bwim2bw(I,level); level空着的话,默认是0.5。level一般使用graythresh函数来计算,至于graythresh函数中运用到的Otsus method&am…

matlab函数im2bw_图像分割之阈值分割(matlab)(转载)

转载自:https://blog.csdn.net/weixin_39824223/article/details/112249214 matlab函数im2bw_图像分割之阈值分割(matlab) weixin_39824223 2021-01-02 06:21:09 373 收藏 2 文章标签: matlab函数im2bw 图像分割是一种重要的…

MATLAB中im2bw函数-将图像转换为二值图像

matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像…

4、im2bw 和 imbinarize 的区别与图像分割的综合应用

1. im2bw 和 imbinarize 的区别 将图片转换为二值图有两个函数,分别为: bw imbinarize(g); 与 bw im2bw(g);在 matlab2018 中建议用 imbinarize 来将图片转换为二值图,其参数必须为灰度图。 在 matlab2016 中,只有 im2bw 函…

理解Kalman滤波的使用

Kalman滤波简介 Kalman滤波是一种线性滤波与预测方法,原文为:A New Approach to Linear Filtering and Prediction Problems。文章推导很复杂,看了一半就看不下去了,既然不能透彻理解其原理,但总可以通过实验来理解其具…

卡尔曼滤波(Kalman Filtering)——(6)MATLAB仿真(保姆级)

MATLAB仿真 一、卡尔曼滤波的实际应用二、流程图三、执行过程四、程序代码五、仿真结果参考文献 一、卡尔曼滤波的实际应用 在这里依旧以前面提到的测量硬币为例进行MATLAB仿真。现有一枚硬币为了这枚硬币的直径,我们进行了多次测量,但是所使用的的尺子存…

Kalman Filter 遇到 Deep Learning : 卡尔曼滤波和深度学习有关的论文

突然心血来潮,想到卡尔曼滤波器是否能和深度学习结合。于是从谷歌学术上搜了一下,发现现在这方面的工作还没有太多结合。Top 期刊 TNNLS 2021 有一篇最新工作。ICLR 2020 出现一篇 Kalman Filter Is All You Need 的文章,但目前从开源的审稿意…

目标跟踪:卡尔曼滤波(Kalman Filter)到底是怎么工作的?

Kalman filter到底是怎么工作的? 本文主要参考的文章:https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/,图片也基本来自上述博客 其实接触KF已经很久了,听过对应的课程,也对着公式进行过推导&#x…

卡尔曼滤波(kalman)

卡尔曼(kalman)滤波原理 kalman滤波器可以看做状态变量在由观测生成的线性空间上的射影。 如下状态空间模型描述的动态系统: (1) ​​​​​​​ ​​​​​​​ (2) 式中,k为离散时间&#xff…

卡尔曼滤波(Kalman filter)及预测

参考文章:https://blog.csdn.net/baidu_38172402/article/details/82289998; https://www.jianshu.com/p/2768642e3abf kalman滤波的作用:1.数据 滤波;2.数据预测 3.数据融合。其基本原理:是通过协方差 来进行加权。 1.什么是…

【Kalman】卡尔曼滤波Matlab简单实现

本节卡尔曼滤波Matlab实现是针对线性系统估计的,仅为简单仿真。 1.离散时间线性动态系统的状态方程 线性系统采用状态方程、观测方程及其初始条件来描述。线性离散时间系统的一般状态方程可描述为 其中,X(k) 是 k 时刻目标的状态向量,V(k)…

学习OpenCV——Kalman滤波

背景: 卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差&a…

卡尔曼滤波Kalman Filtering:介绍

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 控制理论(control theory)是工程学的分支之一,主要应对工程系统控制的问题。比如控制汽车发动机的功率输出,稳定电动机的转速,控制“反应速率”&#x…

kalman 滤波 演示与opencv代码

在机器视觉中追踪时常会用到预测算法,kalman是你一定知道的。它可以用来预测各种状态,比如说位置,速度等。关于它的理论有很多很好的文献可以参考。opencv给出了kalman filter的一个实现,而且有范例,但估计不少人对它的…

Ensemble Kalman filter集合卡尔曼滤波

在气象预测领域,很多时候,模型具有 O ( 10 e 8 ) O(10e8) O(10e8)以上的量级,如果使用传统的卡尔曼滤波,协方差矩阵的更新将是一个~ 10 e 22 10e22 10e22量级的计算操作,因此传统的卡尔曼滤波并不适用。集合卡尔曼滤波…

Kalman滤波MATLAB实现实例——在温度测量中的应用

参考:《卡尔曼滤波原理及应用MATLAB仿真》 原理介绍 假设我们要研究的对象是一个房间的温度。根据经验判断,这个房间的温度大概在25℃左右,可能受空气流通、阳光等因素影响,房间内温度会小幅度地波动。我们以分钟为单位,定时测量房间温度,这里的1分钟,可以理解为采…

图解卡尔曼滤波(Kalman Filter)

背景 关于滤波 首先援引来自知乎大神的解释。 “一位专业课的教授给我们上课的时候,曾谈到:filtering is weighting(滤波即加权)。滤波的作用就是给不同的信号分量不同的权重。最简单的loss pass filter, 就是直接把低…

卡尔曼滤波(Kalman Filter)原理理解和测试

Kalman Filter学原理学习 1. Kalman Filter 历史 Kalman滤波器的历史,最早要追溯到17世纪,Roger Cotes开始研究最小均方问题。但由于缺少实际案例的支撑(那个时候哪来那么多雷达啊啥的这些信号啊),Cotes的研究让人看着显得很模糊,因此在估计理论的发展中影响很小。17世纪…

Kaplan-Meier

Kaplan-Meier 算法 Kaplan-Meier,是一种生存分析的常用方法,用于研究某一个因素对于生存时间的影响。在医学广泛使用,比如新药物是否有效的增加癌症病人的存活时间。 计算方法:假设我们已经计算出了时间t1的生存概率是0.95&#…

Kalman滤波器从原理到实现

转载请注明出处:http://xiahouzuoxin.github.io/notes Kalman滤波器的历史渊源 We are like dwarfs on the shoulders of giants, by whose grace we see farther than they. Our study of the works of the ancients enables us to give fresh life to their finer…