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年ほど前から、ベトナムオフショア開発を行っています。
ベトナムでオフショア開発を行う際の費用や、エンジニアの質を知りたい方は、無料で見積もりいたしますので、お気軽にお問い合わせください。
製造業を取り巻く環境は、グローバル競争の激化、サプライチェーンの複雑化、そしてデジタル化の加速により大きく変化しています。 その中でERP(統合基幹業務システム)は、単なる業務管理ツールではなく、経営の意思決定を支える中核システムへと進化しています。 特に2026年においては、「クラウド化」「AI活用」「グローバル対応」「生産現場との連携」が重要な選定ポイントとなっています。 ERPは企業の成長戦略そのものに直結するため、自社の規模・業種・将来展望に適したシステム選びが不可欠です。 この記事では、製造業向けの代表的なグローバルERPを10製品厳選し、それぞれの特徴を解説します。 グローバルERPシステムが気になる方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば主要なグローバルERPシステムが丸わかりですよ。 IFS ERP(IFS Cloud) IFS Cloudは、製造業に加えて設備管理やサービス業務まで一体的に管理できる統合ERPです。 特に「アセット集約型製造業」や「プロジェクト型製造」に強みを持っています。…
ソフトウェア開発において品質の確保は単なる技術的課題ではなく、企業の信頼性や顧客満足度に直結する重要な要素です。 その中核を担うのがSQA(Software Quality Assurance:ソフトウェア品質保証)です。 SQAとは、開発プロセス全体を通じて品質を計画的に作り込み、維持・向上させるための活動を指します。 この記事ではそんなSQA(ソフトウェア品質保証)について、その概要や役割などを紹介していきます。 SQA(ソフトウェア品質保証)が気になる方 品質管理に興味がある方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばSQA(ソフトウェア品質保証)の特徴がわかるだけでなく、その重要性が丸わかりですよ。 SQA(ソフトウェア品質保証)とは SQA(ソフトウェア品質保証)とは、ソフトウェア開発において品質を計画的かつ継続的に確保するための活動全般を指します。 単に完成した製品の不具合を検出するテスト工程だけでなく、開発プロセス全体に関与し、品質を作り込む仕組みを整えることが重要な役割です。 具体的には、開発標準の策定や遵守状況の確認、レビューや監査の実施、品質指標の設定と分析、リスクの早期発見と対策などが含まれます。 これにより、開発の初期段階から問題の発生を未然に防ぎ、手戻りやコスト増大を抑えることが可能になります。…
概要 IFS Cloud におけるMigration Job(マイグレーションジョーブ)は、カットオーバーフェーズにおける最重要ボトルネックである。本稿では、実プロジェクトから抽出した知見をもとに、ステージングアーキテクチャ・トランザクション管理・冪等性設計・大容量データ処理・自動アラートの5領域にわたる実践的設計手法とトラブルシューティング戦略を体系的に解説する。適切に設計されたマイグレーションは単なるデータ移送を超え、監査可能性と再現性を備えた運用基盤となる。 (more…)
近年、システム開発や製造業、さらにはサービス業においても「品質」の重要性がますます高まっています。 その中で注目されているのが「PQA(プロセス品質保証)」という考え方です。 従来の品質管理が「成果物の品質」を中心にしていたのに対し、PQAは「プロセスそのものの品質」を保証することに重点を置きます。 この記事では、PQAの基本概念と、プロジェクト成功にどのように寄与するのか、さらに導入のメリットについて解説します。 PQA(プロセス品質保証)について知りたい方 製造業やシステム開発をしたい方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばPQA(プロセス品質保証)の概要やメリットなども丸わかりですよ。 (more…)
生成AIチャットボット市場は、近年のAI技術の進化とともに急速な成長を遂げており、日本においても例外ではありません。 特に、企業のDXの進展と、顧客対応の高度化・効率化ニーズの高まりを背景に、導入が加速しています。 本日はそんな生成AIチャットボットの日本市場規模について、現状とこれからの予測についてお伝えしていきたいと思います。 生成AIチャットボットが気になる方 生成AIチャットボットの市場規模を知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めば生成AIチャットボットの日本市場規模がわかるのはもちろん、その要因もわかりますよ。 (more…)
近年、企業のDXが加速する中で、生成AIチャットボットの導入は急速に広がりを見せています。 顧客対応の自動化や業務効率化、さらには新たなユーザー体験の創出といった観点から、多くの企業がその活用に注目しています。 しかし、いざ導入を検討する段階になると、多くの企業が直面するのが「どのような形態で導入すべきか」という課題です。 この記事では、まず生成AIチャットボットの基本構造と進化の背景を整理した上で、クラウド型とオンプレミス型それぞれの特徴やメリット・デメリットを詳しく解説します。 AIチャットボットに興味がある方 クラウド型とオンプレミス型の生成AIチャットボットについて知りたい方 これらに当てはまる方におすすめの記事となっています。これを読めばクラウド型とオンプレミス型の生成AIチャットボットの違いがわかるのはもちろん、企業がどのような観点で最適な方式を選択すべきか、さらに今後の技術動向もわかりますよ。 (more…)