对于某些特殊的图像处理,我们不希望将整张图都进行图像处理。这个时候就用到了roicolor、roipoly、roifill、fspecial、roifilt2函数。代码实现过程如下:
close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量clear all;clc;I=imread('pout.tif'); %输入原图像BW1=roicolor(I,55,100); %基于灰度图像ROI区域选取c=[87 171 201 165 79 32 87];r=[133 133 205 259 259 209 133];%定义ROI顶点位置BW=roipoly(I,c,r); %根据c和r选择ROI区域I1=roifill(I,BW); %根据生成BW掩膜图像进行区域填充h=fspecial('motion',20,45); %创建motion滤波器并说明参数I2=roifilt2(h,I,BW); %进行区域滤波set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置figuresubplot(121),imshow(BW1); %显示处理结果subplot(122),imshow(BW); %显示ROI区域figuresubplot(121),imshow(I1);%显示填充效果subplot(122),imshow(I2); %显示区域滤波效果
效果图如下: