Zeitweilige NSInternalInconsistencyException bei Verwendung von gocv unter macOS

WBOY
Freigeben: 2024-02-06 11:00:07
nach vorne
992 Leute haben es durchsucht

在 macOS 上使用 gocv 时间歇性出现 NSInternalInconsistencyException

Frageninhalt

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)
Nach dem Login kopieren

Ich erhalte diese Fehlermeldung:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
Nach dem Login kopieren

Ich bin wirklich verwirrt, weil dieser Fehler nicht jedes Mal auftritt


Richtige Antwort


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()
}
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage