我有使用 gocv 的程式碼(為 opencv 提供 go 語言綁定)。 它只是在圖像上繪製一些矩形並顯示結果。
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)
我收到此錯誤:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
我真的很困惑,因為這個錯誤並不是每次都會發生
#我沒有使用過這個函式庫,但看起來這是一個已知問題 - 而且,由於您提到它只是有時發生,所以聽起來該錯誤確實取決於線程上下文。那裡的答案(來自庫作者)指向 https://github.com/golang/go /wiki/lockosthread,所以你的主套件應該實現類似的東西
func init() { runtime.LockOSThread() }
以上是在 macOS 上使用 gocv 時間歇性出現 NSInternalInconsistencyException的詳細內容。更多資訊請關注PHP中文網其他相關文章!