TUGAS 3

Embed Size (px)

DESCRIPTION

Machine Vision

Citation preview

Nama: Rizki Anhar R Putra

NRP: 2210100134

Tugas 3 Machine Vision: Membuat Deteksi Kulit dengan Kalibrasi RGBProgram di Visual Studio 2010:

Listing Program:

#include#includeint main()

{

CvCapture*capture=0;

IplImage*frame=0;

IplImage*gray=0;

capture=cvCaptureFromCAM(0);

cvNamedWindow("RGB",1);

cvNamedWindow("Gray",1);

if(capture)

{

for(;;)

{

if( !cvGrabFrame( capture ))

break;

frame = cvRetrieveFrame( capture );

if(!frame)

break;

gray=cvCreateImage(cvSize(frame->width,frame->height),8,1);

for(int x=0;xwidth;x++)

for(int y=0;yheight;y++)

{

float total=

(uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+1]+(uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+2]+(uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+3];

float R=

((uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+1])/(total);

float G=

((uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+2])/(total);

float B=

((uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+3])/(total);

if(0nChannels]=0;

}

cvCvtColor(frame,gray,CV_RGB2GRAY);

cvShowImage("RGB",frame);

cvShowImage("Gray",gray);

if(cvWaitKey(10)>=0)

break;

}

cvReleaseCapture(&capture);

}

cvDestroyWindow("RGB");

cvDestroyWindow("Gray");

return 0;

}

Penjelasan Program:

1. CvCapture*capture=0; = membuat variable capture untuk mengcapture camera

IplImage*frame=0;= menapung gambar camera

IplImage*gray=0;= menapung gambar cameracapture=cvCaptureFromCAM(0);= menentukan device untuk mengcapture gambar(kamera),0 merupakan ID device

cvNamedWindow("RGB",1);= membuat window dengan nama RGB

cvNamedWindow("Gray",1);= membuat window dengan nama Gray2. if(capture)= jika capture ada maka:

{

for(;;)= diulang terus menerus

{

if( !cvGrabFrame( capture ))

break;

frame = cvRetrieveFrame( capture );= akan mengabil gambar berwarna pada kamera

if(!frame)

= jika tidak ada maka berhenti

break;

gray=cvCreateImage(cvSize(frame->width,frame->height),8,1);

= gray:membuat gambar dengan 8bit dan satu channel(hitam putih)

for(int x=0;xwidth;x++)

3. Program Utama Pengaturan RGB:

{

float total=

(uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+1]+(uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+2]+(uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+3];

= variabel total dengan type data float: R+G+B

float R=

((uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+1])/(total);

= variabel R dengantype data float: R/total

float G=

((uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+2])/(total);

= variabel G dengan type data float: G/total

float B=

((uchar)frame->imageData[frame->widthStep*y+x*frame->nChannels+3])/(total);

= variabel B dengan type data float: B/total

if(0nChannels]=0;

}

4. cvCvtColor(frame,gray,CV_RGB2GRAY);

cvShowImage("RGB",frame);

= menampilkan gambar frame ke window RGB

cvShowImage("Gray",gray);

= menampilkan gambar gray ke window gray

if(cvWaitKey(10)>=0)

= jika ada tombol yang ditekan maka selesai

break;

}

cvReleaseCapture(&capture);

}

cvDestroyWindow("RGB");

= menghilangkan window RGB

cvDestroyWindow("Gray");

= menghilangkan window Gray

return 0;

HASIL PROGRAM: