MATLAB--对于im2bw函数的优化
来源:互联网 发布:win10 蓝牙共享网络 编辑:程序博客网 时间:2024/05/20 20:46
由于我在研究的是uint8图像,所以对于优化im2bw函数的形式为:im2bw(uint8[], T),不过其它形式也可以由类似思想导出。
测试代码:遍历8个图像得出时间
for n=1:8 c=char(str(n)); f=imread(c); testtime3%要测试的代码end
算法一
ticfR=im2bw(f(:,:,1),235/255);fG=im2bw(f(:,:,2),20/255);fB=im2bw(f(:,:,3),39/255);toc
算法二
ticfk=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;但是,但是算法二时间会减少,减少,减少,因为算法二多通道下反而只用计算一次交运算:
ticfR=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。
ticfR=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,从我做起。单通道单阈值都有缺陷,对于多通道多阈值无能为力,慢到炸。不如我自己的算法。
阅读全文
0 0
- MATLAB--对于im2bw函数的优化
- matlab中im2bw函数的用法
- Matlab ones()[ zeros() ] & rgb2gray() & graythresh() & im2bw() 函数的使用
- im2bw函数的用法
- matlab(im2bw)
- matlab 图像转换 命令 im2bw
- matlab 对于图像操作函数的详解
- matlab 自定义算法将图像二分阈值 (binary threshold)化,im2bw or imbinarize函数用法
- im2bw
- MATLAB图像处理基础知识2 im2bw
- Matlab优化函数linprog的使用
- 一些优化过的matlab 函数
- MATLAB中将图像转换为二值图像im2bw
- Matlab优化函数
- Matlab 优化函数---fmincon
- 对于SPFA的优化
- 对于SPFA的优化
- matlab对于字符串的处理
- glibc源码解读——memset
- 注解的使用
- DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
- mac 配置maven环境变量(亲测可用)
- CSDN如何转载别人的文章
- MATLAB--对于im2bw函数的优化
- Eclipse中的Use as Source Folder的操作在Android Studio中的实现。
- 看我们如何“把大象放进冰箱里”
- java代码实现企业发放的奖金根据利润提成问题
- Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to
- python---practice2
- html 横排展示,不换行
- samba目录只对指定有权限的用户可见
- Oryx Serving 层解析