Region of Interest in openCV verstehen 2.4

Ich weiß, dass wir in OpenCV 2.1 eine Funktion zum Festlegen des ROI hatten: cvSetImageROI (), aber eine solche Funktion gibt es in 2.4 nicht (oder ich kann sie zumindest nicht in den Handbüchern und in der Hilfe finden).

Hier ist jedoch der einzige hilfreiche Code, den ich finden konnte und der opencv 2.4 für den magischen ROI verwendet, aber ich habe Probleme, ihn zu verstehen:

// define image ROI
cv::Mat imageROI;
imageROI= image(cv::Rect(385,270,logo.cols,logo.rows));
// add logo to image 
cv::addWeighted(imageROI,1.0,logo,0.3,0.,imageROI);

Hier möchten sie ein sehr kleines Protokoll zu einem großen Bild rechts unten im Originalbild hinzufügen.

Was ich hier verstehe, ist, dass eine andere Matrix erstellt wird, um den ROI zu halten. Die Abmessungen werden mit der Funktion rect angegeben, und die Größe entspricht der des kleinen Logos, das hinzugefügt werden soll.

Das verwirrt mich dann:cv::addWeighted(imageROI,1.0,logo,0.3,0.,imageROI); Hier ist die Quelle 1 von addWeighted der ROI-Dimensionssatz, Quelle 2 ist das Logo und das Ziel ist auch der ROI-Dimensionssatz. Ist das richtig? oder vermisse ich etwas

Danach wird das Ergebnis mit dem Logo angezeigt, das dem großen Bild hinzugefügt wurde. Wo in diesen Befehlen war das große Bild enthalten.

Auch bevor ich hier gefragt habe, wollte ich den Code selbst ausprobieren, um vielleicht die Situation zu klären. aber ich bekomme diesen fehler, da das image () nicht erkannt wird:'image': identifier not found

int _tmain(int argc, _TCHAR* argv[])
{
Mat src1, imageROI, logo;

logo = imread("c:\\car1.jpg", -1);

imageROI= image(Rect(385,270,logo.cols,logo.rows));

addWeighted(imageROI,1.0,logo,0.3,0.,imageROI);


namedWindow("meh", CV_WINDOW_AUTOSIZE);
imshow("meh", imageROI);
waitKey(0);


return 0;

}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage