1.多边形区域选择函数roipoly()
调用格式:BW=roipoly(I,C.R);
BW=roipoly(I);
其中,I为目标图像矩阵,C、R分别为多边形顶点的横坐标、纵坐标向量,维数相同,用于确定一个多边形的顶点位置。例如C=[20 30
40],R=[100 75
110],则构成一个三角形,三个顶点的坐标分别为(20,100)、(30,75)、(40,110)。roipoly()命令返回一个二值图像到输出矩阵BW中,位于所选择的多边形区域内的像素点值为1(白色),多边形区域外的像素点为0(黑色)。
若命令中不使用C、R参数,则打开图像显示窗口,用鼠标左键选择多边形各个顶点坐标位置,选择完成后单击鼠标右键或者以回车键结束,在新窗口中显示二值图像。
2.区域滤波函数roifilt2()
调用格式:J=roifilt2(H,I,BW);
J=roifilt2(I,BW,FUN);
J=roifilt2(I,BW,FUN,P1,P2,...);
其中,H为预定义滤波器生成的计算模块,I为目标图像数据矩阵,BW为二值图像,可以由roipoly()函数生成,FUN为指定的滤波函数名,P1,P2,...为函数FUN的可选参数。roifilt2()函数对二值图像BW中像素值为1(白色)的区域进行滤波处理,而忽略像素值为0的区域,滤波计算结果返回到输出矩阵J中。
如:
I=imread('1.jpg');
c=[222 272 300 270 221 194];
r=[21 21 75 121 121 75];
BW=roipoly(I,c,r);
H=fspecial('unsharp');
J=roifilt2(H,I,BW);
imshow(I);
figure;
imshow(J);