bwtraceboundary(MATLAB图像函数以及应用边界问题「终于解决」)

发布时间:2025-12-10 19:34:58 浏览次数:4

MATLAB图像函数以及应用边界问题「终于解决」-

MATLAB图像函数以及应用(第六章)边界问题「终于解决」1、bwboundaries  二值图像区域边界追踪、、功能:在二值图像中进行区域边界的追踪,采用区域跟踪的算法,给出二值图像中所有的外边界和内边界用法:[BL]=bwboundaries(bw,conn,option); B输出为P*1de元胞矩阵,P为目标和洞的个数,B的每个元宝元素均是Q*2de矩阵,矩阵的每一行包含像素点的行列坐标。L为表示矩阵,用于标示二值

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>

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

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)

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

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477