旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【OpenCV】 画像を回転させる

OpenCVの復習が必要になったのでメモしておきます。

// 画像の読み込み
UMat source;
imread("lenna.jpg").copyTo(source);
if (source.empty())
{
    throw runtime_error("Failed to open image");
}

// 回転の中心
Point2f center = Point2f(static_cast<float>(source.cols/2),
                         static_cast<float>(source.rows/2));
// 回転角度
double angle_deg = 120.0;
// スケーリング係数
double scale = 1.0;
// アフィン変換行列の取得
UMat affine;
getRotationMatrix2D(center, angle_deg, scale).copyTo(affine);
// 内挿方法(INTER_NEAREST, INTER_LINEAR, INTER_CUBIT)
int interpolationFlag = INTER_CUBIC;
// 画像の回転を行う
UMat destination;
warpAffine(source, destination, affine, source.size(), interpolationFlag);

imshow("source", source);
imshow("destination", destination);

f:id:ni4muraano:20170115110821j:plain f:id:ni4muraano:20170115111257j:plain

さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング

さらに進化した画像処理ライブラリの定番 OpenCV 3基本プログラミング