【发布时间】:2022-01-16 08:46:15
【问题描述】:
我正在使用 Swift 的 Vision Framework 进行深度学习,并希望使用 REST API 将输入图像上传到后端 - 为此,我使用本机 swift 的 jpegData() 和 pngData() 函数将我的 UIImage 转换为 MultipartFormData优惠。
我使用session.sessionPreset = .vga640x480 在我的应用程序中指定要处理的图像大小。
我在后端看到不同大小的图像 - 我能够在应用程序中确认这一点,因为从图像转换而来的 UIImage(imageData) 大小不同。
这就是我将图像转换为multipartData 的方式-
let multipartData = MultipartFormData()
if let imageData = self.image?.jpegData(compressionQuality: 1.0) {
multipartData.append(imageData, withName: "image", fileName: "image.jpeg", mimeType: "image/jpeg")
}
这是我在 Xcode 调试器中看到的 -
【问题讨论】:
-
你知道
scale是什么意思吗? :) 您已将点大小转换为像素大小。 -
您的图像显然是 640×480 点,比例为 2,结果为 1280×960 像素。我们可以将您指向用于调整大小的例程,或者更好地以 1 的比例捕获原始文件。例如,如果使用
UIGraphicsImageRenderer捕获,则在此处指定比例,然后不需要后续调整大小。 -
感谢详细的解释!将
sessionPreset用作vga640x480的最初目的是使原始图像“缩小”到 (640, 480) 的大小,因为我不需要 (1280, 960) 进行处理。如果我的图像是比例为 2 的 640x480 点,我的深度学习模型是否仍需要与比例为 1 的 1280x960 点相同的处理方式? -
目前,我从函数中得到
pixelBuffer-didOutput sampleBuffer: CMSampleBuffer通过使用pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)然后CIImage(cvPixelBuffer: pixelBuffer)我的视觉模型使用。处理这个问题的更好方法是什么,以便我可以继续使用尺寸(640、480)的图像?非常感谢您的帮助! -
png 和 jpeg 使用不同的压缩算法,所以你有不同的尺寸。
标签: ios swift uiimage coreml vision