matlab 中 bwboundaries 函数 的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 中 bwboundaries 函数 的用法相关的知识,希望对你有一定的参考价值。

谁知道matlab中 bwboundaries 的用法,帮下小弟,小弟不胜感激.越详细越好.

参考技术A 格式:B = bwboundaries(BW,conn)(基本格式)
作用:获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应于对象轮廓像素的坐标。

help 文档例子
I = imread('rice.png');%读入图像
BW = im2bw(I, graythresh(I));%转换成2进制图像
[B,L] = bwboundaries(BW,'noholes');%寻找边缘,不包括孔
imshow(label2rgb(L, @jet, [.5 .5 .5]))%显示图像
hold on
for k = 1:length(B)
boundary = Bk;
plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end%整个循环表示的是描边本回答被提问者和网友采纳

MATLAB应用实战系列(四十五)-matlab任意图形轮廓坐标提取含源代码

细心的伙伴不难发现上图的每个图形外面都画了一圈黑色虚线,不错,这些虚线就是根据图形轮廓提取的图像坐标绘制的。

之前有伙伴在咱们的QQ交流群中询问有关图像轮廓坐标提取的问题,今天就给大家念叨念叨。

今天给大家介绍两种提取轮廓坐标的方法。处理过程如下:读取想要处理的图像,将图像二值化,再通过图像边缘坐标提取函数直接进行提取即可。本文介绍两个函数涉及轮廓坐标提取的函数:

① bwboundaries,功能:提取图像的边界位置

clc;clear;close all;I = imread(\'bird.jpg\'); % 读取目标图像% RGB到二值图转换if(size(I,3) == 3)    IG = rgb2gray(I);    bw = imbinarize(IG); % 二值化elseif (islogical(I))    bw = I;      else    bw = imbinarize(I); % 二值化end
% 法一bw = imfill(~bw,\'holes\'); bound = bwboundaries(bw,8,\'noholes\');x = bound{1}(:,2);

以上是关于matlab 中 bwboundaries 函数 的用法的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中,怎么把图片中的图像轮廓坐标找出来?

MATLAB应用实战系列(四十五)-matlab任意图形轮廓坐标提取含源代码

如何用matlab实现对边缘检测后的图像的边缘细化和曲线拟合?

用matlab对一张圆的图像轮廓提取后,知道了圆的边界,怎么确定边界上点的像素坐标?高分悬赏啊啊啊

Matlab中函数句柄总结复盘

matlab 中如何打开文件