システム開発

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

オフショア開発におけるテスターの役割?QAとQCの違い

オフショア開発では異なる国や地域のチームと開発を行うため、コニュニケーションロスによる品質力の低下が問題視されがちです。 そこでテスターという存在が質を確保する上で重要な役割を果たします。この記事ではそんなオフショア開発におけるテスターの役割について解説していきます。 オフショア開発に興味がある方 開発効率を上げたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発におけるテスターがどんなメリットをもたらすのかや、QAとQCの違いについても丸わかりですよ。 (more…)

7 days ago

生成AI活用で社内業務システム効率化のメリットや注意点

企業が競争力を維持し、業務効率を高めるために、AI(人工知能)の導入はますます重要になっています。 特に、生成AIを活用した社内業務システムの効率化は、企業の成長を促進する大きな要因となり得ます。 この記事では、生成AIを導入することによるメリットや、導入時に注意すべき点について詳しく解説します。 生成AIを活用して業務効率化を図りたい方 社内のIT人材が不足している方 生成AIの使い方を知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めば生成AI活用を活用するメリットや気をつけるべきことが丸わかりですよ。 (more…)

2 weeks ago

【2024年版】ベトナムでERPシステム市場の現在・展望

ベトナムにおけるERP(エンタープライズ・リソース・プランニング)システム市場は、近年急速な成長を遂げています。 この急速な市場拡大は、デジタルトランスフォーメーションの推進、クラウドERPの普及、中小企業のニーズの高まりなど、さまざまな要因によって支えられています。 この記事では、ベトナムでのERP市場の現状と今後の展望について詳しく見ていきます。 ベトナムでのERP市場の現状について知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばERPシステム市場 の今後の展望が丸わかりですよ。 (more…)

2 weeks ago

AI技術を活用してデータドリブン経営を支援

データドリブン経営が成功するためには、膨大なデータを効果的に分析し、価値あるインサイトを引き出すことが重要です。 AI技術は、これを実現する強力なツールとして注目されています。 この記事では、AIがデータドリブン経営を支援する具体的な方法を紹介します。 データドリブン経営に興味がある方 データドリブン経営×AIの方法を知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAIを活用したデータドリブン経営の方法が丸わかりですよ。 (more…)

3 weeks ago

データドリブン経営とは?DX推進でメリット、成功ポイントや注意点

デジタル変革(DX)が進む現代、企業経営において「データドリブン経営」の重要性がますます高まっています。 データドリブン経営とは、企業の意思決定や戦略立案をデータに基づいて行う経営手法です。 この記事では、データドリブン経営の概要、DX推進におけるメリット、成功のためのポイント、そして注意すべき点について解説します。 データドリブン経営に興味がある方 DX化をすすめている企業の方々 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばデータドリブン経営がどういうものなのかや、データドリブン経営を成功させるためのポイントが丸わかりですよ。 (more…)

3 weeks ago

【2024年版】ベトナムのDX市場の状況と動向

デジタルトランスフォーメーション(DX)は、企業や国の競争力を左右する重要な要素となっています。 特にベトナムは、急速な経済成長とテクノロジーの革新により、東南アジアの中で注目される存在です。 この記事では、そんなベトナムのDX市場の現状と今後の動向について、具体的なデータとトレンドを基に詳しく探っていきます。 ベトナムDX市場に興味がある方 社内のIT人材が不足している方 オフショア開発に興味がある方 これらに当てはまる方におすすめの記事となっています。これを読めばベトナムのDX市場の状況やトレンドについて丸わかりですよ。 (more…)

4 weeks ago