%使用重构删除复杂图像的背景
f=imread('calculator.tif');
subplot(4,2,1),imshow(f),title('原图像')
f_obr=imreconstruct(imerode(f,ones(1,71)),f);%开运算后再重构
subplot(4,2,2),imshow(f_obr),title('开运算重构后的图像')
f_o=imopen(f,ones(1,71));%开运算
subplot(4,2,3),imshow(f_o),title('开运算后的图像')
f_thr=imsubtract(f,f_obr);%顶帽后重构
subplot(4,2,4),imshow(f_thr),title('经顶帽重构后的图像')
f_th=imsubtract(f,f_o);%顶帽变换
subplot(4,2,5),imshow(f_th),title('经顶帽变换后的图像')
g_obr=imreconstruct(imerode(f_thr,ones(1,11)),f_thr);%水平线开运算后重构
subplot(4,2,5),imshow(g_obr),title('水平线开运算重构后图像')
g_obrd=imdilate(g_obr,ones(1,21));%水平线对图像膨胀
subplot(4,2,6),imshow(g_obrd),title('水平线对图像膨胀后的图像')
f2=imreconstruct(min(g_obrd,f_thr),f_thr);%最后的重构
subplot(4,2,7),imshow(f2),title('重构后的图像')