Ask Your Question
0

Error: Undefined References

asked 2014-01-23 15:31:30 -0600

revs gravatar image

updated 2014-01-23 22:16:22 -0600

unxnut gravatar image

I am trying to obtain mouse coordinates on hover and click in c++, The code i use is following:

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>

using namespace cv;

Mat img;

void onMouse(int event, int x, int y, int flags, void* param)
{
    char text[100];
    Mat img2, img3;

    img2 = img.clone();

    if (event == CV_EVENT_LBUTTONDOWN)
    {
        Vec3b p = img2.at<Vec3b>(y,x);
        sprintf(text, "R=%d, G=%d, B=%d", p[2], p[1], p[0]);
    }
    else if (event == CV_EVENT_RBUTTONDOWN)
    {
        cvtColor(img, img3, CV_BGR2HSV);
        Vec3b p = img3.at<Vec3b>(y,x);
        sprintf(text, "H=%d, S=%d, V=%d", p[0], p[1], p[2]);
    }
    else
        sprintf(text, "x=%d, y=%d", x, y);

    putText(img2, text, Point(5,15), FONT_HERSHEY_PLAIN, 1.0, CV_RGB(0,255,0));
    imshow("image", img2);
}

int main(int argc, char** argv)
{
    img = imread(argc == 2 ? argv[1] : "lena.jpg");
    if (img.empty())
        return -1;

    namedWindow("image");
    setMouseCallback("image", onMouse, 0);
    imshow("image", img);
    waitKey(0);

    return 0;
}

But I am getting many errors..

C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::putText(cv::Mat&, std::string const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::imread(std::string const&, int)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::namedWindow(std::string const&, int)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::setMouseCallback(std::string const&, void (*)(int, int, int, int, void*), void*)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp|| undefined reference to `cv::waitKey(int)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp:(.text$_ZN2cv3MatD1Ev[cv::Mat::~Mat()]+0x2b)||undefined reference to `cv::fastFree(void*)'|
(cv::Mat const&)]+0xfe)||undefined reference to `cv::Mat::copySize(cv::Mat const&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp:(.text$_ZNK2cv3Mat5cloneEv[cv::Mat::clone() const]+0x61)||undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp:(.text$_ZNK2cv3Mat5cloneEv[cv::Mat::clone() const]+0x73)||undefined reference to `cv::Mat::copyTo(cv::_OutputArray const&) const'|
C:\Users\NAVIGATOR\Desktop\t.o:t.cpp:(.text$_ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x3c)||undefined reference to `cv::Mat ...
(more)
edit retag flag offensive close merge delete

Comments

1

seems , you're not succesfully linking any opencv libs. opencv_core opencv_imgproc opencv_highgui needed here.

berak gravatar imageberak ( 2014-01-23 15:40:46 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
0

answered 2014-08-22 15:44:20 -0600

rhenig gravatar image

I was having trouble linking the example code by hand using g++ CLI instead of the top level make in the installation directory. I finally found I needed to do this to link the lkdemo.cpp code:

g++ kdemo.cpp -o lkdemo -Wl,--start-group pkg-config opencv --libs -Wl,--end-group

I am using openCv 3.0 alpha on Ubuntu 12.04.4

Hope this helps.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2014-01-23 15:31:30 -0600

Seen: 12,468 times

Last updated: Aug 22 '14