|
|
@ -491,8 +491,8 @@ CV_IMPL int cvWaitKey (int maxWait) |
|
|
|
{ |
|
|
|
{ |
|
|
|
//cout << "cvWaitKey" << endl; |
|
|
|
//cout << "cvWaitKey" << endl; |
|
|
|
int returnCode = -1; |
|
|
|
int returnCode = -1; |
|
|
|
double start = [[NSDate date] timeIntervalSince1970]; |
|
|
|
|
|
|
|
NSAutoreleasePool *localpool = [[NSAutoreleasePool alloc] init]; |
|
|
|
NSAutoreleasePool *localpool = [[NSAutoreleasePool alloc] init]; |
|
|
|
|
|
|
|
double start = [[NSDate date] timeIntervalSince1970]; |
|
|
|
|
|
|
|
|
|
|
|
while(true) { |
|
|
|
while(true) { |
|
|
|
if(([[NSDate date] timeIntervalSince1970] - start) * 1000 >= maxWait && maxWait>0) |
|
|
|
if(([[NSDate date] timeIntervalSince1970] - start) * 1000 >= maxWait && maxWait>0) |
|
|
@ -686,7 +686,7 @@ CV_IMPL int cvWaitKey (int maxWait) |
|
|
|
cvimage = cvCreateMat(arrMat->rows, arrMat->cols, CV_8UC3); |
|
|
|
cvimage = cvCreateMat(arrMat->rows, arrMat->cols, CV_8UC3); |
|
|
|
cvConvertImage(arrMat, cvimage, CV_CVTIMG_SWAP_RB); |
|
|
|
cvConvertImage(arrMat, cvimage, CV_CVTIMG_SWAP_RB); |
|
|
|
|
|
|
|
|
|
|
|
CGColorSpaceRef colorspace = NULL; |
|
|
|
/*CGColorSpaceRef colorspace = NULL; |
|
|
|
CGDataProviderRef provider = NULL; |
|
|
|
CGDataProviderRef provider = NULL; |
|
|
|
int width = cvimage->width; |
|
|
|
int width = cvimage->width; |
|
|
|
int height = cvimage->height; |
|
|
|
int height = cvimage->height; |
|
|
@ -703,15 +703,40 @@ CV_IMPL int cvWaitKey (int maxWait) |
|
|
|
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithCGImage:imageRef]; |
|
|
|
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithCGImage:imageRef]; |
|
|
|
if(image) { |
|
|
|
if(image) { |
|
|
|
[image release]; |
|
|
|
[image release]; |
|
|
|
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL |
|
|
|
|
|
|
|
pixelsWide:cvimage->width |
|
|
|
|
|
|
|
pixelsHigh:cvimage->height |
|
|
|
|
|
|
|
bitsPerSample:8 |
|
|
|
|
|
|
|
samplesPerPixel:3 |
|
|
|
|
|
|
|
hasAlpha:NO |
|
|
|
|
|
|
|
isPlanar:NO |
|
|
|
|
|
|
|
colorSpaceName:NSDeviceRGBColorSpace |
|
|
|
|
|
|
|
bytesPerRow:(cvimage->width * 4) |
|
|
|
|
|
|
|
bitsPerPixel:32]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int pixelCount = cvimage->width * cvimage->height; |
|
|
|
|
|
|
|
unsigned char *src = cvimage->data.ptr; |
|
|
|
|
|
|
|
unsigned char *dst = [bitmap bitmapData]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for( int i = 0; i < pixelCount; i++ ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
dst[i * 4 + 0] = src[i * 3 + 0]; |
|
|
|
|
|
|
|
dst[i * 4 + 1] = src[i * 3 + 1]; |
|
|
|
|
|
|
|
dst[i * 4 + 2] = src[i * 3 + 2]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( image ) |
|
|
|
|
|
|
|
[image release]; |
|
|
|
|
|
|
|
|
|
|
|
image = [[NSImage alloc] init]; |
|
|
|
image = [[NSImage alloc] init]; |
|
|
|
[image addRepresentation:bitmap]; |
|
|
|
[image addRepresentation:bitmap]; |
|
|
|
[bitmap release]; |
|
|
|
[bitmap release]; |
|
|
|
|
|
|
|
|
|
|
|
CGColorSpaceRelease(colorspace); |
|
|
|
/*CGColorSpaceRelease(colorspace); |
|
|
|
CGDataProviderRelease(provider); |
|
|
|
CGDataProviderRelease(provider); |
|
|
|
CGImageRelease(imageRef); |
|
|
|
CGImageRelease(imageRef);*/ |
|
|
|
cvReleaseMat(&cvimage); |
|
|
|
cvReleaseMat(&cvimage); |
|
|
|
[localpool drain]; |
|
|
|
[localpool drain]; |
|
|
|
|
|
|
|
|
|
|
|