Maison > développement back-end > Golang > le corps du texte

NSInternalInconsistencyException intermittente lors de l'utilisation de gocv sur macOS

WBOY
Libérer: 2024-02-06 11:00:07
avant
992 Les gens l'ont consulté

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

Contenu de la question

J'ai du code utilisant gocv (fournit des liaisons de langage Go pour opencv). Il dessine simplement quelques rectangles sur l'image et affiche le résultat.

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)
Copier après la connexion

J'obtiens cette erreur :

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
Copier après la connexion

Je suis vraiment confus car cette erreur ne se produit pas à chaque fois


Réponse correcte


Je n'ai pas utilisé cette bibliothèque mais il semble que ce soit un problème connu - et, puisque vous l'avez mentionné, cela n'arrive que Parfois, il semble que l'erreur dépende du contexte du thread. La réponse ici (de l'auteur de la bibliothèque) pointe vers https://github.com/golang/go/wiki/lockosthread, donc votre package principal devrait implémenter quelque chose de similaire

func init() {
    runtime.LockOSThread()
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal