Ask Your Question
0

how to add open cv blobs library in Visual studio 2013.

asked 2015-03-23 08:20:06 -0600

Dp gravatar image

updated 2015-03-23 11:59:30 -0600

theodore gravatar image

I am not able to add open cv blobs library with visual studio 2013, i need to calculate contourArea which needs blobs library ,how can i add those libraries. EDIT:-I had used all the instructions given below my contourArea() is still showing undefined,please help?

    #include <opencv2/opencv.hpp>

    #include<stdio.h>
    #include<iostream>

    using namespace std;
    using namespace cv;

   int main()
    {
        // open the image   
        cv::Mat &image= cv::imread("cancer.jpg");
        vector<vector<Point> > contours;
        cv::Canny(image, // gray-level image
            contours, // output contours
            125, // low threshold
            350);

        for(unsigned int i=0;i<contours.size(),i++)
    {
         cout << "# of contour points: " << contours[i].size() << endl ;

         for(unsigned int j=0;j<contours[i].size(),j++)
         {
             cout << "Point(x,y)=" << contours[i][j] << endl;
         }

         cout << " Area: " << contourArea(contours[i]) << endl;//its contourArea() is undefined
    }

        cvWaitKey(0);
    }
edit retag flag offensive close merge delete

Comments

you don't need that lib, since contourArea is already builtin in the imgproc module

berak gravatar imageberak ( 2015-03-23 08:42:23 -0600 )edit

i had already included that header file still its showing "contourArea() is undefined" Is function contourArea() declaration is wrong? if yes, how we need to declare that?

Dp gravatar imageDp ( 2015-03-23 08:51:17 -0600 )edit

cv::contourArea() ? include opencv2/imgproc/imgproc.hpp

you probably need to show your code, if we have to look for errors.

berak gravatar imageberak ( 2015-03-23 08:55:56 -0600 )edit

hey,Berak thanks for the reply i added the code above please check what exactly the problem is.

Dp gravatar imageDp ( 2015-03-23 09:12:21 -0600 )edit

looks like a namespace problem.

either do: using namespace cv; or use: cv::contourArea();

berak gravatar imageberak ( 2015-03-23 09:23:15 -0600 )edit

also: #include <opencv2/imgproc/imgproc.hpp>

berak gravatar imageberak ( 2015-03-23 09:24:29 -0600 )edit

That i had done,its some other issues please check?

Dp gravatar imageDp ( 2015-03-23 09:24:53 -0600 )edit

i don't know, what other issues you got.

berak gravatar imageberak ( 2015-03-23 09:30:40 -0600 )edit

Its still showing contourArea(),"identifier not found" what you said i had included? There is some packages problems or libraries is missing ? I am using open cv 2.4.10 with visual studio 2013.

Dp gravatar imageDp ( 2015-03-23 09:31:32 -0600 )edit

@Dp have you set the path where visual studio should find the opencv libraries?

theodore gravatar imagetheodore ( 2015-03-23 10:29:07 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
3

answered 2015-03-23 15:44:52 -0600

matman gravatar image

updated 2015-03-23 17:16:23 -0600

You can't use cv::contourArea with cv::Canny because you need a set of contour coordinates (X, Y). Canny will give you edge values (binary image). It will also rewrite your vector<vector<Point>> to cv::Mat inside the Canny function (InputArray), outside it can still look like a vector.

You have to use cv::findContours for that. Look here: Canny, here: Canny tutorial and here: findContours tutorial

Edit: I have answered your question here so why do you start a new question. And as I see, my crystal ball was right when it says that "you try to make contourArea() on your whole image"

edit flag offensive delete link more

Comments

thanks matman its working, thanks people you all helped me alot!

Dp gravatar imageDp ( 2015-03-25 04:55:35 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2015-03-23 08:20:06 -0600

Seen: 500 times

Last updated: Mar 23 '15