Tag: 核心形象

核心图像检测器(CIDetector)没有检测到QRCodes

我试图让我的应用程序的用户能够从他们的库中获取图像并从中扫描QR码。 这是相关的代码: 这是从图像select器返回所选图像的function。 func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { let thisImage:CIImage? = CIImage(image: image) let code = performQRCodeDetection(thisImage!) self.dismissViewControllerAnimated(true, completion: nil) self.performSegueWithIdentifier("goBackSegue", sender: code) } 在那个函数里面我调用这个函数来做QRCode扫描: func performQRCodeDetection(image: CIImage) -> String { var decode = "" let options = [CIDetectorAccuracy: CIDetectorAccuracyHigh] let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: options) […]

如何将字节转换为Swift中的半浮点数?

如何在Swift中将两个字节(UInt8)转换为半精度(16位)Float,例如在读取具有kCIFormatRGBAh的CIAreaHistogram的输出时所需的字节,如下例所示: func areaHistogram(image : UIImage) { let inputImage = CIImage(image: image) let totalBytes : Int = bpp * BINS //8 * 64 for example let bitmap : UnsafeMutablePointer<Void> = calloc(totalBytes, bpp) let filter = CIFilter(name: "CIAreaHistogram")! filter.setValue(inputImage, forKey: kCIInputImageKey) filter.setValue(CIVector(x: 0, y: 0, z: image.size.width, w: image.size.height), forKey: kCIInputExtentKey) filter.setValue(BINS, forKey: "inputCount") filter.setValue(1, forKey: "inputScale") […]

从函数中获取UIImage

我写了一个函数来将filter应用到照片上。 为什么函数总是返回零? func getImage() -> UIImage? { let openGLContext = EAGLContext(api: .openGLES2) let context = CIContext(eaglContext: openGLContext!) let coreImage = UIImage(cgImage: image.cgImage!) filter.setValue(coreImage, forKey: kCIInputImageKey) filter.setValue(1, forKey: kCIInputContrastKey) if let outputImage = filter.value(forKey: kCIOutputImageKey) as? CIImage { let output = context.createCGImage(outputImage, from: outputImage.extent) return UIImage(cgImage: output!) } return nil }

在Swift中使用实时filter录制video

我是新来的迅速,并试图build立一个相机应用程序,可以应用实时filter,并保存与应用的filter。 到目前为止,我可以预览实时应用的filter,但是当我保存video全黑。 import UIKit import AVFoundation import AssetsLibrary import CoreMedia import Photos class ViewController: UIViewController , AVCaptureVideoDataOutputSampleBufferDelegate { var captureSession: AVCaptureSession! @IBOutlet weak var previewView: UIView! @IBOutlet weak var recordButtton: UIButton! @IBOutlet weak var imageView: UIImageView! var assetWriter: AVAssetWriter? var assetWriterPixelBufferInput: AVAssetWriterInputPixelBufferAdaptor? var isWriting = false var currentSampleTime: CMTime? var currentVideoDimensions: CMVideoDimensions? override func viewDidLoad() […]

为什么我不能在我的Swift iOS应用程序中使用CIFilter将图像反转为原始图像

我正在做一个简单的应用程序。 它有一个图像视图与预先加载的图像和一个button。 按下button时应该反转图像视图中的图像。 它第一次工作,但我希望它再次按下button时,将图像反转回原来的forms。 然而它在第二次按下button时崩溃。 以下是来自ViewController.swift的相关代码: @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var invertButton: UIButton! @IBAction func invertButtonPressed(sender: UIButton) { let beginImage = CIImage(image: imageView.image!) let filter = CIFilter(name: "CIColorInvert")! filter.setValue(beginImage, forKey: kCIInputImageKey) imageView.image = UIImage(CIImage: (filter.outputImage)!) } 基本上, beginImage第二次成为nil ,我不知道为什么。 我已经尝试通过将这些密集的行分割为尽可能多的分配,但是这个CIImage构造函数发生了一些神秘的事情。 有任何想法吗?

在Swift中逐像素地应用视觉效果

我有一个大学的任务来创build视觉效果,并将其应用于通过设备相机捕获的video帧。 我目前可以得到的图像和显示,但不能改变像素的颜色值。 我将示例缓冲区转换为imageRefvariables,如果将其转换为UIImage,则一切正常。 但是现在我想让imageRef逐个像素地改变其颜色的值,在这个例子中改变为负面的颜色(我必须做更复杂的东西,所以我不能使用CIFilters),但是当我执行它所撞见的评论部分访问不好。 import UIKit import AVFoundation class ViewController: UIViewController, AVCaptureVideoDataOutputSampleBufferDelegate { let captureSession = AVCaptureSession() var previewLayer : AVCaptureVideoPreviewLayer? var captureDevice : AVCaptureDevice? @IBOutlet weak var cameraView: UIImageView! override func viewDidLoad() { super.viewDidLoad() captureSession.sessionPreset = AVCaptureSessionPresetMedium let devices = AVCaptureDevice.devices() for device in devices { if device.hasMediaType(AVMediaTypeVideo) && device.position == AVCaptureDevicePosition.Back { if […]

CIFilter输出图像无

我正在使用核心图像,并将CIFilter棕褐色调应用于图像。 我在viewDidLoad中运行一次filter,然后立即调用另一个函数,再次添加filter。 出于某种原因,当我尝试访问输出图像,应用程序崩溃,并说输出图像是零。 任何人都知道这是为什么发生? 谢谢 import UIKit class ViewController: UIViewController { @IBOutlet weak var myimage: UIImageView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let image = CIImage(image: myimage.image) let filter = CIFilter(name: "CISepiaTone") filter.setDefaults() filter.setValue(image, forKey: kCIInputImageKey) myimage.image = UIImage(CIImage: filter.outputImage) self.reapplyFilter() } func […]