2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MATLAB图像函数以及应用(第六章)边界问题

MATLAB图像函数以及应用(第六章)边界问题

时间:2022-02-08 00:25:20

相关推荐

MATLAB图像函数以及应用(第六章)边界问题

1、bwboundaries 二值图像区域边界追踪、、

功能:在二值图像中进行区域边界的追踪,采用区域跟踪的算法,给出二值图像中所有的外边界和内边界

用法:

[B L]=bwboundaries(bw,conn,option); B输出为P *1de 元胞矩阵,P为目标和洞的个数,B的每个元宝元素均是Q*2de 矩阵,矩阵的每一行包含像素点的行列坐标。

L为表示矩阵,用于标示二值图像中被划分边界的区域,包含目标和洞。

bw为二值图像,conn为搜索的联通方法 默认八联通,option表示搜索的方包含‘holes(内外边界) 和 noholes(外边界);

<span style="font-size:18px;"><span style="font-size:18px;">I=imread('rice.jpg');Bw=im2bw(I,graythresh(I));[B L]=bwboundaries(Bw,'noholes');%L表示划分的区域imshow(label2rgb(L,@jet,[0.5 0.5 0.5]);hold onfor k=1:length(B)boundary=b{k};plot(boundary(:,2),boundary(:,1),’w','LineWidth',2);</span></span>

2、bwtraceboundary(bw,p,fstep,conn)函数

B=bwtraceboundary(bw,p,fstep,conn)

作用在二值图像中进行目标的追踪,采用基于曲线追踪的算法,按指定的起始点和方向进行搜索,最后返回起始点。

bw表示二值图像,p表示追踪的起点,fstep表示方向,(N S E W )四大方向 conn表示按照几连通区域来追踪

4或者8连通区域。

I=imread('lena.jpg');bw=im2bw(I,0.6);figure;imshow(bw);s=size(bw);col=round(s(2)/2)-90;row=find(bw(:,col),1);contour=bwtraceboundary(bw,[row col],'W',4);hold on;plot(contour(:,2),contour(:,1),'r','LineWidth',2);

3、edge函数 寻找灰度图像的边界

作用寻找灰度图像的边界

bw=edge(I);

例子:

I=imread('lena.jpg');imshow(I);bw1=edge(I);figure;imshow(bw1);bw2=edge(I,'sobel');figure;imshow(bw2);bw3=edge(I,'prewitt');figure;imshow(bw3);bw4=edge(I,'roberts');figure;imshow(bw4);bw5=edge(I,'log');figure;imshow(bw5);bw6=edge(I,'zerocross');figure;imshow(bw6);bw7=edge(I,'canny');figure;imshow(bw7);

I=imread('lena.jpg');imshow(I);bw=edge(I,'roberts');figure;imshow(bw);bw1=edge(I,'roberts',0.05);figure;imshow(bw1);bw2=edge(I,'roberts',0.3);figure;imshow(bw2);bw3=edge(I,'roberts',0.7);figure;imshow(bw3);

4、entropy 计算灰度图像的熵

E=entropy(I);

局部熵

J=entropyfilt(I) 计算灰度图像中的局部熵,J中的每一个像素为输入图像I中对应元素9*9邻域的熵值

5、graycomatrix 灰度共生矩阵

glcm=graycomatrix(I) 从图像I中建立灰度共生矩阵

stats=graycoprops(glcm,properties) 获取灰度共生矩阵glcm中指定的属性的状态。

字符串properties表示属性,取值可以为 contrast correlation energy homogeneity.

I=imread('lena.jpg');glcm=graycomatrix(I);stats=graycoprops(I,{'contrast','homogeneity'})

6、J=rangefilt(I) 计算图像的局部范围

J=rangefilt(I) 计算图像I的局部范围,返回矩阵J,输出矩阵J和I具有相同的维数,j中每一个像素的值为输入图像I中对应元素3*3邻域的范围(最大-最小)

<span style="font-size:18px;">I=imread('lena.jpg');J=rangefilt(I);imshow(J)</span>

7、

<span style="font-size:18px;">I=imread('lena.jpg');J=stdfilt(I);imshow(J)</span>

stdfilt 计算图像 的局部标准差

J=stdfilt(I) 计算图像的局部标准差,返回矩阵J 计算图像每个元素 3*3邻域内的标准差

8、corr2 计算两个矩阵的互相关系数

r=corr2(A,B) 计算矩阵A B 的互相关系数

公式

例子:

A=[1 3 4;6 3 7;3 5 7];B=[2 6 8;3 2 1;3 8 9];r=corr2(A,B)

9、imcontour 创建图像的等高线

创建图像的等高线 跟地图的等高线类似 相同像素的用线表示出来

imcontour(I) 绘制图像I的等高线,自动的进行坐标的设置,使输出图像的方向与外观与原始图像吻合。

imcontour(I,n) 绘制图像I的n个等高线,自动的进行坐标的设置,使输出图像的方向与外观与原始图像吻合。

I=imread('lena.jpg');imshow(I);figure;imcontour(I,3)

10、imhist 创建图像的直方图

显示图像的直方图,表示图像中每一个灰度级与灰度级出现的频率对应关系,就是计算某个灰度级像素的个数,

imhist(I) 默认灰度级是256

imhist(I,n) n表示灰度级

[ counts x]=imhist(I,200)

表示直方图像素的个数,以及灰度等级向量

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。