1. 程式人生 > >設定影象的感興趣區域(ROI)

設定影象的感興趣區域(ROI)

新函式用紅色顯示,程式為:
#include <highgui.h>
#include <cv.h>
#include <iostream.h>
void main()
{
IplImage * src=cvLoadImage("baboon.jpg",-1);
IplImage * dst;
CvRect roi_rect_src;
CvRect roi_rect_dst;
cvNamedWindow("src",CV_WINDOW_AUTOSIZE);
cvMoveWindow("src",200,200);    //設定視窗輸出位置
cvShowImage("src",src);
cvWaitKey(0);

//基於給定的矩形設定感興趣區域ROI
roi_rect_src.x=125;
roi_rect_src.y=300;
roi_rect_src.width=240;
roi_rect_src.height=200;
cvSetImageROI

(src,roi_rect_src);
cout<<"輸出源影象的ROI區域:"<<endl;
cout<<(src->roi->xOffset)<<" "<<(src->roi->yOffset)<<endl;
cout<<(src->roi->width)<<" "<<(src->roi->height)<<endl;
cvShowImage("src",src);//這時候只顯示ROI區域
cvWaitKey(0);

dst=cvCloneImage
(src);//完整複製包括頭,ROI和資料
roi_rect_dst=cvGetImageROI(dst);//獲得ROI區域
cout<<"輸出目標影象的ROI區域:"<<endl;
cout<<roi_rect_dst.x<<" "<<roi_rect_dst.y<<endl;
cout<<roi_rect_dst.width<<" "<<roi_rect_dst.height<<endl;
cvNamedWindow("dst",CV_WINDOW_AUTOSIZE);
cvMoveWindow("dst",600,200);
cvShowImage("dst",dst);
cvWaitKey(0);
cvResetImageROI(dst);//釋放影象的ROI
cvShowImage("dst",dst);
cvWaitKey(0);
cvReleaseImage(&src);
cvReleaseImage(&dst);
}
==========================================
這隻狒狒也是標準測試圖,它的名字叫baboon,在影象處理中有很高的地位。
程式中將它的鼻子作為ROI。