2011-06-29 581 views

回答

12
  1. 設置圖像的您與此合作將意味着任何計算僅在這個領域所做的ROI(感興趣區域)。

    image.ROI = new Rectangle(x,Y,Width,Height);

  2. 計算ROI的平均,其中 「TYPE」 是圖像依賴BGR顏色爲灰色灰度

TYPE平均= image.GetAverage(圖像);

  1. 當您完成重置圖像ROI後,您可以再次看到整個圖像。

所有的過程都是循環遍歷每個像素添加它的值,然後除以總像素數。節省您自己編寫代碼。

感謝 克里斯

1

我認爲OpenCV中的較新版本(2.3以上版本)有做投資回報的不同方法。這裏的手冊說什麼:

// create a new 320x240 image 
Mat img(Size(320,240),CV_8UC3); 
// select a ROI 
Mat roi(img, Rect(10,10,100,100)); 
// fill the ROI with (0,255,0) (which is green in RGB space); 
// the original 320x240 image will be modified 
roi = Scalar(0,255,0); 

這是我的一個實例做:

// adding a header on top of image 
Mat dst = Mat::zeros(frame.rows + HEADER_HEIGHT, frame.cols, CV_8UC3); 
// frame portion 
Mat roi(dst, Rect(0, HEADER_HEIGHT-1, frame.cols, frame.rows)); 
// header portion 
Mat head(dst, Rect(0,0,frame.cols, HEADER_HEIGHT)); 
// zeros to clear the header portion 
Mat zhead = Mat::zeros(head.rows, head.cols, CV_8UC3); 

frame.copyTo(roi); // copy new image to image portion of dst 
zhead.copyTo(head); // clear the header portion of dst 

你可以使用任何的子幀(在我的例子roihead)來計算的平均地區。有一個adjustROI函數來移動感興趣的區域和功能locateROI也可能有用。