小さな穴の検知
조회 수: 4 (최근 30일)
이전 댓글 표시
直径2ミリ程度の、複数の穴が空いている、長方形の黒い板があります。
下に白い紙などを敷き、穴の数を検知するプログラムを作成したいと考えております。
直径が小さいため、半径を指定する関数、では検知できませんでした。
どのような関数を使うと検知することができるか教えていただけますと助かります。
よろしくお願いします。
댓글 수: 0
채택된 답변
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(:)) % 最大のラベル番号 = トータルの穴の数
で穴の数を出力できます。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 イメージ タイプの変換에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!