0
GPUImageフレームワークを使用して、一部のカメラ入力の平均赤色値を取得しています。私は、配列内の平均赤値のすべてを格納していて、私はこれをしようとしている:バイナリ式( "id"と "int")のオペランドが無効です
NSMutableArray *redValues = [NSMutableArray array];
__block int counter = 0;
GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
GPUImageAverageColor *averageColor = [[GPUImageAverageColor alloc] init];
[averageColor setColorAverageProcessingFinishedBlock:^(CGFloat redComponent, CGFloat greenComponent, CGFloat blueComponent, CGFloat alphaComponent, CMTime frameTime)
{
NSLog(@"%f", redComponent);
[redValues addObject:@(redComponent)];
counter++;
}];
for (int i = 0; i < counter; i++)
{
redValues[i] *= 255; // errors occurs here
}
ところで、あなたが0と1の間の値として、ここで 'redComponent'を受けることになると思われます。これは、 'numberWithInt:'でそれを保存すると、ほぼすべての値を0に切り捨てることを意味します。後で255を掛けてもあまり役に立ちません。どうして '[redValues addObject:@(redComponent * 255)]'を直接呼びませんか?あなたはまた、後でループを排除することになります... –
@ItaiFerber私はそれをアップヴォートできるように答えとして投稿してください。 – fi12
なぜあなたの 'redValues'配列に' counter'を追加しますか?それはまったく動作しません。 'redComponent'を追加する必要があります。 '[redValues addObject:@(redComponent)];'。 – rmaddy