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

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

【OpenCV】 画像の一部を切り取る

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

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

// 切り取る箇所を指定する
int x = 100;
int y = 100;
int width = 100;
int height = 100;
Rect parts = Rect(x, y, width, height);

// 画像を切り取る(浅いコピー)
UMat shallowCopiedCroppedSource(source, parts);
// 画像を切り取る(深いコピー)
//UMat deepCopiedCroppedSource = UMat(source, parts).clone();

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

f:id:ni4muraano:20170115145041j:plain f:id:ni4muraano:20170119104805j:plain