ホームページ >バックエンド開発 >C++ >画像の傾き補正に cv::warpPerspective を正しく使用する方法

画像の傾き補正に cv::warpPerspective を正しく使用する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 19:18:12329ブラウズ

How to Correctly Use cv::warpPerspective for Image Deskewing?

一連の点の傾きを補正するために cv::warpPerspective を適用する方法

一連の点に対して透視変換を実行して、スキュー補正効果を考慮すると、ポイントの適切な構成と適切な使用方法を理解することが重要です。 cv::getPerspectiveTransform.

正しいポイント順序の確保

ROI の角を表すポイントは、ソース ベクトルとデスティネーション ベクトルの両方で特定の順序に従う必要があります。たとえば、ソース ポイントが (左上、左下、右下、右上) のように配置されている場合、デスティネーション ポイントもこの順序に従う必要があります。

画像サイズの設定

結果の画像に目的のオブジェクトのみが含まれるようにするには、その幅と高さを、周囲の長方形の境界ボックスの幅と高さに一致するように設定します。 ROI.

効率化のためのアフィン変換の使用

アフィン変換 (回転、サイズ変更、デスキュー) には、関数 getAffineTransform および warpAffine を使用する方が効率的です。これらの関数は、3 行 3 列の行列ではなく、3 つの点と 2 行 3 列の行列のみを必要とします。

宛先の画像サイズの設定

宛先を作成するには入力と異なるサイズの画像を指定するには、次の構文を使用します。 cv::warpPerspective:

cv::warpPerspective(src, dst, dst.size(), ... );

または cv::warpAffine:

cv::warpAffine(src, rotated, warpAffineMatrix, size, INTER_LINEAR, BORDER_CONSTANT);
で次の構文を使用します。

以上が画像の傾き補正に cv::warpPerspective を正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。