| 
				 %将原始图像和三层雪花图像依次进行合成 
        img = sub_mixImage(img,maskImageLevelOne); 
        img = sub_mixImage(img,maskImageLevelTwo); 
        img = sub_mixImage(img,maskImageLevelThree); 
  
        handles.finalImage = img; 
        axes(handles.axes_showimage); %激活axes_showimage对象,并调用imshow在该对象中显示图像 
        imshow(handles.finalImage); 
  
        guidata(hObject,handles); %进行handles变量的更新 
         
        set(handles.FileSave,'Enable','On');%使【保存】菜单可用 
    else%如果尚未成功打开原始图像,那么显示出错提示窗口 
        msgbox('请先选择一个图像文件','出错提示','warn'); 
end 
  
四、结语 
采用Matlab7.0(release R 14)做为开发工具,在Windows XP/SP2环境下编译通过了上述代码。图2是对一游戏截图进行飞雪场景合成的实验结果,可以看出,模拟的降雪具有视觉上的真实感,并且和原始图像显得很协调。由于本程序是交互式的,用户可以通过对每一层雪花图像的输入参数进行调整,以获得丰富多样的飞雪场景合成图像。值得指出的是,由于一般下雪天所拍摄到的场景都相对比较暗,因此,如果原始图像比较亮的话,为了得到更好的合成效果,应该对原始图像进行暗化预处理,关于这点可以参考相关的图像处理文献,此处就不再赘述。  
                                 a  原始图像                                  
 
  
b  合成图像 
图2飞雪场景合成 			
				 |