Ich habe Code, der gocv verwendet (stellt Go-Sprachbindungen für opencv bereit). Es werden lediglich einige Rechtecke auf das Bild gezeichnet und das Ergebnis angezeigt.
func main() { resp, err := http.get("http://localhost:6060/template-match") if err != nil { panic(err) } defer resp.body.close() body, err := ioutil.readall(resp.body) if err != nil { panic(err) } fmt.println(string(body)) var data response err = json.unmarshal(body, &data) if err != nil { panic(err) } srcimage := gocv.imread("./images/src1.jpg", gocv.imreadcolor) for i := 0; i < len(data.data); i++ { gocv.rectangle(&srcimage, data.data[i], color.rgba{r: 255}, 2) } window := gocv.newwindow("match-result") window.imshow(srcimage) gocv.waitkey(0) fmt.println(data.data, data.msg)
Ich erhalte diese Fehlermeldung:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
Ich bin wirklich verwirrt, weil dieser Fehler nicht jedes Mal auftritt
Ich habe diese Bibliothek nicht verwendet, aber es sieht so aus, als wäre es ein bekanntes Problem – und da Sie es erwähnt haben, passiert es nur Manchmal hört es sich also so an, als ob der Fehler vom Thread-Kontext abhängt. Die Antwort dort (vom Autor der Bibliothek) verweist auf https://github.com/golang/go/wiki/lockosthread, daher sollte Ihr Hauptpaket etwas Ähnliches implementieren
func init() { runtime.LockOSThread() }
Das obige ist der detaillierte Inhalt vonZeitweilige NSInternalInconsistencyException bei Verwendung von gocv unter macOS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!