主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

둥근객체식별하기

이예제에서는경계선추적루틴인bwboundaries를사용하여원형률을기준으로객체를분류하는방법을보여줍니다。

1단계:영상읽어들이기

pills_etc.png를읽어들입니다。

RGB = imread (“pillsetc.png”);imshow (RGB)

图中包含一个坐标轴。轴包含一个image类型的对象。

2단계:영상이진화하기

bwboundaries를사용한경계선추적을준비하기위해영상을흑백으로변환합니다。

I = rgb2gray (RGB);bw = imbinarize(我);imshow (bw)

图中包含一个坐标轴。轴包含一个image类型的对象。

3단계:잡음제거하기

모폴로지함수를사용하여,원하는객체에속하지않는픽셀을제거합니다。

30개픽셀수가미만인모든객체를제거합니다。

bw = bwareaopen (bw, 30);imshow (bw)

图中包含一个坐标轴。轴包含一个image类型的对象。

펜뚜껑의간격을채웁니다。

se = strel (“磁盘”2);bw = imclose (bw, se);imshow (bw)

图中包含一个坐标轴。轴包含一个image类型的对象。

각경계로둘러싸인영역을추정하는데regionprops를사용할수있도록모든구멍을채웁니다。

bw = imfill (bw,“黑洞”);imshow (bw)

图中包含一个坐标轴。轴包含一个image类型的对象。

4단계:경계선찾기

외부경계선에만초점을둡니다。옵션‘noholes를사용하면,bwboundaries가내부윤곽선을찾는것을방지하기때문에처리속도가빨라집니다。

[B, L] = bwboundaries (bw,“noholes”);

레이블행렬을표시하고각경계를그립니다。

imshow (label2rgb (L, @jet,。5.5]))保持k = 1:长度(B)边界= B{k};情节(边界(:,2),边界(:1),' w '“线宽”, 2)结束

图中包含一个坐标轴。轴包含图像、直线等7个对象。

5단계:둥근객체확인하기

각객체의면적과둘레를측정합니다。그러한결과를기반으로,객체의원형률을나타내는단순한메트릭을만듭니다。

度规 4 π 区域 周长 2

이메트릭은원에대해서만1이고,다른모든형태에대해서는1보다작습니다。이러한구분과정은적합한임계값을설정하여조정할수있습니다。이예제에서는알약만원형으로분류하기위해임계값0.94를사용합니다。

regionprops를사용하여,모든객체의면적추정값을얻습니다。bwboundaries에서반환된레이블행렬은regionprops에서다시사용할수있습니다。

统计= regionprops (L,“区域”“重心”);阈值= 0.94;在边界上循环%k = 1:长度(B)获得标签“k”对应的(X,Y)边界坐标边界= B {k};计算一个物体周长的简单估计delta_sq = diff(边界)^ 2;周长=总和(sqrt (sum (delta_sq, 2)));%获得标签‘k’对应的面积计算面积= (k) .Area统计数据;%计算圆度度量度量= 4 *π*面积/周长^ 2;%显示结果metric_string = sprintf (' % 2.2 f '、指标);%用黑色圆圈标记阈值以上的对象如果度量>阈值质心= stats(k).质心;情节(质心(1),重心(2),“柯”);结束文本(-35年边界(1、2),边界(1,1)+ 13日metric_string,“颜色”“y”...“字形大小”14岁的“FontWeight”“大胆”结束标题([“接近1的指标表明”..."物体近似为圆形"])

图中包含一个坐标轴。标题度量接近1的轴表示对象大约是圆的,包含图像、行、文本类型的15个对象。

참고항목

|||||||

관련항목