2011-06-29 33 views

Respuesta

12
  1. Ajuste el ROI (región de interés) de la imagen que se está trabajando con este significará cualquier cálculo se realiza sólo sobre esta área.

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

  2. calcular el promedio de la ROI donde "tipo" es Bgr imagen dependiente para el color gris para la escala de grises

TIPO promedio = image.GetAverage (imagen);

  1. Cuando haya terminado de restablecer el retorno de la imagen de su imagen para que pueda ver toda la imagen de nuevo.

Todo el proceso se realiza a través de cada píxel agrega su valor y luego se divide por el número total de píxeles. Le ahorra escribir el código usted mismo.

Gracias Chris

1

Creo que las nuevas versiones de OpenCV (2.3 +) tienen un método diferente de hacer las regiones de interés. Esto es lo que dice el manual:

// 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); 

aquí es lo que hice en una ocasión:

// 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 

Puede utilizar cualquiera de las subtramas (roi y head en mi ejemplo) para calcular la media de la región. Hay una función adjustROI para mover la región de interés y una función locateROI que también puede ser de utilidad.

Cuestiones relacionadas