現在地 >> メニュー >> サンプルコード::OpenCV >> ROIの設定2

問題


以下の画像を読み込んで、1枚目の画像の一部を2枚目の画像で上書きせよ。

1枚目
2枚目

答え



#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

char *file[]={"file5.jpg","file6.jpg"};

#define IMG_NUM 2
IplImage *imgA[IMG_NUM];

int main( int argc, char **argv)
{

for(int i = 0;i< IMG_NUM;i++)
{
imgA[i] = cvLoadImage( file[i], CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
if(imgA[i] ==NULL)
{
cout << file[i] <<" : Can't Load Image ." << endl;
std::exit(0);
}
}


cvSetImageROI (imgA[0], cvRect (imgA[0]->height/4, imgA[0]->height/4, imgA[0]->width/2, imgA[0]->height/2));
cvSetImageROI (imgA[1], cvRect (imgA[1]->height/4, imgA[1]->height/4, imgA[1]->width/2, imgA[1]->height/2));
cvCopy(imgA[1],imgA[0]);
cvResetImageROI (imgA[0]);
cvResetImageROI (imgA[1]);



cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA[0]);

cvReleaseImage( &imgA[0] );
cvReleaseImage( &imgA[1] );

cvWaitKey(0);

cvDestroyAllWindows();

return 0;
}


メモ


同じ画像サイズにのみ対応。
それ以外では、処理を追加する必要がある。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます