MATLAB 时不时出现的小错误

MATLAB 时不时出现的小错误

03/07/2019
写迭代法求阈值时,稍微改了一下代码,对rgb分开求每个通道的阈值
出现一点问题

 tktmp=uint8((z1+z2)/2);  
    if  abs(tktmp-tk)<=10  
        bcal=0;  
    else  
        tk=tktmp;  
    end  

这里的 if在tktmp=145,tk=191(uint8)时不能进入bcal=0

在直接求灰度图的时候没有出现这个问题

单步调试,发现 q=abs(tktmp-tk)=0,但是此时
在这里插入图片描述
试着 tktmp=uint8((z1+z2)/2) 去掉了uint8,tk一开始赋值也赋的double,相当于tktmp和tk都是double型,
然后没有问题了。

可能是因为两个数类型不同,但是uint8类型相减也报错,
很奇怪为什么会出现这种情况。

发布了2 篇原创文章 · 获赞 0 · 访问量 92

猜你喜欢

转载自blog.csdn.net/qq_43208092/article/details/94584744