#include #include #include #include #include "cvcam.h" #include "cv.h" #include "highgui.h" /************************************************************************ * ************************************************************************/ int main( int argc, char** argv ) { IplImage* frame, *frame_copy = 0; uchar *data; int height,width,step,channels; int i,j,k; if( argc == 2 && (frame=cvLoadImage(argv[1], 1))!= 0) { if( !frame ) exit(0); } cvNamedWindow( "result", 1 ); if( !frame_copy ) frame_copy = cvCreateImage( cvSize(frame->width,frame->height), IPL_DEPTH_8U, frame->nChannels ); if( frame->origin == IPL_ORIGIN_TL ) cvCopy( frame, frame_copy, 0 ); else cvFlip( frame, frame_copy, 0 ); // get the image data height = frame->height; width = frame->width; step = frame->widthStep; channels = frame->nChannels; data = (uchar *)frame->imageData; printf("Processing a %dx%d image with %d channels\n",height,width,channels); for(i=0;i= 115 && data[i*step+j*channels+0] <= 135) && (data[i*step+j*channels+1] >= 17 && data[i*step+j*channels+1] <= 30) && (data[i*step+j*channels+2] >= 0 && data[i*step+j*channels+2] <= 25)) { data[i*step+j*channels+0]=255; data[i*step+j*channels+1]=255; data[i*step+j*channels+2]=255; } else { data[i*step+j*channels+0]=0; data[i*step+j*channels+1]=0; data[i*step+j*channels+2]=0; } } /* detect_and_draw( frame_copy ); */ cvShowImage("result", frame ); cvWaitKey(0); cvReleaseImage( &frame_copy ); cvDestroyWindow("result"); return 0; }