相关疑难解决方法(0)

在iOS5中从CIImage创建UIImage时遇到问题

我正在使用AVFoundation框架.在我的示例缓冲区委托中,我有以下代码:

-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection{
     CVPixelBufferRef pb = CMSampleBufferGetImageBuffer(sampleBuffer);
     CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pb];
     self.imageView.image = [UIImage imageWithCIImage:ciImage];
}
Run Code Online (Sandbox Code Playgroud)

我可以使用CIImage来运行面部检测器等但它没有出现在UIImageView中...... imageView仍然是白色的.关于这个问题的任何想法?我使用以下设置我的会话:

    self.session = [[AVCaptureSession alloc] init];
self.session.sessionPreset = AVCaptureSessionPreset640x480;
self.videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
self.videoInput = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:nil]; 
self.frameOutput = [[AVCaptureVideoDataOutput alloc] init];
self.frameOutput.videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
Run Code Online (Sandbox Code Playgroud)

iphone core-image avfoundation ios ios5

17
推荐指数
2
解决办法
2万
查看次数

从CIImage创建UIImage时反转的颜色(iOS 6.0)

我一直在尝试大量不同的选项和技巧,以便从CIImage中正确构建UIImage.但是,每次我创建CIImage时,它的颜色似乎都是倒置的.

我最近的代码是:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"C4Sky" withExtension:@"png"];
CIImage *c = [CIImage imageWithContentsOfURL:url];
UIImage *i = [UIImage imageWithCIImage:c];
UIImageView *uiiv = [[UIImageView alloc] initWithImage:i];
[self.canvas addSubview:uiiv];
Run Code Online (Sandbox Code Playgroud)

产生以下图像:

倒彩色图像.

但是,构建这样的图像:

UIImage *i = [UIImage imageNamed:@"C4Sky"];
UIImageView *uiiv = [[UIImageView alloc] initWithImage:i];
[self.canvas addSubview:uiiv];
Run Code Online (Sandbox Code Playgroud)

...产生以下图像:

在此输入图像描述

我尝试了很多不同的构建CIImage的方法.

这是否发生是因为iOS中CIImage的像素格式是ARGB?(看来这是iOS6上唯一可能的格式)

如果是这样,我如何交换像素格式让这个CIImage看起来正常?



我已经在git上创建了一个项目回购,显示了我尝试的所有主要不同方式(不包括每个方面的变体).有6种方法,前5种方法失败:

https://github.com/C4Code/CIImageTest

最后一种方法有效,但它真的很脏:

-(void)test6 {
    UIImage *img = [UIImage imageNamed:@"C4Sky"];

    CGContextRef    bitmapContext = NULL;
    void *          bitmapData;
    int             bitmapByteCount;
    int             bitmapBytesPerRow;
    CGSize          size = img.size;
    bitmapBytesPerRow   = (size.width …
Run Code Online (Sandbox Code Playgroud)

core-image uikit uiimage ios ciimage

5
推荐指数
1
解决办法
1759
查看次数

是否可以在 IOS swift 中从更大的图像中检测到矩形图像?

举例来说,我在桌子上放了一张名片,我只想将名片扫描出来。类似于二维码扫描仪,我想将名片图像扫描到应用程序中。

我听说过 OpenCV,但不确定如何在 swift 3 中使用它。有什么建议可以指导我朝着正确的方向发展?

ios

2
推荐指数
1
解决办法
4163
查看次数

标签 统计

ios ×3

core-image ×2

avfoundation ×1

ciimage ×1

ios5 ×1

iphone ×1

uiimage ×1

uikit ×1