Configuring NetBeans to use OpenCV in Linux Environments

A quick guide to setting up and installing OpenCV for using in the Netbeans integrated development environment in Linux.

Step 1: Download and extract OpenCV for Linux

Versions of OpenCV can be downloaded from here:

Save it to the location of your choice. Open a command prompt, navigate to the download location and unzip:


Step 2: Create an OpenCV build directory

Navigate to the OpenCV directory, and use


to create the build directory:


Step 3: Use CMake to build OpenCV

Navigate to the ‘build’ directory created and run the following CMake command:



And then run


command, which can take a while to complete:


Followed by the

sudo make install



Step 4: Create a Netbeans Project

Open the NetBeans IDE and select File > New > Project. Select Empty Project:


Click Next and give the project a name:


And press Finish.

Once the project is created, select File > New > Empty File, to add the main.cpp file to the project. Copy and paste the following code example to main.cpp:

// DetectBlobs.cpp : Defines the entry point for the console application.
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int main()
    // Initialise
    //std::string filepath = "spots.bmp";
    std::string filepath = "spots2.jpg";
    int num_blobs = 0;

    // Load grayscale version of coloured input image
    IplImage* original  = cvLoadImage( filepath.c_str() );
    IplImage* grayscale = cvLoadImage( filepath.c_str(),
                                       CV_LOAD_IMAGE_GRAYSCALE );

    // Check bitmap image exists
    assert( grayscale );

    // Create IplImage struct for a black and
    // white (binary) image
    IplImage* img_bw = cvCreateImage( cvGetSize( grayscale ),
                                      1 );

    // Use thresholding to convert grayscale image
    // into binary
    cvThreshold( grayscale,             // source image
                 img_bw,                // destination image
                 40,                    // threhold val.
                 255,                   // max. val
                 CV_THRESH_BINARY );    // binary

    // Create IplImage struct for inverted black
    // and white image
    IplImage* img_bw_inv = cvCloneImage( img_bw );
    IplImage* img_bw_cpy = cvCloneImage( img_bw );

    // Find connected components using OpenCV
    CvSeq* seq;
    CvMemStorage* storage = cvCreateMemStorage( 0 );
    cvClearMemStorage( storage );

    // cvFindContours the 12 + 1 extra object for
    // white backgrounds and black spots, hence
    // subtract 1
    num_blobs = cvFindContours( img_bw,
                                sizeof( CvContour ),
                                cvPoint( 0, 0 ) ) - 1;

    // Display the input / output windows and images
    cvNamedWindow( "original" );
    cvShowImage( "original", original );

    cvNamedWindow( "grayscale" );
    cvShowImage( "grayscale", grayscale );

    cvNamedWindow( "black_and_white" );
    cvShowImage( "black_and_white",
                  img_bw_cpy );

    // Wait for user key press and then tidy up

    cvReleaseImage( &original );
    cvReleaseImage( &grayscale );
    cvReleaseImage( &img_bw );
    cvReleaseImage( &img_bw_inv );
    cvReleaseImage( &img_bw_cpy );

    cvDestroyWindow( "greyscale" );
    cvDestroyWindow( "black_and_white" );
    cvDestroyWindow( "inverted" );

    return 0;

Step 5: Configure project settings

Right click the project folder and select Properties.

Select C++ Compiler > Include Directories. Set this to “../../opencv-2.4.9/include/”


Then select Linker > Additional Library Directories to set the location of the OpenCV libraries, in the build/lib folder that was created using CMake earlier:


Select Linker > Libraries > Add Library. Set the libraries that you will need to include, in this example these are core, highgui and imgproc:



Click Apply and OK. These steps once completed should be sufficient to enable the project to build correctly.

Step 6: Try it!

This is the “spots2.jpg’ image used in this test program (obviously, save the file in a place where your NetBeans project can find it):


And this screenshot shows the results of running the program, giving us the original colour image, the gray-scale equivalent image and the thresholded black and white image (and hence detect the number of spots in the jpg image):


Leave a Reply