Ask Your Question

frankieforceps's profile - activity

2017-02-20 21:53:16 -0600 received badge  Editor (source)
2017-02-20 21:49:43 -0600 asked a question Error Debug Output for namedWindow call

Hi there,

I'm just learning OpenCV. I downloaded it off github and compiled. (I'm running Ubuntu). I followed the instructions here: docs.opencv.org/3.2.0/d7/d9f/tutorial_linux_install.html

Everything compiled and installed without issue. Next I tried the simple DisplayImage tutorial: docs.opencv.org/3.2.0/db/df5/tutorial_linux_gcc_cmake.html

Compiled fine, runs, and displays an image. However there is one issue: when running there is some error debug output at the command line:

john@john-desktop ~/DisplayImage/build $ ./DisplayImage lena.jpeg 

(DisplayImage:9277): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(DisplayImage:9277): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

I went through the code in my DisplayImage.cpp file and tracked it down to this line:

namedWindow("Display Image", WINDOW_AUTOSIZE );

When this line is commented out, there is no error output.

I'm not sure why this call is a problem... is there perhaps a dependency I'm missing? I have no idea here. Not sure what the GLib-GObject is. Any help you can provide would be appreciated! Thanks!

Edit: I did some searching around and it looks like this error might be systemic in Ubuntu and unrelated to OpenCV: bugs.launchpad.net/ubuntu/+source/gnome-session/+bug/1582496

2017-02-04 22:38:23 -0600 commented answer Trouble linking opencv libraries

Ok awesome Berak! Thank you so much! Your help is greatly appreciated!

2017-02-04 20:18:23 -0600 asked a question Trouble linking opencv libraries

Hi,

I'm just getting started with OpenCV. I want to use OpenCV for a machine vision project. I started by following the tutorial here:

as able to download the OpenCV repo from Github and compile it without to much trouble. OpenCV (3.2.0) is installed.

I started by following the tutorial here: docs.opencv.org/2.4/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html#linux-gcc-usage

I entered the code correctly, and then made the CMake file.

Here is my CMakeLists.txt file:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV COMPONENTS core imgproc highgui REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
LINK_DIRECTORIES("/usr/local/lib")
include_directories(${OpenCV_INCLUDE_DIR})

I tried making the project but it seems there is a library linking error. I'm a novice and am having trouble ascertaining if it is a version conflict, libraries missing, or just the linker is looking for libraries in the wrong place.

Here is the output when the make command is made:

pi@raspberrypi:~/Programming/build $ make
[ 50%] Linking CXX executable DisplayImage
/usr/bin/ld: CMakeFiles/DisplayImage.dir/DisplayImage.cpp.o: undefined     reference to symbol    '_ZN2cv6imreadERKNS_6StringEi'
/usr/local/lib/libopencv_imgcodecs.so.3.2: error adding symbols: DSO  missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/DisplayImage.dir/build.make:97: recipe for target  'DisplayImage' failed
make[2]: *** [DisplayImage] Error 1
CMakeFiles/Makefile2:67: recipe for target   'CMakeFiles/DisplayImage.dir/all' failed
make[1]: *** [CMakeFiles/DisplayImage.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Looks like the problem is with the libopencv_imgcodecs.so.3.2. Any ideas?