システム開発

OpenCVのHomographyについての説明

OpenCVのHomographyは、2つの画像間の画像編集、画像合成、動きの計算、回転、シフトなどを簡単に行う計算方法です。

この記事ではそんなホモグラフィの基本的な計算方法や、実際にOpenCVでどのように書いていけばいいのかなどを紹介しています。

  • OpenCVが気になる方
  • ホモグラフィについて知りたい方

これらに当てはまる方におすすめの記事となっています。これを読めばホモグラフィの活用方法が分かりますよ。

ホモグラフィとは?

ホモグラフィはオブジェクトプレーンをイメージプレーンにマッピングすることを指します。

ホモグラフィマトリックスは2つの画像間の処理タスクに関連することが多く、2つの画像間の画像編集、画像合成、動きの計算、回転、またはシフトに非常に幅広い用途があります。

計算式は以下の通りです。

HX = sX’
s:
投影の比例定数と0以外
X’: マッピングの結果
X: マッピングされた画像オブジェクト
H:ホモグラフィ行列であり、可逆行列

X ‘からX画像を作成する場合は、ホモグラフィ行列を定義するだけです。

上の本の写真を例に具体的に説明します。

この本2冊で、赤、黄、青、オレンジの4組の点を考慮します。

ホモグラフィは3X3というマトリックスです。

上記の2冊の絵本の対応する点のペアを考えます。たとえば、左が(x1、y1)で右が(x2、y2)の場合、次のようになります。

上記の方程式は、2冊の本のすべての対応する点に当てはまります。

したがって、行列Hを取得すると、最初の本の画像を2番目の画像の本の角度に回転できます。

Opencvでホモグラフィ行列を世計算する

2つの画像間のホモグラフィを計算するには、2つの画像間に対応する点の4つが必要です。

Opencvは、すべての点に適合するホモグラフィを推定します。

C++をコードする時、右の本の画像を左の本の画像のように回転する必要があります。

#include “opencv2/opencv.hpp”

using namespace cv;

using namespace std;

int main( int argc, char** argv)

{

//回転が必要な写真を読む

Mat im_src = imread(“book2.jpg”);

// 回転する必要がある本で適当な点の4つ

vector<Point2f> pts_src;

pts_src.push_back(Point2f(141, 131));

pts_src.push_back(Point2f(480, 159));

pts_src.push_back(Point2f(493, 630));

pts_src.push_back(Point2f(64, 601));

// book1の画像を読む

Mat im_dst = imread(“book1.jpg”);

// 回転する必要がある画像で点の4つに該当する点の4つ

vector<Point2f> pts_dst;

pts_dst.push_back(Point2f(318, 256));

pts_dst.push_back(Point2f(534, 372));

pts_dst.push_back(Point2f(316, 670));

pts_dst.push_back(Point2f(73, 473));

//画像の2つのホモグラフィのマトリックスを探す。

Mat h = findHomography(pts_src, pts_dst);

Mat im_out;

//ホモグラフィの通り回転の必要な画像を回転する

warpPerspective(im_src, im_out, h, im_out.size());

// im_src: は回転の必要の画像

// im_out: は結果の画像です。

// h: は以上の計算したホモグラフィです。

// im_out: は結果の画像です。

// im_out.size: 結果画像のサイズです。

    //画像の表示

imshow(“Source Image”, im_src);

imshow(“Destination Image”, im_dst);

imshow(“Warped Source Image”, im_out);

waitKey(0);

}

アフィン変換

アフィン変換では、オブジェクトの特徴点を対応する新しい点のセットに変換して、オブジェクト全体に効果を作成します。

たとえば、線の端点のみを使用した座標変換では2つの新しい点が作成され、結合すると新しい線が作成されます。

複雑な変換は、次のような基本的な変換で構成できます。

– 翻訳 (Translation)

– 比率(Scaling)

– 回転 (Rotation)

– 変化 (Shearing)

アフィン変換は2X3 というマトリックスです。

 点(x, y) を指定すると、アフィンにより、点 (xt, yt)に変換します。

まとめ

いかがでしたか。本日はホモグラフィ行列をOpencvで行う方法をまとめていきました。

ホモグラフティ行列なら、他のアルゴリズムよりも簡単に画像などを変換することができました。

ぜひこの記事を参考にOpencvでホモグラフィ変換を行ってみて下さい。

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

ベトナムでオフショア開発を行う際の費用や、エンジニアの質を知りたい方は、無料で見積もりいたしますので、お気軽にお問い合わせください。

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

Van Nguyen

Recent Posts

【2025年】円安がいつまで続く?オフショア開発に与える影響

2025年8月時点におけるドル/円(USD/JPY)の為替レートは、およそ ¥146.9です。 円安傾向は続いており、過去数十年のトレンドとも重なりつつ、依然として投資・政策動向から注目を浴びています。 この記事ではそんな円安に着目してオフショア開発に与える影響を見ていこうと思います。 オフショア開発を始めたい方 社内のIT人材が不足している方 開発効率を上げたい方 これらに当てはまる方におすすめの記事となっています。これを読めばオフショア開発に円安がどう影響するのかがわかるのはもちろん、いつ始めるべきかまで丸わかりですよ。 (more…)

2 hours ago

エンタープライズ向け生成AI導入の活用事例、今後の展望

近年、生成AI(Generative AI)はビジネスの在り方を大きく変革する技術として急速に普及しています。 文章、画像、音声、コードなど、多様なコンテンツを自動生成できるこの技術は、従来の業務効率化だけでなく、新たな価値創出や顧客体験の革新にも直結します。 特にエンタープライズ(大企業)においては、膨大なデータ資産や高度なセキュリティ要件、複雑な業務プロセスを背景に、生成AIの導入が戦略的な投資対象として注目されています。 この記事ではそんなエンタープライズ向け生成AIについて具体的な活用事例や導入ステップなど徹底解説していきます。 (more…)

1 week ago

生成AIサービスの導入形態:3つのタイプと最適な選び方

近年、生成AI(Generative AI)は文章生成、画像生成、音声合成、プログラムコードの自動生成など、幅広い分野で実用化が進んでいます。 業務効率化や新しい価値創造の手段として注目され、さまざまな業種で導入が加速しています。 しかし、生成AIサービスを導入するにあたり、どのような形態で利用するかは企業の戦略や要件によって異なります。 この記事では、主な導入形態としてSaaS型の生成AIサービス、オンプレミス型生成AIサービス、API/PaaS活用型生成AIサービスに着目し、それぞれの特徴・メリット・デメリット・選び方のポイントを整理します。 生成AIサービスを導入したい方 生成AIサービスのタイプを知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば生成AIサービスについてどんな特徴があるのかがわかるのはもちろん、適切な選び方まで丸わかりですよ。 (more…)

1 week ago

【2025年予測】生成AI市場展望と業務への活用動向

2025年、生成AIはビジネスと社会の在り方を大きく変えつつあります。 大規模言語モデル(LLM)、マルチモーダルAI、RAG、AIエージェントといった技術革新が進み、企業の業務効率化から新しい価値創造まで、その活用範囲は急速に広がっています。 この記事ではそんな生成AI市場について、今後の展望や業務への活用について動向などを見ていきます。 生成AIを活用したい企業の方 業務を効率化したい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば生成AI市場について現状と今後の展望が丸わかりですよ。 (more…)

2 weeks ago

AIエージェントの活用による弊社の成功事例をご紹介

近年、AI技術の進化とともに、業務効率化やサービス向上を目的とした「AIエージェント」の導入が急速に進んでいます。 弊社でも、この流れを受けてAIエージェントの導入を進め、多くの現場で業務の質とスピードの両立を実現することができました。 この記事では、実際に弊社が取り組んだAIエージェントの活用事例を紹介しながら、AI導入によるメリットとその可能性についてご紹介いたします。 AIエージェントが気になる方 AIエージェントの事例が知りたい方 社内の人材不足にお悩みの方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの成功事例が丸わかりですよ。 (more…)

4 weeks ago

AIエージェント導入によくある課題と解決方法

近年、業務効率化や顧客対応の高度化を目的として、企業や自治体、教育機関など多くの組織で「AIエージェント」の導入が進んでいます。 AIエージェントとは、人工知能を活用して自動的に応答や処理を行うシステムの総称で、チャットボットやバーチャルアシスタント、RPA(Robotic Process Automation)などが含まれます。 しかしながら、AIエージェントの導入には多くの期待が寄せられる一方で、現場ではさまざまな課題に直面するケースも少なくありません。 この記事では、AIエージェント導入によくある課題とその解決方法について、具体的に解説していきます。 AIエージェントに興味がある方 AIエージェントの導入に不安がある方 社内の人材不足にお悩みの方 これらに当てはまる方におすすめの記事となっています。これを読めばAIエージェントの特徴がわかるのはもちろん、うまく活用するための方法もわかりますよ。 (more…)

4 weeks ago