システム開発

OpenCVを使ったブロブ検知の概要

ブロブとは塊を意味し、似た特徴を持った画像内の領域のことを指します。

OpenCVを利用すればこのブロブを簡単に検知することができます。

この記事では、そんなブロブの検知方法について具体的に紹介していきます。

  • Open CVの活用方法が知りたい方
  • ブロブ検知の方法を知りたい方

これらに当てはまる方におすすめの記事となっています。これを読めばブロブ検知の方法が分かりますよ。

ブロブとは?

ブロブとは塊のことです。例えば、白い紙に黒墨を溢して残った塊ごとに1つブロブとして扱われます。

Open CVを使ったブロブ検知の利用方法

ブロブ検知を利用して画像にあるブロブを見つけ、カウントします。

C++ 言語でインストールする手順:

using namespace cv;

// Read image

Mat im = imread( “blob.jpg”, IMREAD_GRAYSCALE );

// Set up the detector with default parameters.

SimpleBlobDetector detector;

// Detect blobs.

std::vector<KeyPoint> keypoints;

detector.detect( im, keypoints);

// Draw detected blobs as red circles.

// DrawMatchesFlags::DRAW_RICH_KEYPOINTS flag ensures the size of the circle corresponds to the size of blob

Mat im_with_keypoints;

drawKeypoints( im, keypoints, im_with_keypoints, Scalar(0,0,255), DrawMatchesFlags::DRAW_RICH_KEYPOINTS );

// Show blobs

imshow(“keypoints”, im_with_keypoints );

waitKey(0);

色彩、形、サイズでブロブを検知する

SimpleBlobDetectorのパラメターを設定すれば、絞り込みたいブロブを検知する事が出来ます。

SimpleBlobDetectorのパラメターを設定する方法

SimpleBlobDetector::Params params;

閾値でフィルター

// 閾値の min, max値を定める 

params.minThreshold = 10;

params.maxThreshold = 200;

サイズでフィルター

params.filterByArea = true;

params.minArea = 1500;

params.maxArea = 5000;

円形度(circularity)でフィルター

params.filterByCircularity = true;

params.minCircularity = 0.1;

円形度(circularity)の数式:円形度 = 4πS / L^2

S:面積(画像数)
L:周囲長
0 < circulary < 1.
円形の近い形であればあるほど循環が1に近くなります。

凸面(convexity)でフィルター

params.filterByConvexity = true;

params.minConvexity = 0.87;

凸面 (convexity)の数式:(ブロブの面積) / (凸面の面積)

0 < convexity < 1.

Inertia Ratioでフィルター

params.filterByInertia = True

params.minInertiaRatio = 0.1

Inertia Ratioは形態の伸び率を意味します。

円形のInertia Ratio = 1
楕円形のInertia Ratio 0< Inertia Ratio< 1 
直線のInertia Ratio = 0

まとめ

いかがでしたか。本日はOpenCVを利用したブロブ検知の方法を紹介していきました。

ブロブ検知で個数のカウントや位置を検知することができましたね。

dehaでは、5年ほど前から、ベトナムオフショア開発を行っています。

本日紹介したOpenCVに関して詳しく聞きたい方や、ベトナムでオフショア開発を行う際の費用が知りたい方などはぜひご気軽にお問い合わせください。

お問い合わせはこちらから

Van Nguyen

Recent Posts

オフショア開発におけるセキュリティ課題と対策

オフショア開発は、コスト削減や専門的なスキルの活用を目的として、多くの企業が採用している手法です。 しかし、オフショア開発にはセキュリティに関する特有の課題が伴います。 この記事では、オフショア開発におけるセキュリティ課題を明確にし、それに対する効果的な対策を検討します。 オフショア開発に興味がある方 オフショア開発のセキュリティ対策について知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発を行う際に気をつけるべきセキュリティ問題とその対策方法が丸わかりですよ。 (more…)

4 days ago

2025年のデータセンター市場&クラウド市場シェアと動向【世界及び日本国内】

2025年、データセンター市場とクラウド市場はさらなる進化を遂げています。デジタル化の加速や生成AIなどの新技術の普及により、データ処理能力の需要が急増。 これに伴い、世界および日本国内での市場規模とプレイヤーの動きが注目されています。 この記事では、最新の市場データとトレンドをもとに、データセンターおよびクラウド市場の現状と今後の展望を詳しく解説します。 データセンターおよびクラウド市場の現状や展望が知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば国内の2025年最新のデータセンター市場やクラウド市場の動向だけでなく、世界の動向まで丸わかりですよ。 (more…)

2 weeks ago

AI-OCRとは?OCRとの違い、種類、導入メリット

近年、業務のデジタル化が進む中、手書きや印刷された文書を効率的にデータ化する技術が注目を集めています。 その中でも、AI(人工知能)を活用したOCR(光学文字認識)技術であるAI-OCRは、従来のOCRを大きく進化させ、多様な業界で導入が進んでいます。 この記事では、AI-OCRとは何か、従来のOCR技術との違い、その種類や具体的な導入メリットについて詳しく解説します。 AI-OCRが気になっている方AIをビジネスに取り入れたい方社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAI-OCRがどのように業務効率を向上させ、現代のビジネスにどのような価値をもたらすのかがわかりますよ。 (more…)

2 weeks ago

システム開発の外注を失敗しないためコツ5選|オフショア開発

システム開発の外注は、効率的なソリューションを提供し、コストを節約するために非常に有益な方法です。 しかし、外注のプロジェクトは失敗する可能性もあり、それを防ぐためにはいくつかの重要なコツがあります。 そこでこの記事では、システム開発の外注プロジェクトを成功させるための5つの重要なコツを説明します。 システム開発の外注をしたい方 社内のIT人材が不足している方 オフショア開発を検討している方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム開発を成功させるための方法が丸わかりですよ。 (more…)

2 weeks ago

【オフショア開発】アプリ開発のポイント【失敗しない開発会社選びとは?】

コスト削減や、IT人材確保の面で注目されるオフショア開発。 実はアプリ開発にももってこいの開発手法なのです。 「人件費は下がったとしても、他の面で費用がかかったりしないか?トータルコストは本当に下がるのか?」 「コストを抑えた結果、質の悪いアプリを納品されないか?」 など不安を抱えている方向けに、この記事ではアプリをオフショア開発する際のポイントを紹介していきます。 オフショア開発に興味がある方 アプリ開発を行いたい方 社内のIT人材が不足している方 オフショア開発の予算が知りたい方 これらに当てはまる方におすすめの記事となってこれを読めば、オフショア開発初心者の人でも会社選びを失敗することなく、アプリ開発を行うポイントが丸わかりですよ。 (more…)

2 weeks ago

OCRとは?手書き文字をデジタル化し、業務効率向上

近年、企業のデジタルトランスフォーメーション(DX)が進む中で、手書き文書をデジタル化する技術であるOCR(Optical Character Recognition)が注目を集めています。 この記事では、そんなOCRの基本的な仕組みやその活用方法、さらに業務効率化のメリットについて解説します。 OCRに興味がある方 デジタルトランスフォーメーション(DX)を進めている方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばOCRがどのような技術なのかがわかるのはもちろん、具体的な活用方法まで丸わかりですよ。 (more…)

2 weeks ago