Pat*_*cia 10 opencv objective-c uiimage dispatch-async
我一直在寻找一个答案,有些人似乎可能是我需要的,但我不确定.我发现了这个问题#9152851和这个问题#2617625并在一堆链接上探讨了但我需要一些方向.
本质上,我正在调度异步调用以使用OpenCV处理图像.您可以通过此处的代码看到我将其转换为NSData*,然后再将其发送回我的代理人.
NSData *proccessedData = [NSData dataWithBytes:processedImage.data length:(processedImage.rows * processedImage.cols)];
[self.delegate onProcessedBitmapReady:proccessedData withFocusQuality:focusQuality];
Run Code Online (Sandbox Code Playgroud)
但是当我回到我的委托时,我的processedBitmap是类型(OS_dispatch_data*)并包含一个字节值.所以,当我尝试设置UIImage时,它被设置为null.
- (void)onProcessedBitmapReady:(NSData *)processedBitmap withFocusQuality:(double)focusQuality
{
//Use comverted image from self.captureCommand onComplete
UIImage *image = [[UIImage alloc] initWithData:processedBitmap];
[self saveImage:image];
}
Run Code Online (Sandbox Code Playgroud)
以下是值的屏幕截图:

那么,我如何将这些字节(或者它们是什么)转换成我可以填充到UIImage中的东西呢?
预先感谢您的帮助.
-------------------------------------------------- ----- 添加新图像 -----------------------------------------

这个新图片有帮助吗?
谢谢.
Jus*_*Sid 11
NSData实际上是一个只提供接口的类集群,它有很多特殊的实现.看起来这OS_dispatch_data是一个特殊的实现,用于在块周围传递数据对象,特别是因为你的UIImage创建不会崩溃(如果你将它传递给非NSData对象,或者只是垃圾内存).相反,它看起来好像UIImage根本无法识别图像所在的格式!
顺便说一下,Apple有一个很好的关于类集群概念的指南,可以在这里找到.