{"id":26772704,"url":"https://github.com/emorilebo/advanced_image_processing","last_synced_at":"2025-04-15T21:19:37.589Z","repository":{"id":278467644,"uuid":"935697457","full_name":"emorilebo/advanced_image_processing","owner":"emorilebo","description":"A comprehensive Flutter plugin for advanced image processing, featuring real-time filters, object recognition, and AR capabilities.","archived":false,"fork":false,"pushed_at":"2025-04-07T14:38:47.000Z","size":155,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T15:37:11.297Z","etag":null,"topics":["image","processing","toolkit"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/advanced_image_processing_toolkit","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emorilebo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-19T21:42:24.000Z","updated_at":"2025-04-07T14:38:50.000Z","dependencies_parsed_at":"2025-04-07T15:40:21.096Z","dependency_job_id":null,"html_url":"https://github.com/emorilebo/advanced_image_processing","commit_stats":null,"previous_names":["emorilebo/advanced_image_processing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emorilebo%2Fadvanced_image_processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emorilebo%2Fadvanced_image_processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emorilebo%2Fadvanced_image_processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emorilebo%2Fadvanced_image_processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emorilebo","download_url":"https://codeload.github.com/emorilebo/advanced_image_processing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249154196,"owners_count":21221367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["image","processing","toolkit"],"created_at":"2025-03-29T01:21:04.345Z","updated_at":"2025-04-15T21:19:37.581Z","avatar_url":"https://github.com/emorilebo.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advanced Image Processing Toolkit\n\n\u003cdiv align=\"center\"\u003e\n\n[![Pub Version](https://img.shields.io/pub/v/advanced_image_processing_toolkit)](https://pub.dev/packages/advanced_image_processing_toolkit)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Flutter](https://img.shields.io/badge/Platform-Flutter-blue.svg)](https://flutter.dev)\n\nA powerful Flutter plugin that provides advanced image processing capabilities, including real-time filters, object recognition, and optional augmented reality features.\n\n\u003c/div\u003e\n\n## 📋 Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n  - [Basic Setup](#basic-setup)\n  - [Image Filtering](#image-filtering)\n  - [Object Detection](#object-detection)\n  - [Augmented Reality](#augmented-reality)\n- [API Reference](#api-reference)\n- [Platform Support](#platform-support)\n- [Future Updates](#future-updates)\n- [Requirements](#requirements)\n- [Examples](#examples)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [License](#license)\n\n## 🔍 Overview\n\nAdvanced Image Processing Toolkit is a comprehensive Flutter plugin designed to bring sophisticated image processing capabilities to your mobile applications. Whether you need to apply filters to images, detect objects in real-time, or create immersive AR experiences, this toolkit provides a unified, easy-to-use API that works across platforms.\n\n## ✨ Features\n\n### 🎨 Real-time Image Filters\n- **Grayscale Conversion**: Transform color images to grayscale with a single function call\n- **Gaussian Blur**: Apply configurable blur effects with adjustable intensity\n- **Brightness Adjustment**: Easily modify image brightness with precise control\n- **Contrast Enhancement**: Improve image contrast for better visibility\n- **Custom Filter Support**: Create and apply your own custom filters\n\n### 🔍 Object Detection \u0026 Recognition\n- **Real-time Object Detection**: Identify objects in images or camera feed\n- **Multiple Object Recognition**: Detect and track multiple objects simultaneously\n- **Confidence Score Reporting**: Get accuracy metrics for each detection\n- **Bounding Box Calculation**: Receive precise object locations within images\n- **Custom Model Integration**: Use your own trained models for specialized detection\n\n### 🎮 Augmented Reality (Optional)\n- **3D Model Placement**: Position 3D models in real-world space\n- **AR Session Management**: Easily control AR experiences\n- **Surface Detection**: Identify and use real-world surfaces\n- **Real-world Scale Adjustment**: Ensure proper sizing of virtual objects\n- **Interactive AR Elements**: Create engaging user experiences\n\n### 💪 Performance Optimized\n- **Hardware Acceleration**: Utilizes GPU for faster processing\n- **Memory Efficient**: Optimized for mobile device constraints\n- **Battery Conscious**: Designed to minimize power consumption\n- **Cross-platform Consistency**: Reliable performance on both iOS and Android\n\n## 📥 Installation\n\nAdd this to your package's `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  advanced_image_processing_toolkit: ^0.1.0\n```\n\nThen run:\n\n```bash\nflutter pub get\n```\n\n### Optional AR Dependencies\n\nTo use the AR features, you need to manually add these dependencies to your app:\n\n```yaml\ndependencies:\n  # For iOS AR features\n  arkit_plugin: ^1.0.7\n  # For Android AR features\n  arcore_flutter_plugin: ^0.1.0\n```\n\n### Platform-specific Setup\n\n#### Android\n\nAdd the following permissions to your `AndroidManifest.xml` file:\n\n```xml\n\u003c!-- For image processing and camera access --\u003e\n\u003cuses-permission android:name=\"android.permission.CAMERA\" /\u003e\n\u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" /\u003e\n\u003cuses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" /\u003e\n\n\u003c!-- For AR features (only if using AR) --\u003e\n\u003cuses-feature android:name=\"android.hardware.camera.ar\" android:required=\"false\" /\u003e\n```\n\n#### iOS\n\nAdd the following to your `Info.plist` file:\n\n```xml\n\u003c!-- Camera permissions --\u003e\n\u003ckey\u003eNSCameraUsageDescription\u003c/key\u003e\n\u003cstring\u003eThis app needs camera access for image processing and AR features\u003c/string\u003e\n\n\u003c!-- Photo library permissions --\u003e\n\u003ckey\u003eNSPhotoLibraryUsageDescription\u003c/key\u003e\n\u003cstring\u003eThis app needs photo library access to process your images\u003c/string\u003e\n```\n\n## 🚀 Getting Started\n\n### Basic Setup\n\nFirst, import the package:\n\n```dart\nimport 'package:advanced_image_processing_toolkit/advanced_image_processing_toolkit.dart';\n```\n\nInitialize the toolkit in your app (typically in `main.dart` or during app startup):\n\n```dart\nvoid main() async {\n  WidgetsFlutterBinding.ensureInitialized();\n  \n  // Initialize the toolkit\n  await AdvancedImageProcessingToolkit.initialize(\n    enableObjectDetection: true,\n    enableAR: false, // Set to true only if you've added the AR dependencies\n  );\n  \n  runApp(MyApp());\n}\n```\n\n### Image Filtering\n\nApply filters to images with just a few lines of code:\n\n```dart\n// Create an instance of ImageFilters\nfinal imageFilters = ImageFilters();\n\n// Apply grayscale filter\nFuture\u003cvoid\u003e convertToGrayscale(Uint8List imageBytes) async {\n  try {\n    // Apply the filter\n    final processedImage = await imageFilters.applyGrayscale(imageBytes);\n    \n    // Use the processed image\n    setState(() {\n      _displayImage = processedImage;\n    });\n  } catch (e) {\n    print('Error applying grayscale: $e');\n  }\n}\n\n// Apply blur filter\nFuture\u003cvoid\u003e applyBlur(Uint8List imageBytes) async {\n  try {\n    // Apply blur with sigma value of 5.0\n    final processedImage = await imageFilters.applyBlur(imageBytes, 5.0);\n    \n    // Use the processed image\n    setState(() {\n      _displayImage = processedImage;\n    });\n  } catch (e) {\n    print('Error applying blur: $e');\n  }\n}\n\n// Adjust brightness\nFuture\u003cvoid\u003e adjustBrightness(Uint8List imageBytes) async {\n  try {\n    // Increase brightness by 20%\n    final processedImage = await ImageFilters.adjustBrightness(imageBytes, 1.2);\n    \n    // Use the processed image\n    setState(() {\n      _displayImage = processedImage;\n    });\n  } catch (e) {\n    print('Error adjusting brightness: $e');\n  }\n}\n```\n\n### Object Detection\n\nDetect objects in images:\n\n```dart\nFuture\u003cvoid\u003e detectObjectsInImage(Uint8List imageBytes) async {\n  try {\n    // Perform object detection\n    final detections = await ObjectRecognition.detectObjects(imageBytes);\n    \n    // Process the results\n    for (var detection in detections) {\n      print('Detected: ${detection.label}');\n      print('Confidence: ${detection.confidence}');\n      print('Position: ${detection.boundingBox}');\n      \n      // Draw bounding box or highlight the object\n      // ...\n    }\n  } catch (e) {\n    print('Error detecting objects: $e');\n  }\n}\n```\n\n### Augmented Reality\n\nCreate AR experiences:\n\n```dart\nFuture\u003cvoid\u003e startARExperience() async {\n  // Check if AR is supported on the device\n  final isSupported = await AugmentedReality.isARSupported();\n  \n  if (isSupported) {\n    // Start an AR session\n    final sessionStarted = await AugmentedReality.startARSession();\n    \n    if (sessionStarted) {\n      // Place a 3D model in the AR scene\n      await AugmentedReality.placeModel(\n        modelPath: 'assets/models/robot.glb',\n        position: [0.0, 0.0, -1.0],\n        scale: 0.5,\n        rotation: [0.0, 45.0, 0.0],\n      );\n    }\n  } else {\n    print('AR is not supported on this device');\n  }\n}\n\n// Stop the AR session when done\nFuture\u003cvoid\u003e stopARExperience() async {\n  await AugmentedReality.stopARSession();\n}\n```\n\n## 📚 API Reference\n\n### ImageFilters\n\n| Method | Description | Parameters | Return Type |\n|--------|-------------|------------|-------------|\n| `applyGrayscale` | Converts an image to grayscale | `List\u003cint\u003e imageData` | `Future\u003cList\u003cint\u003e\u003e` |\n| `applyBlur` | Applies Gaussian blur to an image | `List\u003cint\u003e imageData, double sigma` | `Future\u003cList\u003cint\u003e\u003e` |\n| `adjustBrightness` | Adjusts image brightness | `Uint8List imageBytes, double factor` | `Future\u003cUint8List\u003e` |\n\n### ObjectRecognition\n\n| Method | Description | Parameters | Return Type |\n|--------|-------------|------------|-------------|\n| `detectObjects` | Detects objects in an image | `Uint8List imageBytes` | `Future\u003cList\u003cDetectedObject\u003e\u003e` |\n\n### DetectedObject\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `label` | `String` | The name/class of the detected object |\n| `confidence` | `double` | Confidence score (0.0 to 1.0) |\n| `boundingBox` | `Rect` | Position and size of the object in the image |\n\n### AugmentedReality\n\n| Method | Description | Parameters | Return Type |\n|--------|-------------|------------|-------------|\n| `isARSupported` | Checks if AR is supported on the device | None | `Future\u003cbool\u003e` |\n| `startARSession` | Starts an AR session | None | `Future\u003cbool\u003e` |\n| `stopARSession` | Stops the current AR session | None | `Future\u003cbool\u003e` |\n| `placeModel` | Places a 3D model in AR space | `String modelPath, List\u003cdouble\u003e position, double scale, List\u003cdouble\u003e rotation` | `Future\u003cbool\u003e` |\n\n## 🖥️ Platform Support\n\n| Platform | Support |\n|----------|---------|\n| Android  | ✅      |\n| iOS      | ✅      |\n| Web      | 🚧 Coming soon |\n| macOS    | 🚧 Coming soon |\n| Windows  | 🚧 Coming soon |\n| Linux    | 🚧 Coming soon |\n\n## 🔮 Future Updates\n\nWe're actively working on enhancing the Advanced Image Processing Toolkit with the following features:\n\n### 🎨 Enhanced Image Filters\n- **Sepia Filter**: Add vintage tone to images\n- **Vignette Effect**: Create stylish darkened corners\n- **Color Manipulation**: HSL adjustments, color inversion, and tinting\n- **Artistic Filters**: Watercolor, oil painting, and sketch effects\n- **Custom Filter Chains**: Combine multiple filters with configurable parameters\n\n### 🧠 Advanced ML Capabilities\n- **Custom ML Model Support**: Import and use your own trained models\n- **Specialized Detection Models**: Industry-specific object recognition\n- **Face Detection \u0026 Analysis**: Facial feature recognition and emotion detection\n- **Text Recognition**: OCR capabilities for document scanning\n- **Pose Estimation**: Human pose detection and tracking\n\n### 🌟 Enhanced AR Features\n- **Occlusion**: Allow virtual objects to be hidden behind real-world objects\n- **Lighting Estimation**: Adapt virtual content to match real-world lighting\n- **Environment Mapping**: Reflect real-world surroundings on virtual objects\n- **Persistent AR**: Save and reload AR experiences\n- **Collaborative AR**: Multi-user AR experiences\n\n### 📱 Expanded Platform Support\n- **Web Support**: Full functionality in browser environments\n- **Desktop Support**: Native performance on Windows, macOS, and Linux\n- **Cross-platform Consistency**: Unified API across all platforms\n\n### ⚡ Performance Optimizations\n- **Real-time Processing**: Enhanced algorithms for faster processing\n- **Memory Usage Reduction**: More efficient resource management\n- **Battery Consumption**: Further optimizations for mobile devices\n- **Parallel Processing**: Multi-threading support for complex operations\n\nStay tuned for these exciting updates! Follow our [GitHub repository](https://github.com/emorilebo/advanced_image_processing) for the latest developments.\n\n## 📋 Requirements\n\n- **Flutter SDK**: \u003e=2.12.0\n- **Dart**: \u003e=2.12.0\n- **iOS**: 11.0 or newer\n- **Android**: API level 21 or newer\n\n## 📱 Examples\n\n### Complete Image Processing Example\n\n```dart\nimport 'package:flutter/material.dart';\nimport 'package:advanced_image_processing_toolkit/advanced_image_processing_toolkit.dart';\nimport 'package:image_picker/image_picker.dart';\nimport 'dart:typed_data';\n\nclass ImageProcessingDemo extends StatefulWidget {\n  @override\n  _ImageProcessingDemoState createState() =\u003e _ImageProcessingDemoState();\n}\n\nclass _ImageProcessingDemoState extends State\u003cImageProcessingDemo\u003e {\n  Uint8List? _imageBytes;\n  final _imageFilters = ImageFilters();\n  final _picker = ImagePicker();\n  List\u003cDetectedObject\u003e? _detectedObjects;\n  \n  Future\u003cvoid\u003e _pickImage() async {\n    final pickedFile = await _picker.pickImage(source: ImageSource.gallery);\n    if (pickedFile != null) {\n      final bytes = await pickedFile.readAsBytes();\n      setState(() {\n        _imageBytes = bytes;\n        _detectedObjects = null;\n      });\n    }\n  }\n  \n  Future\u003cvoid\u003e _applyGrayscale() async {\n    if (_imageBytes != null) {\n      final processed = await _imageFilters.applyGrayscale(_imageBytes!);\n      setState(() {\n        _imageBytes = Uint8List.fromList(processed);\n      });\n    }\n  }\n  \n  Future\u003cvoid\u003e _detectObjects() async {\n    if (_imageBytes != null) {\n      final objects = await ObjectRecognition.detectObjects(_imageBytes!);\n      setState(() {\n        _detectedObjects = objects;\n      });\n    }\n  }\n  \n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: Text('Image Processing Demo')),\n      body: Center(\n        child: Column(\n          mainAxisAlignment: MainAxisAlignment.center,\n          children: [\n            if (_imageBytes != null) ...[\n              Image.memory(\n                _imageBytes!,\n                height: 300,\n              ),\n              SizedBox(height: 20),\n              Row(\n                mainAxisAlignment: MainAxisAlignment.center,\n                children: [\n                  ElevatedButton(\n                    onPressed: _applyGrayscale,\n                    child: Text('Apply Grayscale'),\n                  ),\n                  SizedBox(width: 10),\n                  ElevatedButton(\n                    onPressed: _detectObjects,\n                    child: Text('Detect Objects'),\n                  ),\n                ],\n              ),\n            ],\n            if (_detectedObjects != null) ...[\n              SizedBox(height: 20),\n              Text('Detected ${_detectedObjects!.length} objects'),\n              Expanded(\n                child: ListView.builder(\n                  itemCount: _detectedObjects!.length,\n                  itemBuilder: (context, index) {\n                    final obj = _detectedObjects![index];\n                    return ListTile(\n                      title: Text(obj.label),\n                      subtitle: Text('Confidence: ${obj.confidence.toStringAsFixed(2)}'),\n                    );\n                  },\n                ),\n              ),\n            ],\n          ],\n        ),\n      ),\n      floatingActionButton: FloatingActionButton(\n        onPressed: _pickImage,\n        child: Icon(Icons.add_photo_alternate),\n      ),\n    );\n  }\n}\n```\n\n## 🛠️ Troubleshooting\n\n### Common Issues\n\n#### AR Features Not Working\n- Make sure you've added the required AR dependencies (arkit_plugin for iOS, arcore_flutter_plugin for Android)\n- Verify that AR is supported on the device using `AugmentedReality.isARSupported()`\n- Check that you've initialized the toolkit with `enableAR: true`\n\n#### Build Errors\n- If you're not using AR features, initialize with `enableAR: false` to avoid dependency issues\n- Make sure you have the correct platform-specific setup (permissions in AndroidManifest.xml and Info.plist)\n\n#### Permission Denials\n- Request permissions at runtime using the permission_handler package:\n```dart\nimport 'package:permission_handler/permission_handler.dart';\n\nawait Permission.camera.request();\nawait Permission.storage.request();\n```\n\n## 🤝 Contributing\n\nContributions are always welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) first.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/emorilebo/advanced_image_processing.git\n\n# Navigate to the project\ncd advanced_image_processing\n\n# Get dependencies\nflutter pub get\n\n# Run tests\nflutter test\n\n# Run the example app\ncd example\nflutter run\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👨‍💻 Author\n\n**Godfrey Lebo**\n- GitHub: [@emorilebo](https://github.com/emorilebo)\n- Website: [godfreylebo.vercel.app](https://godfreylebo.vercel.app/)\n\n## 🙏 Support\n\nIf you find this package helpful, please consider:\n- ⭐ Starring the repository on GitHub\n- 🐛 Reporting issues you find\n- 📖 Contributing to the documentation\n- 🤝 Submitting pull requests\n\nFor questions and support, please [open an issue](https://github.com/emorilebo/advanced_image_processing/issues) on GitHub.\n\n---\n\n\u003cdiv align=\"center\"\u003e\nMade with ❤️ by \u003ca href=\"https://github.com/emorilebo\"\u003eCuriosityxploring\u003c/a\u003e\n\u003c/div\u003e ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femorilebo%2Fadvanced_image_processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femorilebo%2Fadvanced_image_processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femorilebo%2Fadvanced_image_processing/lists"}