开运算是对图像先膨胀后腐蚀。用imopen函数可以进行开运算。[大谦MATLAB,dqmatlab点com]
用imopen函数将图像上的小对象清除。
将图像读入MATLAB工作空间中并进行显示。
code.matlab
>> I=imread('Car.bmp');
>> imshow(I)
生成图3-6所示的图像。
创建半径为5像素的圆形结构元素。
code.matlab
>> se=strel('disk',5);
使用结构元素,通过开运算将半径小于5像素的对象清除。
code.matlab
>> I_opened=imopen(I,se);
>> figure, imshow(I_opened,[])
生成图3-7所示的图像。
图3-6 原图像 图3-7 开运算以后的图像
用bwareaopen函数可以进行二值图像的区域开运算,删除小对象。
读入图像并进行显示。
code.matlab
>> originalBW=imread('text.png');
>> imshow(originalBW)
生成图3-8所示的图像。然后删除所有小于50像素的对象。注意,原图中有些字母不见了。
code.matlab
>> bwAreaOpenBW=bwareaopen(originalBW,50);
>> figure, imshow(bwAreaOpenBW)
生成图3-9所示的图像。
图3-8 原图像 图3-9 区域开运算后的图像