//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include "C:\Program Files (x86)\Borland\Opencv2.1\include\opencv\cv.h";
#include "C:\Program Files (x86)\Borland\Opencv2.1\include\opencv\highgui.h";
using namespace cv;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
IplImage* createMask(IplImage* image)
{
IplImage *mask;
mask = cvCreateImage( cvGetSize(image) ,IPL_DEPTH_8U, image->nChannels);
//mask = cvCreateImage( cvGetSize(image) , 8,1);
// image->depth, 1 ); //cvSize(640,480) // cvGetSize(image)
cvInRangeS(image, cvScalar( 0.0, 0.0,125.0), cvScalar( 130.0, 130.0,255.0 + 1.0), mask);
cvNot(mask, mask);
return mask;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// Image & hsvImage
IplImage *image, *imagePNG, *mask;
// Video Capture
CvCapture *capture;
// Key for keyboard event
char key;
//imagePNG = cvCreateImage(cvSize(640,480),8,1);
// Import png image
imagePNG = cvLoadImage("1.png");
if (!imagePNG) Application->Terminate();
cvShowImage(" Image PNG ", imagePNG);
mask = createMask(imagePNG);
// cvCaptureFromCAM( 1
capture = cvCreateCameraCapture(1);
// Initialize the video Capture (200 => CV_CAP_V4L2)
capture = cvCreateCameraCapture(1);
// cvCaptureFromCAM( 1 );//cvCreateCameraCapture(200);
// Check if the capture is ok
if (!capture) { printf("Can't initialize the video capture.\n"); }
// Create the windows
cvNamedWindow("GeckoGeek Image PNG & Transparence", CV_WINDOW_AUTOSIZE);
// While we don't want to quit
while(key != 'Q' && key != 'q') {
// We get the current image
image = cvQueryFrame(capture);
// If there is no image, we exit the loop
if(!image) continue;
cvSetImageROI(image, cvRect(100, 100, imagePNG->width, imagePNG->height));
cvCopy(imagePNG, image, mask);
cvResetImageROI(image);
cvShowImage("GeckoGeek Image PNG & Transparence", image);
// We wait 10 ms
key = cvWaitKey(10);
}
// Destroy the window we have created
cvDestroyWindow("GeckoGeek Image PNG & Transparence");
// Destroy the mask
cvReleaseImage(&mask);
// Destroy the capture
cvReleaseCapture(&capture);
Partager