gpt4 book ai didi

ios - 核心 ML : UIImage from RGBA byte array not fully shown

转载 作者:可可西里 更新时间:2023-11-01 01:09:04 24 4
gpt4 key购买 nike

结合 Core ML,我尝试使用以下代码在 UIImage 中显示 RGBA 字节数组:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(bytes, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast);
CFRelease(colorSpace);

CGImageRef cgImage = CGBitmapContextCreateImage(context);
CGContextRelease(context);

UIImage *image = [UIImage imageWithCGImage:cgImage scale:0 orientation:UIImageOrientationUp];
CGImageRelease(cgImage);

dispatch_async(dispatch_get_main_queue(), ^{
[[self predictionView] setImage:image];
});

我这样创建图像数据:

 uint32_t offset = h * width * 4 + w * 4;
struct Color rgba = colors[highestClass];
bytes[offset + 0] = (rgba.r);
bytes[offset + 1] = (rgba.g);
bytes[offset + 2] = (rgba.b);
bytes[offset + 3] = (255 / 2); // semi transparent

图像大小为 500px x 500px。但是,未显示完整图像,看起来图像显示为 50% 放大。

我开始搜索这个问题,发现其他人也有同样的问题。这就是为什么我决定编辑我的 StoryBoard 并为 Content Mode 设置不同的值,目前我使用 Aspect Fit。但是,结果保持不变。

我还尝试在图像中心画一条水平线以显示图像放大了多少。它确认图像放大了 50%

我在 swift 中编写了相同的代码,运行良好。在此处查看 swift 上的代码和结果:

let offset = h * width * 4 + w * 4
let rgba = colors[highestClass]
bytes[offset + 0] = (rgba.r)
bytes[offset + 1] = (rgba.g)
bytes[offset + 2] = (rgba.b)
bytes[offset + 3] = (255/2) // semi transparent

let image = UIImage.fromByteArray(bytes, width: width, height: height,
scale: 0, orientation: .up,
bytesPerRow: width * 4,
colorSpace: CGColorSpaceCreateDeviceRGB(),
alphaInfo: .premultipliedLast)

https://github.com/hollance/CoreMLHelpers/blob/master/CoreMLHelpers/UIImage%2BCVPixelBuffer.swift

enter image description here

下面是 objective-c 中的错误结果。您可以看到,与 swift 相比,它的像素化程度非常高。手机是 iPhone 6s。

我错过了什么或做错了什么?

iPhone 6s screenshot

XCode screenshot

最佳答案

I am trying to show a RGB byte array

那么 kCGImageAlphaPremultipliedLast 是不正确的。尝试切换到 kCGImageAlphaNone

关于ios - 核心 ML : UIImage from RGBA byte array not fully shown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49665435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com