OpenCV mit EventHandler und Variablen richtig verwenden
-
Hallo c-Community,
habe wieder ein Problem. Ich arbeite mit OpenCV und habe auf einem Window ein EventHandler, den ich gern in eine ExtraDatei auslagern möchte. Der MouseHandler wird wie folgt bei mir declariert.
// Fenster für Ausgabe cvNamedWindow("Name", CV_WINDOW_AUTOSIZE); // MouseEvent setzen cvSetMouseCallback("Name", MouseObjectDetectHandler, NULL);
Die Eventfunktion hat folgenden Aufbau:
void MouseObjectDetectHandler(int event, int x, int y, int flags, void *param) { if (event == CV_EVENT_LBUTTONDOWN) { uchar* ptr = &CV_IMAGE_ELEM(COLOR_IMAGE,uchar,y,x*3); // Es wird der Wert in ptr[0] benötigt! HSI_Hue_Value = (int)ptr[0] } }
Wenn alles in einer Datei ("*.c") liegt ist es kein Problem, da sind die Variablen HSI_HUE_Value und COLOR_IMAGE definiert. Wenn ich die jetzt auslager, ist dies ja nicht mehr der Fall. Leider sehe ich aber auch keine Möglichkeit die Variablen im Funktionskopf mitzugeben. Wie müsste ich vorgehen, dass die Variablen auch in der Extradatei erkannt werden, oder dass ich die Variablen der Funktion mitgeben kann?
MfG
mirrowwinger
-
Ich kenne OpenCV nicht. Aber der Parameter
param
sieht mir ganz danach aus, dass du dem Handler Werte mitgeben kannst.Die andere Möglichkeit ist, dass du dich mal über die Anwendung des C-Schlüsselwortes "extern" schlau machst.