%将原始图像和三层雪花图像依次进行合成
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飞雪场景合成
|