沒有隱形人也沒有小物
(......)
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <stdio.h>
#define refBlue 0
#define refGreen 0
#define refRed 50
#define targetBlue 0
#define targetGreen 0
#define targetRed 255
#define targetBlue1 35
#define targetGreen1 125
#define targetRed1 45
#define targetBlue2 80
#define targetGreen2 70
#define targetRed2 60
#define targetBlue3 160
#define targetGreen3 50
#define targetRed3 255
#define TH1 100
CvCapture *capture;
IplImage* frame = NULL;
IplImage* frame2 = NULL;
int main( int argc, char** argv )
{capture=cvCreateCameraCapture( 0 );
while(1)
{
//載入圖像,
frame = cvQueryFrame(capture);
frame2 = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U, 3);
frame2=cvCloneImage(frame);
for (int y=0; y<frame2->height; y++) {
uchar* ptr1=(uchar*) (frame2->imageData +y*frame2->widthStep);
uchar* ptr2=(uchar*) (frame2->imageData +y*frame2->widthStep);
for (int x=0; x<frame2->width; x++) {
int D= (ptr1[3*x] - refBlue) * (ptr1[3*x] - refBlue) +
(ptr1[3*x+1] - refGreen) * (ptr1[3*x+1] -refGreen) +
(ptr1[3*x+2] - refRed) * (ptr1[3*x+2] - refRed);
//printf("%d %d %d %.2f\n",ptr1[3*x],ptr1[3*x+1],ptr1[3*x+2], sqrt(D));
if (sqrt(D) < TH1 && x < frame -> width/2 && y < frame->height/2) {
ptr1[3*x]=targetBlue;
ptr1[3*x+1]=targetGreen;
ptr1[3*x+2]=targetRed;
}
if (sqrt(D) < TH1 && x < frame->width/2 && y > frame->height/2){
ptr1[3*x]=targetBlue1;
ptr1[3*x+1]=targetGreen1;
ptr1[3*x+2]=targetRed1;
}
if (sqrt(D) < TH1 && x > frame->width/2 && y < frame->height/2){
ptr1[3*x]=targetBlue2;
ptr1[3*x+1]=targetGreen2;
ptr1[3*x+2]=targetRed2;
}
if (sqrt(D) < TH1 && x > frame->width/2 && y > frame->height/2) {
ptr1[3*x]=targetBlue3;
ptr1[3*x+1]=targetGreen3;
ptr1[3*x+2]=targetRed3;
}
}
}
cvNamedWindow("Original frame", 1);
cvNamedWindow("Changed frame", 1);
cvShowImage( "Original frame", frame );
cvShowImage( "Changed frame", frame2 );
cvWaitKey(20);
}
cvDestroyWindow( "Original frame" );
cvDestroyWindow( "Changed frame" );
cvReleaseImage( &frame );
cvReleaseImage( &frame2 );
}
我學到了那個{}所處位置的重要性.............
沒有留言:
張貼留言