This is default featured slide 1 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 2 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 3 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 4 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

This is default featured slide 5 title

Selamat datang di blog saya, jika kalian suka ngeblogger berbagilah ilmu www.cahilangall012.blogspot.com.

Friday, March 31, 2017

TUTORIAL WEBCAM for OpenCv 2.410 and Visual Basic 2012 #Detector Obyek

TUTORIAL WEBCAM for OpenCv 2.410 and Visual Basic 2012


1.           Instal OpenCV 2.410 dan Visual Basic 2012
2.           Buka VB.12 lalu ikuti langkah-langkah berikut :

a.    Klik kanan pada main VB // Properties //



b.   Muncul tampilan seperti dibawah, lalu klik edit ....



c.    Kemudian masukan file OpenCV 2.410, lalu tambahkan ::







Contoh alamat :
1.   D:\MASTER =kursor\OPENCV\INSTAL OPENCV 2.41\opencv\build\include\opencv
2.   D:\MASTER =kursor\OPENCV\INSTAL OPENCV 2.41\opencv\build\include

d.    Kemudian masukan Linker // input // Additional ,,, EDIT




Masukan data Tersebut : "D:\MASTER =KURSOR\OPENCV\ : menurut lokasi tempat Instal OpenCV anda...

"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_calib3d2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_calib3d2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_contrib2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_contrib2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_core2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_core2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_features2d2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_features2d2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_flann2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_flann2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_gpu2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_gpu2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_highgui2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_highgui2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_imgproc2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_imgproc2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_legacy2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_legacy2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_ml2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_ml2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_nonfree2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_nonfree2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_objdetect2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_objdetect2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_ocl2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_ocl2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_photo2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_photo2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_stitching2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_stitching2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_superres2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_superres2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_ts2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_ts2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_video2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_video2410d.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_videostab2410.lib"
"D:\MASTER =KURSOR\OPENCV\INSTAL OPENCV 2.41\opencv\build\x86\vc10\lib\opencv_videostab2410d.lib"
e.    Terakhir silahkan masukan program dibawah ,,

3.           Done




Silahkah Email : Setiawan_alik@yahoo.com



#include <iostream>
#include<opencv/cvaux.h>
#include<opencv/highgui.h>
#include<opencv/cxcore.h>
#include <sstream>
#include <string>
#include <opencv\cv.h>

#include<stdio.h>
#include<stdlib.h>

#include <Windows.h>


int H_MIN = 0;
int H_MAX = 256;
int S_MIN = 0;
int S_MAX = 256;
int V_MIN = 0;
int V_MAX = 256;
using namespace cv;

const string trackbarWindowName = "Trackbars";

void on_trackbar( int, void* )
{//This function gets called whenever a
 // trackbar position is changed
}

void createTrackbars(){

    namedWindow(trackbarWindowName,0);
        char TrackbarName[50];
        sprintf( TrackbarName, "H_MIN", H_MIN);
        sprintf( TrackbarName, "H_MAX", H_MAX);
        sprintf( TrackbarName, "S_MIN", S_MIN);
        sprintf( TrackbarName, "S_MAX", S_MAX);
        sprintf( TrackbarName, "V_MIN", V_MIN);

    createTrackbar( "H_MIN", trackbarWindowName, &H_MIN, H_MAX, on_trackbar );
    createTrackbar( "H_MAX", trackbarWindowName, &H_MAX, H_MAX, on_trackbar );
    createTrackbar( "S_MIN", trackbarWindowName, &S_MIN, S_MAX, on_trackbar );
    createTrackbar( "S_MAX", trackbarWindowName, &S_MAX, S_MAX, on_trackbar );
    createTrackbar( "V_MIN", trackbarWindowName, &V_MIN, V_MAX, on_trackbar );
    createTrackbar( "V_MAX", trackbarWindowName, &V_MAX, V_MAX, on_trackbar );

}

int main(int argc, char* argv[])
{
        // Setup serial port connection and needed variables.
        HANDLE hSerial = CreateFile(L"COM2", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

        if (hSerial !=INVALID_HANDLE_VALUE)
    {
        printf("Port opened! \n");

        DCB dcbSerialParams;
        GetCommState(hSerial,&dcbSerialParams);

        dcbSerialParams.BaudRate = CBR_9600;
        dcbSerialParams.ByteSize = 8;
        dcbSerialParams.Parity = NOPARITY;
        dcbSerialParams.StopBits = ONESTOPBIT;

        SetCommState(hSerial, &dcbSerialParams);
        }
        else
        {
                if (GetLastError() == ERROR_FILE_NOT_FOUND)
                {
                        printf("Serial port doesn't exist! \n");
                }

                printf("Error while setting up serial port! \n");
        }

        char outputChars[] = "c";
        DWORD btsIO;

        CvSize size640x480 = cvSize(640, 480);         
        CvCapture* p_capWebcam;                        
        IplImage* p_imgOriginal;       
        IplImage* p_imgProcessed;                      
        IplImage* p_imgHSV;

        CvMemStorage* p_strStorage;            
        CvSeq* p_seqCircles;                                   
        float* p_fltXYRadius;                          
                       
        char charCheckForEscKey;                       

        p_capWebcam = cvCaptureFromCAM(0);     

        if(p_capWebcam == NULL) {                       // if capture was not successful . . .
                printf("error: capture is NULL \n");    // error message to standard out . . .
                getchar();                     
                return(-1);                    
        }

                                               
        cvNamedWindow("Original", CV_WINDOW_AUTOSIZE);          // original image from webcam
        cvNamedWindow("Processed", CV_WINDOW_AUTOSIZE);        

        createTrackbars();
        p_imgProcessed = cvCreateImage(size640x480,            
        IPL_DEPTH_8U,           // 8-bit color depth
        1);             // 1 channel (grayscale), if this was a color image, use 3

        p_imgHSV = cvCreateImage(size640x480, IPL_DEPTH_8U, 3);

        // Variables for Arduino Control
        int servoPosition = 90;
        int servoOrientation = 0;
        int servoPosition1=90;
        int servoOrientation1=0;

        // Main program loop
        while(1) {                                     
                p_imgOriginal = cvQueryFrame(p_capWebcam);
               
                if(p_imgOriginal == NULL) {            
                        printf("error: frame is NULL \n");     
                        getchar();
                        break;
                }


                cvCvtColor(p_imgOriginal, p_imgHSV, CV_BGR2HSV);

                cvInRangeS(p_imgHSV,                            // function input
                                   cvScalar(H_MIN,  S_MIN,  V_MIN),
                                   cvScalar(H_MAX, S_MAX, V_MAX),
                                   p_imgProcessed);            

                p_strStorage = cvCreateMemStorage(0);

                                                       
                cvSmooth(p_imgProcessed,                // function input
                                 p_imgProcessed,                // function output
                                 CV_GAUSSIAN,          
                                 9,     // smoothing filter window width
                                 9);    // smoothing filter window height

                                       
                p_seqCircles = cvHoughCircles(p_imgProcessed,p_strStorage,CV_HOUGH_GRADIENT, 2,p_imgProcessed->height / 4,    100, 50, 10, 400);                              if (p_seqCircles->total == 0)
                {
                        if (servoOrientation == 0)
                        {
                                if (servoPosition >= 90)
                                        servoOrientation = 1;
                                else
                                        servoOrientation = -1;
                        }

                        if (servoOrientation == 1)
                        {
                                outputChars[0] = 'l';
                                WriteFile(hSerial, outputChars, strlen(outputChars), &btsIO, NULL);

                                // This code is identical to the one on the Arduino side
                                servoPosition+=1;

                                if (servoPosition > 180)
                                {
                                        servoPosition = 180;
                                        servoOrientation = -1;
                                }
                        }
                }
                    if (p_seqCircles->total == 1)
                        {
                        p_fltXYRadius = (float*)cvGetSeqElem(p_seqCircles, 1); 
                        printf("ball position x = %f, y = %f, r = %f \n", p_fltXYRadius[0], p_fltXYRadius[1],p_fltXYRadius[2]);     // radius of circle

                        cvCircle(p_imgOriginal, cvPoint(cvRound(p_fltXYRadius[0]), cvRound(p_fltXYRadius[1])),3,CV_RGB(0,255,0),CV_FILLED);               
                        cvCircle(p_imgOriginal, cvPoint(cvRound(p_fltXYRadius[0]), cvRound(p_fltXYRadius[1])), cvRound(p_fltXYRadius[2]),CV_RGB(255,0,0),3);                                  
                }       // end for

                cvShowImage("Original", p_imgOriginal);                 // original image with detectec ball overlay
                cvShowImage("Processed", p_imgProcessed);               // image after processing

                cvReleaseMemStorage(&p_strStorage);                    

                charCheckForEscKey = cvWaitKey(10);    
                if(charCheckForEscKey == 27) break;            
        }       // end while

        cvReleaseCapture(&p_capWebcam);                
        cvDestroyWindow("Original");
        cvDestroyWindow("Processed");
CloseHandle(hSerial);

        return(0);
}



Link MODUL : DOnwload