MATLAB错误:输入图像可能不包含NaN

时间:2017-06-02 09:41:42

标签: matlab image-processing

我正在MATLAB中为我的学期项目制作交通标志检测和识别程序。到目前为止,我已经成功地完成了每一步。

图像>标准化图像>缩放&增强图像>>阈值>>形态学操作

我使用以下公式对图像进行了标准化:
NORM_COLOR = COLOR/sqrt(RED^2 + GREEN^2 + BLUE^2);

我用sqrt(3)因子缩放了我的图像,并通过逐元素乘法加强到归一化图像。

在阈值处理中,我将所有三个通道(RGB)归零,此条件为真:

  

RED< 0.34或绿色> 0.2621

这一切都给了我一张图片,其中所有颜色(红色除外)都是黑色的。这是我得到的图像: Image

现在,当我进行像imerode这样的形态学操作时,它给了我这个错误:

  

使用morphmex时出错左输入图像可能不包含NaN。

     

morphop中的错误(第69行)
      B = morphmex(mex_method,B,double(getnhood(se(k))),getheight(se(k)),unpacked_M);

     

imerode中的错误(第123行)
B =   morphop(A,SE, '侵蚀',mfilename,varargin {:});

     

anas中的错误(第64行)
img_seg = imerode(img,se);

这是我为侵蚀写的代码:

se = strel('disk', 2);
img_seg = imerode(img,se);
imshow(img_seg);

任何人都可以帮我解决这个问题吗?谢谢你:)

1 个答案:

答案 0 :(得分:1)

尽量避免被零除:

NORM_COLOR = COLOR/sqrt(RED^2 + GREEN^2 + BLUE^2+0.0000001);