camera_intrinsics 0.0.4 copy "camera_intrinsics: ^0.0.4" to clipboard
camera_intrinsics: ^0.0.4 copied to clipboard

A Flutter plugin to retrieve camera intrinsics (focal length, principal point, image dimensions, distortion coefficients) using ARCore (Android) and ARKit (iOS).

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:camera_intrinsics/camera_intrinsics.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: const CameraIntrinsicsScreen());
  }
}

class CameraIntrinsicsScreen extends StatefulWidget {
  const CameraIntrinsicsScreen({super.key});

  @override
  State<CameraIntrinsicsScreen> createState() => _CameraIntrinsicsScreenState();
}

class _CameraIntrinsicsScreenState extends State<CameraIntrinsicsScreen> {
  bool _isProcessing = false;
  List<double>? _focalLength;
  List<double>? _principalPoint;
  List<int>? _imageDimensions;
  List<double>? _distortion;
  bool _isCachedResponse = false;
  String? _error;

  Future<void> _getIntrinsics() async {
    setState(() {
      _isProcessing = true;
      _error = null;
    });

    try {
      final response = await CameraIntrinsics.getIntrinsics();

      final result = response.intrinsics;

      setState(() {
        _focalLength = (result['focalLength'] as List?)?.cast<double>();
        _principalPoint = (result['principalPoint'] as List?)?.cast<double>();
        _imageDimensions = (result['imageDimensions'] as List?)?.cast<int>();
        _distortion = (result['distortion'] as List?)?.cast<double>();
        _isCachedResponse = response.isCached;
      });
    } on PlatformException catch (e) {
      setState(() {
        _error = e.message;
      });
    } finally {
      setState(() {
        _isProcessing = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Camera Intrinsics')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            const Text(
              'Instructions:',
              style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16),
            ),
            const SizedBox(height: 8),
            const Text('1. Grant camera permission if & when prompted'),
            const Text('2. Point camera in a well-lit direction'),
            const Text('3. Press the button below to fetch intrinsics'),
            const SizedBox(height: 24),
            ElevatedButton(
              onPressed: _isProcessing ? null : _getIntrinsics,
              child: _isProcessing
                  ? const SizedBox(
                      height: 20,
                      width: 20,
                      child: CircularProgressIndicator(strokeWidth: 2),
                    )
                  : const Text('Get Camera Intrinsics'),
            ),
            const SizedBox(height: 24),
            if (_error != null)
              Text('Error: $_error', style: const TextStyle(color: Colors.red)),
            const Text(
              'Output:',
              style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16),
            ),
            const SizedBox(height: 8),
            Text('Focal Length: $_focalLength'),
            Text('Principal Point: $_principalPoint'),
            Text('Image Dimensions: $_imageDimensions'),
            Text('Distortion: $_distortion'),
            Text('Cached Response?: $_isCachedResponse'),
          ],
        ),
      ),
    );
  }
}
5
likes
160
points
144
downloads

Publisher

verified publisherabbasali.dev

Weekly Downloads

A Flutter plugin to retrieve camera intrinsics (focal length, principal point, image dimensions, distortion coefficients) using ARCore (Android) and ARKit (iOS).

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on camera_intrinsics

Packages that implement camera_intrinsics