由于我在研究的是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,从我做起。单通道单阈值都有缺陷,对于多通道多阈值无能为力,慢到炸。不如我自己的算法。

MATLAB--对于im2bw函数的优化相关推荐

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

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

  2. matlab中im2bw函数的用法

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

  3. matlab函数im2bw_im2bw(matlab中im2bw用法)

    MATLAB使用im2bw函数后,将一个32*16*3 unit的数组变成了31*10 的数组,. graythresh函数用法:使用最大类间方差法找到图片的一个合适的阈值(threshold).在使 ...

  4. matlab表示sa函数,SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu...

    %SA:T1法利用Matlab编写主函数实现对定义域[-5,5]上的二元函数求最优解-Jason niu [x,y] = meshgrid(-5:0.1:5,-5:0.1:5); z = x.^2 + ...

  5. matlab优化问题约束不取等号6,matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么...

    导航:网站首页 > matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么 matlab中fmincon函数中不含等号的边界值怎么设置? ...

  6. Matlab中bwmorph函数的使用

    Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...

  7. matlab 细化函数,MATLAB图像处理工具箱函数(细化篇).doc

    MATLAB图像处理工具箱函数(细化篇) 第3章 MATLAB数字图像处理工具箱 3.1 MATLAB图像预处理 3.1.1 图像处理的基本操作 1. 读入并显示一幅图像 clear %清除所有的工作 ...

  8. 不借助 matlab 内置函数,生撸均值方差模型

    不借助 matlab 内置函数,生撸均值方差模型 前言 我在之前的一篇文章中介绍了,如何使用 matlab 自带的函数(对象)portfolio,实现均值方差模型.matlab 内置的函数自然实用.但 ...

  9. matlab中im2bw

    在MATLAB中,im2bw是一个用于将灰度图像转换为二值图像的函数.im2bw函数将灰度图像中的像素值转换为二值图像中的0或1值,其中0代表黑色或背景,1代表白色或前景. 这个函数的语法如下: BW ...

最新文章

  1. mysql sql模式_MySQL SQL模式特点汇总
  2. python 判断目录和文件是否存在,若不存在即创建
  3. 项目由于装运点不同交货拆分解决方案
  4. 【瞎扯】我的OI之路
  5. C# DataTable分页处理
  6. 左右TextView旋转门问题
  7. ejb生命周期_无状态EJB:池化和生命周期
  8. 8步教你打开Android之门 NDK入门教程
  9. 不会发布npm包?进来看看?
  10. python netifaces模块 获取本机IP,网关等信息
  11. ZZULIOJ 1109: 数根(函数专题)
  12. apms阅卷系统服务器,Win 8系统运行APMS阅卷系统的解决办法
  13. java实现视频播放背景_使用VideoJS React的全屏背景视频
  14. 红外接收管硬件电路曲折的调试过程,错误的使用过程记录
  15. Bat脚本 -(一)- echo/ echo off/ echo on/ @ / start / pause / rem
  16. mtk android MT6573方案 power key 长按8s 关机功能实现
  17. 设计模式学习 — 代理模式
  18. 电驴怎么显示服务器列表,(转)如何更新电驴服务器列表(eMule Server List)
  19. WordPress个人博客Cosy3.1.3主题+积木部分插件
  20. xmp是什么格式的文件

热门文章

  1. 图像批量添加数字水印
  2. 海外app在谷歌和苹果商店中该如何设置关键词
  3. 服务器厂家文档,服务器厂家
  4. linux-mobaxterm-yolov5训练数据集ccpd--无数踩雷后
  5. 阿里系会员,有必要买吗?
  6. fifa15服务器位置,fifa15链接服务器
  7. 视频转文字提取的软件有哪些?这份软件合集推荐你
  8. 智能仓储行业:各细分毛利率与盈利模式分析
  9. 【电影】经典狙击手电影
  10. 阿里巴巴中间件性能挑战赛(MOM篇)