1
ウェブカメラが表示する画像からピクセルカラーを取得しようとしています。私は、ピクセルの色が時間とともにどのように変化しているのかを見たいと思います。ウェブカメラからピクセルカラーを取得する
私の現在のソリューションは、それが動作し、私に正しい答えを与えるが、私はこれを正しくやっているか、私はいくつかのステップを切り出すことができれば、私は100%を確認していない、CPUのLOTを吸います。
- (IBAction)addFrame:(id)sender
{
// Get the most recent frame
// This must be done in a @synchronized block because the delegate method that sets the most recent frame is not called on the main thread
CVImageBufferRef imageBuffer;
@synchronized (self) {
imageBuffer = CVBufferRetain(mCurrentImageBuffer);
}
if (imageBuffer) {
// Create an NSImage and add it to the movie
// I think I can remove some steps here, but not sure where.
NSCIImageRep *imageRep = [NSCIImageRep imageRepWithCIImage:[CIImage imageWithCVImageBuffer:imageBuffer]];
NSSize n = {320,160 };
//NSImage *image = [[[NSImage alloc] initWithSize:[imageRep size]] autorelease];
NSImage *image = [[[NSImage alloc] initWithSize:n] autorelease];
[image addRepresentation:imageRep];
CVBufferRelease(imageBuffer);
NSBitmapImageRep* raw_img = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]];
NSLog(@"image width is %f", [image size].width);
NSColor* color = [raw_img colorAtX:1279 y:120];
float colourValue = [color greenComponent]+ [color redComponent]+ [color blueComponent];
[graphView setXY:10 andY:200*colourValue/3];
NSLog(@"%0.3f", colourValue);
他のアイデアをお試しいただきありがとうございます。 ありがとうございます。
ありがとうございました。私はこのガイドを少し使い、バッファからデータを取得しようとしています。 –