Golang : Fix opencv.LoadHaarClassifierCascade The node does not represent a user object error
Problem:
You're trying load a Haarcascade file with opencv.LoadHaarClassifierCascade()
function in Golang, but you get this error message instead :
OpenCV Error: Unspecified error (The node does not represent a user object (unknown type?)) in cvRead, file /tmp/opencv-20170224-77195-1rw28s/opencv-2.4.13.2/modules/core/src/persistence.cpp, line 5008
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /tmp/opencv-20170224-77195-1rw28s/opencv-2.4.13.2/modules/core/src/persistence.cpp:5008: error: (-2) The node does not represent a user object (unknown type?) in function cvRead
package main
import (
"fmt"
"github.com/lazywei/go-opencv/opencv"
)
var faceCascade = new(opencv.HaarCascade)
var eyeCascade = new(opencv.HaarCascade)
func main() {
faceCascade = opencv.LoadHaarClassifierCascade("haarcascade_frontalface_alt.xml")
defer faceCascade.Release()
fmt.Println(faceCascade) // ---- ok
eyeCascade = opencv.LoadHaarClassifierCascade("haarcascade_eye.xml") // --- will crash.
defer eyeCascade.Release()
fmt.Println(eyeCascade)
}
What's going on and how to fix this issue?
Solution:
If you try to load the haarcascade_eye.xml
file that you've downloaded from https://github.com/opencv/opencv/tree/master/data/haarcascades, you will still encounter the same error message. What you need to do is to download the Open CV 2.4.9 version from http://opencv.org/downloads.html and retrieve the haarcascade_eye.xml
from /data/haarcascades
folder.
Pretty sure it is a bug somewhere in OpenCV code.
References:
See also : Golang : Tell color name with OpenCV example
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+12.9k Golang : Convert int(year) to time.Time type
+9.9k Golang : Detect number of active displays and the display's resolution
+6.3k Golang : Get missing location after unmarshal binary and gob decode time.
+7.3k Golang : Use modern ciphers only in secure connection
+7.8k Golang : Command line ticker to show work in progress
+55.5k Golang : Unmarshal JSON from http response
+30.5k Golang : How to verify uploaded file is image or allowed file types
+12.1k Golang : Convert a rune to unicode style string \u
+6.8k Golang : Calculate pivot points for a cross
+6.5k Golang : How to search a list of records or data structures
+8.1k Golang : Handle Palindrome string with case sensitivity and unicode
+21k Golang : Convert date string to variants of time.Time type examples