Thank you~.
//image class
IplImage* image = 0;
//camera point
CvCapture* capture = cvCaptureFromCAM(0);
//make window
cvNamedWindow( "camera");
//image class for processing
IplImage* image2=0;
//make window
cvNamedWindow( "camera2");
unsigned char R,G,B;
while(1) {
//capture a frame form cam
cvGrabFrame( capture );
//copy to image class
image = cvRetrieveFrame( capture );
//create image at one time in the roof
if(image2 == 0)
{
image2 = cvCreateImage(cvSize(image->width, image->height), image->depth, image->nChannels);
}
//simple image processing
for(int i=0; i<image->height; ++i)
{
for(int j=0; j<image->width; ++j)
{
//to get R,G,B value
B = (unsigned char)image->imageData[i*image->widthStep+j*3+0];
G = (unsigned char)image->imageData[i*image->widthStep+j*3+1];
R = (unsigned char)image->imageData[i*image->widthStep+j*3+2];
//image color converting
B = 255-B;
G = 255-G;
R = 255-R;
//copy R,G,B value to image2
image2->imageData[i*image2->widthStep+j*3+0] = B;
image2->imageData[i*image2->widthStep+j*3+1] = G;
image2->imageData[i*image2->widthStep+j*3+2] = R;
}
}
//show window
cvShowImage( "camera", image );
cvShowImage( "camera2", image2 );
//break
if( cvWaitKey(10) >= 0 )
break;
}
//release imge
cvReleaseImage(&image2);
//release capture point
cvReleaseCapture( &capture );
//close the window
cvDestroyWindow( "camera" );
cvDestroyWindow( "camera2" );
No comments:
Post a Comment