MATLAB--对于im2bw函数的优化
由于我在研究的是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函数的优化相关推荐
- MATLAB中im2bw函数-将图像转换为二值图像
matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像.所谓二值图像, 一般意义上是指只有纯黑(0).纯白(255)两种 ...
- matlab中im2bw函数的用法
matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像.所谓二值图像, 一般意义上是指只有纯黑(0).纯白(255)两种 ...
- matlab函数im2bw_im2bw(matlab中im2bw用法)
MATLAB使用im2bw函数后,将一个32*16*3 unit的数组变成了31*10 的数组,. graythresh函数用法:使用最大类间方差法找到图片的一个合适的阈值(threshold).在使 ...
- 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 + ...
- matlab优化问题约束不取等号6,matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么...
导航:网站首页 > matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么 matlab中fmincon函数中不含等号的边界值怎么设置? ...
- Matlab中bwmorph函数的使用
Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...
- matlab 细化函数,MATLAB图像处理工具箱函数(细化篇).doc
MATLAB图像处理工具箱函数(细化篇) 第3章 MATLAB数字图像处理工具箱 3.1 MATLAB图像预处理 3.1.1 图像处理的基本操作 1. 读入并显示一幅图像 clear %清除所有的工作 ...
- 不借助 matlab 内置函数,生撸均值方差模型
不借助 matlab 内置函数,生撸均值方差模型 前言 我在之前的一篇文章中介绍了,如何使用 matlab 自带的函数(对象)portfolio,实现均值方差模型.matlab 内置的函数自然实用.但 ...
- matlab中im2bw
在MATLAB中,im2bw是一个用于将灰度图像转换为二值图像的函数.im2bw函数将灰度图像中的像素值转换为二值图像中的0或1值,其中0代表黑色或背景,1代表白色或前景. 这个函数的语法如下: BW ...
最新文章
- mysql sql模式_MySQL SQL模式特点汇总
- python 判断目录和文件是否存在,若不存在即创建
- 项目由于装运点不同交货拆分解决方案
- 【瞎扯】我的OI之路
- C# DataTable分页处理
- 左右TextView旋转门问题
- ejb生命周期_无状态EJB:池化和生命周期
- 8步教你打开Android之门 NDK入门教程
- 不会发布npm包?进来看看?
- python netifaces模块 获取本机IP,网关等信息
- ZZULIOJ 1109: 数根(函数专题)
- apms阅卷系统服务器,Win 8系统运行APMS阅卷系统的解决办法
- java实现视频播放背景_使用VideoJS React的全屏背景视频
- 红外接收管硬件电路曲折的调试过程,错误的使用过程记录
- Bat脚本 -(一)- echo/ echo off/ echo on/ @ / start / pause / rem
- mtk android MT6573方案 power key 长按8s 关机功能实现
- 设计模式学习 — 代理模式
- 电驴怎么显示服务器列表,(转)如何更新电驴服务器列表(eMule Server List)
- WordPress个人博客Cosy3.1.3主题+积木部分插件
- xmp是什么格式的文件