Voglio tagliare un sub-purt di un'immagine (o ritagliarlo) usando Emgu CV (o OpenCV) e calcolare il colore medio di quella parte; in cerca di cambiamenti.Come tagliare una sotto-parte di un'immagine usando Emgu CV (o OpenCV)?
Grazie
Voglio tagliare un sub-purt di un'immagine (o ritagliarlo) usando Emgu CV (o OpenCV) e calcolare il colore medio di quella parte; in cerca di cambiamenti.Come tagliare una sotto-parte di un'immagine usando Emgu CV (o OpenCV)?
Grazie
Impostare il ROI (Region of Interest) dell'immagine che si sta lavorando con questo significherà qualsiasi calcolo viene effettuato solo su questa zona.
image.ROI = nuovo rettangolo (x, Y, larghezza, altezza);
calcolare la media della ROI dove "TIPO" è un'immagine dipende Bgr per un colore grigio Scala di grigi
TIPO media = image.GetAverage (immagine);
Tutto il processo esegue un ciclo ogni pixel aggiunge il suo valore quindi divide per il numero totale di pixel. Salva te stesso scrivendo il codice.
Grazie Chris
Penso che versioni più recenti di OpenCV (2.3 +) hanno un metodo diverso di fare ROI. Ecco ciò che il manuale dice:
// 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);
Ecco quello che ho fatto in un caso:
// 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
È possibile utilizzare uno dei controtelai (roi
e head
nel mio esempio) per calcolare la media del regione. C'è una funzione adjustROI
per spostare la regione di interesse e una funzione locateROI
che potrebbe anche essere utile.