Expand ar frame metadata with focal length and fnumber

This commit is contained in:
Georg Hagen
2025-02-12 23:45:39 +01:00
parent 453c42755a
commit 514371900b
5 changed files with 33 additions and 4 deletions

View File

@@ -32,6 +32,8 @@ namespace OpenVulkano::AR::ArKit
ARFrame* GetArKitFrame() const { return m_arKitFrame; }
bool GetCameraImageAsJpeg(const std::function<void(const char*, size_t)>& handler) override;
std::string GetLensModel() const override;
private:
ARFrame* m_arKitFrame;

View File

@@ -13,6 +13,7 @@
#import <ARKit/ARLightEstimate.h>
#import <ARKit/ARPointCloud.h>
#import <CoreVideo/CoreVideo.h>
#import <ImageIO/CGImageProperties.h>
namespace OpenVulkano::AR::ArKit
{
@@ -88,6 +89,12 @@ namespace OpenVulkano::AR::ArKit
frameData.timestampDepth = arFrame.capturedDepthDataTimestamp;
frameData.trackingState = GetArTrackingState(arFrame.camera);
if (@available(iOS 16.0, *))
{
frameData.focalLength = [(NSNumber*)[arFrame.exifData valueForKey:(__bridge NSString*)kCGImagePropertyExifFocalLength] floatValue];
frameData.fNumber = [(NSNumber*)[arFrame.exifData valueForKey:(__bridge NSString*)kCGImagePropertyExifFNumber] floatValue];
}
return frameData;
}
}
@@ -236,4 +243,13 @@ namespace OpenVulkano::AR::ArKit
[image release];
return success;
}
std::string ArFrameArKit::GetLensModel() const
{
if (@available(iOS 16.0, *))
{
return [[m_arKitFrame.exifData valueForKey:(__bridge NSString*)kCGImagePropertyExifLensModel] UTF8String];
}
return "";
}
}