MATLAB:图像选取局部区域滤波(roicolor、roipoly、roifill、fspecial、roifilt2函数)
对于某些特殊的图像处理,我们不希望将整张图都进行图像处理。这个时候就用到了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); %显示区域滤波效果
效果图如下:
本文来自博客园,作者:橙子牛奶糖(陈文燕),转载请注明原文链接:https://www.cnblogs.com/chenwenyan/p/6836786.html