您的位置:首页 > 编程语言 > MATLAB

MATLAB图像函数 块和邻域的处理

2015-07-25 21:33 639 查看
1、Poly2mask-----------------------------------------------------将感兴趣的区域转换成掩膜

bw=poly2mask(x,y,m,n)-------------讲一个ROI多边形转黄成二值图像的掩膜区域,向量x y分别表示ROI多边形个顶点x y的坐标,m n为掩膜的区域、

<span style="font-size:18px;">x=[4 10 10 4 4];
y=[4 4 10 10 4];
mask=poly2mask(x,y,12,12);
</span>


在图像中建立个掩膜、

<span style="font-size:18px;">x=[63 186 54 190 63];
y=[60 60 209 204 60];
bw=poly2mask(x,y,256.256);
imshsow(bw);
plot(x,y,'r',‘LineWidth','2);
</span>


随机产生渔区计算掩膜

<span style="font-size:18px;">x=256*rand(1,4);
y=256*rand(1,4);
x(end+1)=x(1);
y(end+1)=y(1);
bw=poly2mask(x,y,256,256);
imshow(bw);
hold on
plot(x,y,'r','LineWidth',2);
hold off</span>


2、roicolor------------------------------------------------------------------根据颜色选择感兴趣的区域

bw=roicolor(A,low,high) -----------------按指定的颜色范围(low high)选择ROI,返回图像中这个区域的图像

<span style="font-size:18px;">I=imread('lena.jpg');
bw=roicolor(I,128,255);
imshow(I);
figure;
imshow(bw);
</span>


3、roifill-------------------------------------------------------------------------在图像中对指定区域进行平滑插补

J=roifill(I,c,r) ------------------------------------------------------c r指的是多边形x y的坐标

J=roifill(I,bw)-------------------------------------填充有掩膜图像bw指定的区域

<span style="font-size:18px;">I=imread('lena.jpg');
c=[222 272 300 270 221 194];
r=[21 21 75 121 121 75];
J=roifill(I,c,r);
imshow(I);
figure;
imshow(J);</span>


4、roifilt2--------------------------------------------------对区域进行二维滤波

J=roifilt(h,I,bw)---------------------使用滤波器h对图像I中由掩膜图像bw选中的区域

</pre><pre name="code" class="plain"><span style="font-size:18px;">I=imread('lena.jpg');
c=[222 272 300 270 221 194];
r=[21 21 75 121 121 75];</span>
bw=roifill(I,c,r);

J=roifilt2(H,I,bw);

imshow(J);

5、roipoly------------------------------------------------------------------选择感兴趣的区域

bw=roipoly(I,c,r)

bw=roipoly-------------------------------用鼠标选取

6、bestblk---------------------------------------------------------------------为块处理选取合适的大小

size=bestblk([m n],k); k 表示块的长度和宽度的最大值

7、blkproc-----------------------------------------------------------------区别图像的块处理

b=blkproc(A,[m n],fun) -----------------------------将图像中A每个不同的m*n块应用导函数fuN中,

I=imread('lena.jpg');

fun=@dcr2;

J=blkproc(I,[8 8],fun);

imshow(J);

<span style="font-size:18px;">I=imread('lena.jpg');
fun=@(x) std2(x)*ones(size(x));
I1=blkproc(I,[32 32],fun);
imshow(I1);</span>


8、nfilter---------------------------------------------------------------------通用滑动邻域处理

B=nlfilter(I,[m n],fun);

<span style="font-size:18px;">I=imread('lena.jpg'):
fun=@(x)median(x(:));
B=nlfilter(I,[3 3],fun);
imshow(B)</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: