小さな穴の検知

9 visualizaciones (últimos 30 días)
Ibuki Takahashi
Ibuki Takahashi el 14 de Jun. de 2021
Comentada: Shunichi Kusano el 14 de Jun. de 2021
直径2ミリ程度の、複数の穴が空いている、長方形の黒い板があります。
下に白い紙などを敷き、穴の数を検知するプログラムを作成したいと考えております。
直径が小さいため、半径を指定する関数、では検知できませんでした。
どのような関数を使うと検知することができるか教えていただけますと助かります。
よろしくお願いします。

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!