Canny Algorithm edge detection
Last week I started reading sections of the OpenCV book given to me by Professor Johnson and Stevenson. The sections I read with had to deal with edge detection and gray scaling (required for the Canny Algorithm). I expanded upon my previous code for loading in an image to do this.
// OpenCVConfiguration.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
int main(int argc, char *argv[])
{
//image loading and allocation to memory
//IplImage* img = cvLoadImage( "S:\\Photos\\Television\\Pokemon\\pokemon.jpg" );
//window creation
//cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
//load image to window
//cvShowImage( "Example1", img );
//wait key causes a pause for a keystroke determined by the parameter
//0 = indefinite wait
//cvWaitKey( 0 );
//without this the window seems to close instantly
//release the memory of the image
//cvReleaseImage( &img );
//deallocate the window memory
//cvDestroyWindow( "Example1" );
//image loading and allocation to memory
IplImage* img = cvLoadImage( "S:\\Photos\\Fish Vision\\FCM060-2FL.jpeg" );
//IplImage* img = cvLoadImage( "S:\\Photos\\Television\\Pokemon\\pokemon.jpg" );
//window creation
cvNamedWindow( "Original", CV_WINDOW_AUTOSIZE );
//load image to window
cvShowImage( "Original", img );
//without this the window seems to close instantly
//Try to grayscale image
//was going to copy image did not work as planned, just going to create a new image
//IplImage* img2 = cvCopy( img );
//does not work requires array does not take iplimage
//cvCvtColor()
//instead create new image to convert to grayscale
//IplImage* img2 = cvCreateImage( cvSize( img->width, img->height ), img->depth, img->nChannels );
IplImage* img2 = cvLoadImage("S:\\Photos\\Fish Vision\\FCM060-2FL.jpeg",CV_LOAD_IMAGE_GRAYSCALE);
//IplImage* img2 = cvLoadImage("S:\\Photos\\Television\\Pokemon\\pokemon.jpg",CV_LOAD_IMAGE_GRAYSCALE);
//cvCvtColor( img, img2, CV_RGB2GRAY );
//window creation
cvNamedWindow( "Grayscale", CV_WINDOW_AUTOSIZE );
//load image to window
cvShowImage( "Grayscale", img2 );
// expects (img, output img, low threshold, high threshold, aperture?) //images must be grayscale
cvCanny( img2, img2, 10, 100, 3 );
//window creation
cvNamedWindow( "Canny Edge Detection", CV_WINDOW_AUTOSIZE );
//load image to window
cvShowImage( "Canny Edge Detection", img2 );
//wait key causes a pause for a keystroke determined by the parameter
//0 = indefinite wait
cvWaitKey( 0 );
//release the memory of the image
cvReleaseImage( &img );
cvReleaseImage( &img2 );
//deallocate the window memory
cvDestroyWindow( "Original" );
cvDestroyWindow( "Grayscale" );
cvDestroyWindow( "Canny Edge Detection" );
return 0;
}
I have left the comments in to show some of my thought process. The next step is to get tortoise svn up and running. I have installed and will be learning how to use it with Cmake.