對於某些特殊的圖像處理,我們不希望將整張圖都進行圖像處理。這個時候就用到了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])%修改圖形背景顏色的設置 figure subplot(121),imshow(BW1); %顯示處理結果 subplot(122),imshow(BW); %顯示ROI區域 figure subplot(121),imshow(I1);%顯示填充效果 subplot(122),imshow(I2); %顯示區域濾波效果
效果圖如下: