Simulink之彩色影像的边缘检测与合成

     数字图像处理是利用计算机技术对图像进行降噪,分割,恢复,压缩的技术,图像处理领域的基本问题可以由MATLAB和Simulink提供的工具直接求解。我在这里对图像处理问题进行一个简单的介绍。

     图像处理在MATLAB下目前有两种解决办法,一种是采用MATLAB图像工具箱(Image Processing Toolbox),该方法基于MATLAB语句的函数调用与编程对图像进行处理;二是基于SiumLinK的框图方法,使用图像与影像模块集(Video and Image Processing Blockset ,VI模块集)研究图像与影像的问题。这种方法的优势是通过框图建立影像处理系统模型,现在就SiumLink方法进行讲解。

     通过viplib命令可以打开图像影像处理模块集主窗口模块,其中包含图像源子模块组(Soutces)、分析与增强模块组(Analysis&Enhancement).图像显示池(Sinks)、图文叠印模块组(Text&Graphics)、图像转换模块组(Conversions)、图像变换模块组(Transforms)、形态学模块组(Morphological Operations)和滤波器模块组(Filtering)等常用的模块组。

图像与影像读取

图像文件读入模块:支持图像包括bmp、jpg、jpeg、png、tif、tiff各类文件

多媒体文件读入模块:支持视频文件类型包括avi、MP4、wmv等,音频文件类型包括wav、wma、MP3等。利用MATLAB的mmreader()函数也可以读入多媒体文件,但值得注意的是,该函数只能一次性读入整个多媒体文件,而框图模块只需逐帧读入逐帧处理。  

  

                                                                               图像与影像处理模块集

双击Sources 得到了图像与影像读取模块集    

                                                    

图像与影像的显示与输出

                                         

     该库中模块支持各种模块输出方法,可以将影像信号存成影像文件(To Multimedia FIle),也可以返回MATLAB的工作空间,还可以利用影像播放器直接播放。

     至于其他的模块选择方式也和上面的方法一样。对于不同的图像文件通过不同的模块框图进行信号处理最终达到理想的处理效果。也可以通过文档获取技术支持。

     下面通过一个例子利用建模的方法对影像的边缘进行检测与合成,它的大致流程是:首先输入一段AVI影像→转换成灰度影像→利用Sobel、Roberts或者Canny算子提取边缘→把原始影像和识别出边界的影像自动叠加→输出。把模型建好,相关参数设置好点击start就可以看效果了。

                                                                系统的建模框图

也许你会直接调用MATLAB函数进行处理:

>> W=mmreader('barcodes.avi');
>> W1=read(W,W.NumberOFFrames);
>> W2=rgb2gray(W1);
>> W3=edge(W2,'Sobel');imtool(W3);

 

上面只是对最后一帧图像的边界进行提取,若要对整个影像进行处理,则相应的要采用循环结构。所以对于影像文件采用Simulink框图的形式更合适。

 

 

 

posted @ 2013-06-10 20:25  杠上开花  阅读(813)  评论(0编辑  收藏  举报