Upload
rizki-anhar
View
216
Download
0
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: