システム開発

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

【不動産DX】不動産業界に最適なオークション形式とシステム選定のポイント

不動産業界は、これまで「対面営業」「紙契約」「属人的な価格交渉」といったアナログな手法が中心でした。 しかし近年、デジタル技術の進化と顧客行動の変化により、業界全体でDX(デジタルトランスフォーメーション)が加速しています。 この記事ではそんな不動産業界のDX化において、注目されている「オークション形式」についてどんな特徴があるのかや、システムを選定する際のポイントについて見ていきたいと思います。 DX化をすすめたい企業の方 不動産業界の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば不動産業界におけるオークション形式のポイントや注意点が丸わかりですよ。 不動産DXが求められる背景とオークションモデルの可能性 国土交通省の電子契約解禁やオンライン重要事項説明の普及により、売買・賃貸のプロセスは大きく変わりました。さらに、ポータルサイト依存型の集客モデルから脱却し、より収益性の高い販売手法を模索する動きが強まっています。 そこで注目されているのが「オークション形式」です。 従来の不動産取引は「売主が価格を提示し、買主が交渉する」という相対交渉モデルが一般的でした。 しかし、オークションモデルでは市場原理をより明確に反映させることが可能です。需要が集中するエリアや希少物件では価格が自然に上昇し、売主にとっては最大利益を得られる可能性があります。 また、オークション形式は透明性の向上にも寄与します。 価格決定のプロセスが明確になり、「なぜこの価格になったのか」という説明責任を果たしやすくなります。 これはコンプライアンス強化が求められる現代において大きな利点です。…

1 day ago

2026年のAIエージェント トレンド【Googleの調査】

2026年、AI活用は新たなフェーズへと突入します。これまでの「生成AIを使う」段階から、「AIエージェントが業務を遂行する」段階へと進化しています。 Google Cloudが発表したレポート『AI agent trends 2026』では、企業活動におけるAIの中心がAgentic AI(エージェント型AI)へ移行すると指摘しています。 AIエージェントとは、単に質問に答える存在ではありません。目標を理解し、計画を立て、複数のシステムを横断しながら実行まで行う「行動するAI」です。 この記事では、Googleの調査をもとに、2026年を形づくる5つのAIエージェントトレンドを詳しく解説します。 AIエージェントは何か知りたい方 業務効率を上げたい方 これらに当てはまる方におすすめの数となっています。これを読めばAIエージェントのトレンドがわかるのはもちろん、利用のポイントもわかりますよ。 すべての従業員にAIエージェントがつく時代(Agents for Every…

2 days ago

3層品質保証で実現する安心のITアウトソーシング体制

グローバル市場におけるITアウトソーシングでは、品質保証は単なる最終テスト工程ではありません。 品質は「工程の最後で確認するもの」ではなく、「開発の初期段階から設計され、統制されるべき経営基盤」です。  従来型のQAがリリース直前のテストに依存するのに対し、DEHA SOLUTIONSではTQA・PQA・SQAの3層構造により、技術・プロセス・サービス全体を横断的に管理しています。 これは単なる品質向上施策ではなく、リスクコントロールと持続的成長を実現するためのガバナンス設計です。  (more…)

6 days ago

システム開発におけるPMの役割を徹底解説|失敗や納期遅延を防ぐポイント

システム開発プロジェクトにおいて、成功と失敗を分ける最大の要因は「PM(プロジェクトマネージャー)」の力量だと言っても過言ではありません。 技術力の高いエンジニアが揃っていても、要件が曖昧だったり、スケジュールが破綻したり、関係者間の認識がずれたりすれば、プロジェクトは簡単に炎上します。 特に近年は、アジャイル開発やハイブリッド型開発など手法の多様化、オフショア開発の増加、DX推進によるスピード要求の高まりなど、PMに求められる能力はますます高度化しています。 この記事では、そんなシステム開発におけるPMの役割を体系的に整理し、失敗や納期遅延を防ぐための実践的なポイントを徹底解説します。 システム開発をしたい方 システム開発を効率よく行いたい方 社内にIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム開発におけるPMの役割がわかるのはもちろん、失敗しないためのポイントも丸わかりですよ。 PMとは何か?システム開発における本質的な役割 システム開発におけるPM(プロジェクトマネージャー)は、単なる進捗管理者ではありません。 PMの本質的な役割は、「プロジェクトを成功に導くための総責任者」であることです。 プロジェクトには必ず「QCD(品質・コスト・納期)」という制約があります。さらに、近年では「スコープ(範囲)」や「リスク」、「ステークホルダー満足度」も重要な要素です。 PMはこれらすべてを統合的に管理し、バランスを取りながら意思決定を行います。PMの主な責任領域は以下の通りです。 目的・ゴールの明確化 要件定義の統括…

1 week ago

アジャイル・ウォーターフォールハイブリッド開発の手法とは?オフショア開発に効果?

アジャイル・ウォーターフォールハイブリッド開発は、ウォーターフォール開発の計画性・文書化・統制力と、アジャイル開発の柔軟性・反復改善・顧客密着型の進め方を組み合わせる手法です。 この記事では、そんなアジャイル・ウォーターフォールハイブリッド開発の基本概念から具体的な実践方法、さらにオフショア開発における効果や導入時の注意点まで、体系的に解説していきます。 アジャイル・ウォーターフォールハイブリッド開発が気になる方 オフショア開発に興味がある方 開発効率を上げたい方 これらに当てはまる方におすすめの記事となっています。これを読めばアジャイル・ウォーターフォールハイブリッド開発について特徴わかるだけでなく、導入のポイントも丸わかりですよ。 なぜ今「ハイブリッド開発」が注目されているのか 近年、ITシステム開発の現場では「スピード」と「品質」の両立が強く求められています。市場環境は急速に変化し、顧客ニーズも多様化しています。 その一方で、セキュリティ要件や法規制への対応、社内ガバナンスの強化など、開発プロジェクトに求められる統制レベルは年々高まっています。 このような背景の中で、従来型のウォーターフォール開発だけでは変化への対応が難しく、またアジャイル開発だけでは大規模案件や厳格な要件管理が必要なプロジェクトに対応しきれないケースも増えています。 そこで注目されているのが、「アジャイル・ウォーターフォールハイブリッド開発」です。 これは、ウォーターフォール開発の計画性・文書化・統制力と、アジャイル開発の柔軟性・反復改善・顧客密着型の進め方を組み合わせる手法です。 単なる折衷案ではなく、プロジェクトの特性やフェーズに応じて最適な開発アプローチを選択・融合する実践的な方法論といえます。 特にオフショア開発においては、言語・文化・時差・契約形態といった要素が絡み合うため、開発手法の選択はプロジェクトの成否を左右します。 日本国内で要件定義を固めた上で海外チームに実装を委託するケース、あるいは海外側に一部設計まで任せるケースなど、形態はさまざまです。…

1 week ago

AI時代の新たなリスク|「技術的負債」より危険な「制約負債」とは?

ソフトウェア開発の世界において、「技術的負債(Technical Debt)」という言葉は数十年前から馴染みのある概念です。スピードを優先した不適切なコードや設計が、将来的に修正コストやバグの増大を招くことは、エンジニアやマネージャーにとって共通認識となっています。 しかし、AI活用が急速に進む現代において、技術的負債よりもはるかに深刻で、目に見えにくい新たなリスクが蓄積されつつあります。それが制約の負債(Constraint Debt)」です。 本記事では、最新テクノロジーの実装において見落とされがちなこの概念と、その対策について解説します。 (more…)

2 weeks ago