小さな穴の検知

조회 수: 4 (최근 30일)
Ibuki Takahashi
Ibuki Takahashi 2021년 6월 14일
댓글: Shunichi Kusano 2021년 6월 14일
直径2ミリ程度の、複数の穴が空いている、長方形の黒い板があります。
下に白い紙などを敷き、穴の数を検知するプログラムを作成したいと考えております。
直径が小さいため、半径を指定する関数、では検知できませんでした。
どのような関数を使うと検知することができるか教えていただけますと助かります。
よろしくお願いします。

채택된 답변

Shunichi Kusano
Shunichi Kusano 2021년 6월 14일
背景が黒で、見つけたい穴は白色に見えるということになると思うので、シンプルに2値化して、検出できた領域の数を数えるという方法をまずはお試しください。
2値化は
img = imread('test.png'); % 画像データの読込
img = rgb2gray(img); % グレースケール画像に変換
bw = img > 10; % 2値化
のような演算でもできますし、imbinarize関数も効くかもしれません。
しきい値が不適切だと誤検出や穴が隠れちゃったりすると思うので、そのあたりの調整は必要だと思います。できたbwが穴の位置が白、その他が黒になっていれば
lbl = bwlabel(bw); % 2値画像をラベル画像に変換(白い領域それぞれに1から番号がつく)
num = max(lbl(:)) % 最大のラベル番号 = トータルの穴の数
で穴の数を出力できます。
  댓글 수: 2
Ibuki Takahashi
Ibuki Takahashi 2021년 6월 14일
このコードでばっちりできました。
ありがとうございました。
Shunichi Kusano
Shunichi Kusano 2021년 6월 14일
よかったです。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!