camera_intrinsics
A Flutter plugin to retrieve camera intrinsics from ARCore (Android) and ARKit (iOS) for camera calibration and image geometry calculations.
Requirements
Android
- minSdkVersion: 24 or higher
- ARCore: Device must support ARCore (Google Play Services for AR)
- Camera Permission: Required at runtime
iOS
- iOS: 13.0 or higher
- ARKit: Device must support ARKit (iPhone 6s or later)
- Camera Permission: Required (add to Info.plist)
Limits
- iOS: Distortion coefficients unavailable
Setup
Android
Add the following to your app's AndroidManifest.xml inside the <application> tag:
<meta-data
android:name="com.google.ar.core"
android:value="required" />
iOS
Add camera permission to your Info.plist:
<key>NSCameraUsageDescription</key>
<string>Camera access is required to get camera intrinsics</string>
Usage
import 'package:camera_intrinsics/camera_intrinsics.dart';
// Get camera intrinsics
try {
final response = await CameraIntrinsics.getIntrinsics();
final intrinsics = response.intrinsics;
print('Focal Length: ${intrinsics['focalLength']}');
print('Principal Point: ${intrinsics['principalPoint']}');
print('Image Dimensions: ${intrinsics['imageDimensions']}');
print('Distortion: ${intrinsics['distortion']}');
print('Was cached: ${response.isCached}');
} on PlatformException catch (e) {
print('Error: ${e.message}');
}
// Clear cache if you need fresh data
CameraIntrinsics.clearCache();
Response Data
| Field |
Type |
Description |
focalLength |
List<double> |
Focal length in pixels fx, fy |
principalPoint |
List<double> |
Principal point cx, cy |
imageDimensions |
List<int> |
Image size width, height |
distortion |
List<double> |
Distortion coefficients (Android only, empty on iOS) |
Error Codes
Android
| Code |
Description |
CAMERA_PERMISSION_NOT_GRANTED |
Camera permission was denied |
NOT_ATTACHED |
Plugin not attached to activity |
INTRINSICS_UNAVAILABLE |
Could not get intrinsics (tracking failed) |
ARCORE_ERROR |
ARCore session error |
iOS
| Code |
Description |
ARKIT_NOT_SUPPORTED |
ARKit is not supported on this device |
INTRINSICS_UNAVAILABLE |
No AR frame available |