이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。
이툴박스에는이진영상에서객체의경계를찾을때사용하는함수가두개포함되어있습니다。
bwtraceboundary
함수는영상에서하나의객체의테두리상에있는모든픽셀의행좌표와열좌표를반환합니다。객체상의테두리픽셀의위치를추적을위한시작점으로지정해야합니다。
bwboundaries
함수는영상에서모든객체의테두리픽셀의행좌표와열좌표를반환합니다。
이진영상에서두함수모두0이아닌픽셀은객체에속하고값0인이픽셀은배경을구성합니다。
이예제에서는bwtraceboundary
를사용하여이진영상에서하나의객체의테두리를추적하는방법을보여줍니다。이예제는그런다음bwboundaries
를사용하여영상에서모든객체의테두리를추적합니다。
영상을읽어들인후이를표시합니다。
我= imread (“coins.png”);imshow(我)
영상을이진영상으로변환합니다。bwtraceboundary
와bwboundaries
는이진영상에서만사용할수있습니다。
BW = im2bw(我);imshow (BW)
추적하려는객체의테두리에위치한어느한픽셀의행좌표와열좌표를확인합니다。bwboundary
는이점을경계추적을위한시작위치로사용합니다。
昏暗的=大小(BW)
昏暗的=1×2246 300
坳= -90(暗(2)/ 2);行= min(找到(BW(:,坳)))
行= 27
bwtraceboundary
를호출하여지정된점에서부터경계를추적합니다。,이진영상시작점의행좌표와열좌표,첫번째스텝의방향을필수인수로지정해야합니다。이예제에서는북쪽(“N”
)을지정합니다。
= bwtraceboundary(BW,[row, col]),“N”);
원본회색조영상을표시하고,bwtraceboundary
에서반환한좌표를사용하여영상위에테두리를플로팅합니다。
imshow (I)在;情节(边界(:,2),边界(:1),‘g’,“线宽”3);
영상에있는모든동전의경계를추적하려면bwboundaries
함수를사용하십시오。기본적으로,bwboundaries
는영상에서객체안에있는객체까지포함하여모든객체의경계를찾습니다。이예제에서사용된이진영상에서는몇몇동전이검은색영역을포함하는데,bwboundaries
는이러한검은색영역을별도의객체로해석합니다。bwboundaries
가동전만추적하도록하려면imfill
을사용하여각동전의안쪽영역을채우십시오。bwboundaries
는각셀이영상의각객체의행열/좌표를포함하는셀형배열을반환합니다。
BW_filled = imfill (BW,“黑洞”);边界= bwboundaries (BW_filled);
bwboundaries
에서반환한좌표를사용하여원본회색조영상위에모든동전의테두리를플로팅합니다。
为b =边界{K};情节(b(:, 2)、b (: 1),‘g’,“线宽”3);结束
객체에따라시작점으로선택하는테두리픽셀과첫번째스텝파라미터로선택하는방향(북쪽,남쪽등)을지정할때주의가필요할수있습니다。
예를들어,어떤객체에구멍이포함되어있는데객체에서얇은부분에있는픽셀을시작픽셀로선택한경우첫스텝의방향을어떻게선택하는가에따라객체의바깥쪽테두리를추적할수도있고구멍의안쪽테두리를추적할수도있습니다。채워진객체의경우에는첫스텝파라미터로선택하는방향이비교적덜중요합니다。
설명을돕기위해다음그림에서시작픽셀이객체의얇은부분에있을때첫번째스텝이북쪽으로설정된경우와남쪽으로설정된경우에추적되는픽셀을표시했습니다。연결성은8(디폴트값)로설정되었습니다。
첫번째스텝과방향파라미터가경계추적에미치는영향