システム開発

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

システム開発のライフサイクルとは?主要な開発フェーズと代表なモデルを解説

ビジネスや社会のあらゆる場面でシステムが欠かせない現代において、システム開発を効率的かつ確実に進めるための枠組みとして「システム開発ライフサイクル(SDLC:System Development Life Cycle)」が存在します。 SDLCは、システムを企画・開発・運用・保守するまでの一連の流れを定義したもので、開発プロジェクトを成功させるための道しるべといえます。 この記事では、システム開発ライフサイクルの基本的な考え方と、主要な開発フェーズ、さらに代表的な開発モデルについて解説します。 システム開発を発注・管理する立場の方 IT人材が不足している方 システム開発ライフサイクルの具体的内容が知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム開発を効率的に進める方法が丸わかりですよ。 (more…)

5 days ago

システム保守の費用相場は?費用を抑えるポイントも徹底解説

システム開発が完了した後、安定して稼働させるためには「システム保守」が欠かせません。 しかし実際に見積もりを取ると、費用が高いと感じる企業も多いのではないでしょうか。 この記事では、システム保守の費用相場を解説するとともに、コストを抑えるための具体的な方法を徹底的に紹介します。 これから保守契約を検討する方 すでに保守契約しているが見直したい方 システム保守の費用について知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばシステム保守にいくらかかるのかや、費用を抑えるためのポイントも丸わかりですよ。 (more…)

6 days ago

AI総合ソリューションで業務を革新。DEHAが届ける確かな信頼と価値

2017年の起業から今まで、DEHA SOLUTIONSが歩んできた9年間は、お客様と社員の皆様からのご支援とご協力なくしては語ることができません。心より感謝申し上げます。  私たちはこの間、ベトナムを開発拠点とするシステム開発企業として、日本国内のIT市場向け様々な課題に真摯に向き合ってまいりました。2019年に発表された経済産業省によるIT人材需給に関する調査によると、2030年の日本国内におけるIT人材は最大で約79万人が不足すると予測されています。この深刻な状況の中、多くのSIer企業様や中小・大企業様の開発パートナーとしては、高品質で開発及びソリューションを安定的に提供することで、日本のIT業界の成長を支える一翼を担っています。  >>関連記事:日本経済産業省によると2030年には最大で約79万人のIT人材が不足  近年、ビジネス環境は急速に変化し、DXの波が隅々にまで浸透することに加え、AI技術も全産業を席巻しています。DEHAマガジンでも度々記事を取り上げてきたように、現在AIは単なるトレンドではなく、未来の社会を形作る基盤となりつつあります。  そんな大きな時代の変化を捉え、私たちDEHA SOLUTIONSはこれまでの9年間で培ってきた豊富なナウハウで、AI分野に注力を決意しました。単なる技術ベンダに留まらずに、お客様にとって最も信頼性があるAI総合ソリューション開発パートナーとしては、共に課題解決及びビジネス発展にしていくことを目指してまいります。  (more…)

1 week ago

開発リソース不足を解決する5つ方法を徹底比較

開発の現場では「人が足りない」「スキルが合わない」「今すぐ増強したい」が日常茶飯事です。 そこでこの記事では、①オフショア開発 ②ニアショア開発 ③フリーランス・業務委託 ④SES ⑤社内のリソース強化(社員育成・ノーコード/ローコード・AI活用)の5つ手段を、スピード/コスト/品質確保/管理負荷/機密性/拡張性で徹底比較し、選び方の指針まで一気通貫で整理します。 開発を効率化させたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば開発リソースを確保するためのそれぞれの手段について、特徴がわかりますよ。 (more…)

2 weeks ago

【2025年版】ベトナムオフショア開発の人月単価相場

近年、IT人材不足が深刻化する日本市場では、オフショア開発の活用がますます一般的になっています。 なかでも、ベトナムは高い技術力とコスト競争力を兼ね備えた国として、依然として人気を維持しています。 この記事では、2025年最新のベトナムオフショア開発における人月単価相場を役割別に解説し、最新動向までを詳しくご紹介します。 ベトナムオフショアに興味がある方 開発コストを抑えたいとお考えの方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばベトナムオフショアの具体的なコストがわかりますよ。 (more…)

3 weeks ago

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

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

4 weeks ago