Mat *image1 = new Mat(512,512,CV_8UC1); //画像用Matインスタンスの作成 8bit
memcpy(image1->data, imagedata, 512*512); //画像データをimage1->dataに読み込む
//imagedataは512*512バイトの画像列の先頭アドレス
Mat *image2 = new Mat(512,512,CV_8UC1); //画像用Matインスタンスの作成 8bit
memcpy(image2->data, imagedata2, 512*512); //画像データをimage1->dataに読み込む
Mat *difImg = new Mat(512,512,CV_8UC1);
absdiff((Mat &)*image2, (Mat &)*image1, (Mat &)*difImg); //差画像の作成
//以下、表示
namedWindow("img1", CV_WINDOW_AUTOSIZE);
cvMoveWindow("img1", 50, 50);
imshow("img1", (Mat &)*image1);
namedWindow("img2", CV_WINDOW_AUTOSIZE);
cvMoveWindow("img2", 580, 50);
imshow("img2", (Mat &)*image2);
namedWindow("dif", CV_WINDOW_AUTOSIZE);
cvMoveWindow("dif", 50, 600);
imshow("dif", (Mat &)*difImg);
namedWindow("dif*10", CV_WINDOW_AUTOSIZE);
cvMoveWindow("dif*10", 580, 600);
imshow("dif*10", (Mat &)*difImg2);
waitKey(0);
cvDestroyWindow ("img1");
cvDestroyWindow ("img2");
cvDestroyWindow ("dif");
cvDestroyWindow ("dif*10");
0 件のコメント:
コメントを投稿