OpenCVのHomographyは、2つの画像間の画像編集、画像合成、動きの計算、回転、シフトなどを簡単に行う計算方法です。
この記事ではそんなホモグラフィの基本的な計算方法や、実際にOpenCVでどのように書いていけばいいのかなどを紹介しています。
これらに当てはまる方におすすめの記事となっています。これを読めばホモグラフィの活用方法が分かりますよ。
ホモグラフィはオブジェクトプレーンをイメージプレーンにマッピングすることを指します。
ホモグラフィマトリックスは2つの画像間の処理タスクに関連することが多く、2つの画像間の画像編集、画像合成、動きの計算、回転、またはシフトに非常に幅広い用途があります。
計算式は以下の通りです。
HX = sX’
s: 投影の比例定数と0以外
X’: マッピングの結果
X: マッピングされた画像オブジェクト
H:ホモグラフィ行列であり、可逆行列
X ‘からX画像を作成する場合は、ホモグラフィ行列を定義するだけです。
上の本の写真を例に具体的に説明します。
この本2冊で、赤、黄、青、オレンジの4組の点を考慮します。
ホモグラフィは3X3というマトリックスです。
上記の2冊の絵本の対応する点のペアを考えます。たとえば、左が(x1、y1)で右が(x2、y2)の場合、次のようになります。
上記の方程式は、2冊の本のすべての対応する点に当てはまります。
したがって、行列Hを取得すると、最初の本の画像を2番目の画像の本の角度に回転できます。
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年ほど前から、ベトナムオフショア開発を行っています。
ベトナムでオフショア開発を行う際の費用や、エンジニアの質を知りたい方は、無料で見積もりいたしますので、お気軽にお問い合わせください。
「2025年の崖」とは、2018年に経済産業省が発表した「DXレポート」において示された概念です。 2025年には企業の基幹系システムの約6割が導入から21年以上経過し、適切な対策を講じなければ年間最大12兆円の経済損失が発生する可能性があると指摘されました。 この警鐘を受け、多くの企業がレガシーシステムの刷新やERP(Enterprise Resource Planning)の導入を進めました。 しかし、2025年を迎えた現在、単なるシステムの更改では企業の競争力向上には不十分であることが明らかになっています。 この記事では、「2025年の崖」を乗り越えた企業が直面する新たな課題と、それに対する具体的な対策について詳しく考察します。 2025年の崖に対する具体的な課題や解決策を知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば2025年の崖が現状どのような状況なのかやその対策などが丸わかりですよ。 (more…)
製造業において、生産管理の効率化は競争力を維持するために欠かせません。 その中でも、MES(Manufacturing Execution System)とERF(Enterprise Resource Planning for Factories)は重要な役割を果たします。 この記事では、そんなMESとERFについて、それぞれのシステムの概要、特徴、利点、そして違いについて詳しく解説します。 MESとERFについて気になる方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばMESとERFについてそれぞれの特徴がわかるのはもちろん、も分かりますよ。 (more…)
MESシステムは製造業において、生産現場の管理などを行うシステムです。MESシステムを導入することで、生産効率や品質の向上が期待されます。 本日はそんなMESシステムについて、どのような特徴があるのかやその役割やメリットなど徹底解説していきます。 MESシステムが気になっている方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばMESシステムについて詳しくなるのはもちろん、導入の際に気をつけるべきことまで丸わかりですよ。 (more…)
オフショア開発は安価で高品質の開発ができる開発手法ですが、コミュニケーションの問題が発生しがちです。 そんなコミュニケーションロスの問題を解決するツールとして、今回紹介したいのがプロトタイプツールです。 プロトタイプツールを利用することで、会話型のコミュニケーションから視覚的なコミュニケーションに移行することができ、よりわかりやすく情報を共有することができるのです。 この記事ではそんなプロトタイプツールのおすすめ7つを紹介していきます。 オフショア開発に興味がある方 プロトタイプツールを詳しく知りたい方 オフショア開発のコミュニケーションの問題に悩まれている方 これらに当てはまる方におすすめの記事となっています。これを読めば、オフショア開発のコミュニケーション問題を解決する方法がわかりますよ。 (more…)
スマートフォン市場がますます進化する中で、モバイルアプリの開発技術も飛躍的に向上しています。 特に、クロスプラットフォーム開発の重要性が増し、開発スピードやコスト削減を実現するフレームワークが次々と登場しています。 この記事では、2025年に注目されるモバイルアプリ開発フレームワークを5つ紹介し、それぞれの特徴やメリットを詳しく解説します。 モバイルアプリ開発を行いたい方 モバイルアプリ開発フレームワークについて最新情報を知りたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばモバイルアプリ開発のフレームワークについて注目のものが何なのか丸わかりですよ。 (more…)
近年、クラウドインフラの導入が進む中で、オフショア開発においても効率的なクラウド基盤の構築が求められています。 しかし、クラウドインフラ基盤の構築に際しては、日本とベトナムの技術レベルや環境の違いによって課題が生じることが少なくありません。 そこでこの記事では、ベトナムオフショア開発でもスムーズにクラウドインフラを構築するためのコツについて詳しく解説し、成功のためのポイントを紹介します。 オフショア開発に興味がある方 クラウドインフラを導入しようとお考えの方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば、オフショア開発を活用する企業がクラウド環境を安定的に運用できる方法が分かりますよ。 (more…)