flutter開發實戰-人臉識別相機使用

flutter開發實戰-人臉識別相機使用

當需要拍攝的時候,需要檢測到人臉再進行后續的操作,這里使用的是face_camera
在這里插入圖片描述

一、引入face_camera

在工程的pubspec.yaml中引入插件

   # 檢測人臉face_camera: ^0.0.8

iOS端需要設置相關權限
在info.plist文件中,設置相機等權限

<key>NSCameraUsageDescription</key><string>Take a photo for display</string><key>NSMicrophoneUsageDescription</key><string>Take a video for display</string><key>NSPhotoLibraryUsageDescription</key><string>Read your photos for display</string><key>UIApplicationSupportsIndirectInputEvents</key>

二、人臉識別相機使用

第一步是在main.dart中初始化face_camera

void main() async{WidgetsFlutterBinding.ensureInitialized(); //Add thisawait FaceCamera.initialize(); //Add thisrunApp(const MyApp());
}

然后在應用程序中渲染組件,設置onCapture回調。

  @overrideWidget build(BuildContext context) {return Scaffold(body: SmartFaceCamera(autoCapture: true,defaultCameraLens: CameraLens.front,message: 'Center your face in the square',onCapture: (File? image){},));}

完整代碼如下

import 'dart:io';import 'package:flutter/material.dart';import 'package:face_camera/face_camera.dart';class FaceCameraPage extends StatefulWidget {const FaceCameraPage({Key? key}) : super(key: key);@overrideState<FaceCameraPage> createState() => _FaceCameraPageState();
}class _FaceCameraPageState extends State<FaceCameraPage> {File? _capturedImage;@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('FaceCamera example app'),),body: Builder(builder: (context) {if (_capturedImage != null) {return Center(child: Stack(alignment: Alignment.bottomCenter,children: [Image.file(_capturedImage!,width: double.maxFinite,fit: BoxFit.fitWidth,),ElevatedButton(onPressed: () => setState(() => _capturedImage = null),child: const Text('Capture Again',textAlign: TextAlign.center,style:TextStyle(fontSize: 14, fontWeight: FontWeight.w700),))],),);}return SmartFaceCamera(autoCapture: true,defaultCameraLens: CameraLens.front,onCapture: (File? image) {setState(() => _capturedImage = image);},onFaceDetected: (Face? face) {//Do something},messageBuilder: (context, face) {if (face == null) {return _message('Place your face in the camera');}if (!face.wellPositioned) {return _message('Center your face in the square');}return const SizedBox.shrink();});}),);}Widget _message(String msg) => Padding(padding: const EdgeInsets.symmetric(horizontal: 55, vertical: 15),child: Text(msg,textAlign: TextAlign.center,style: const TextStyle(fontSize: 14, height: 1.5, fontWeight: FontWeight.w400)),);
}

三、小結

flutter開發實戰-人臉識別相機使用

學習記錄,每天不停進步。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/12560.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/12560.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/12560.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何按住ctrl滑動鼠標桌面圖標大小不變

如何按住ctrl滑動鼠標桌面圖標大小不變 采取以下步驟&#xff1a; 1、鼠標在電腦桌面空白處單擊右鍵&#xff0c;然后在彈出的對話框最上面有個“查看”&#xff0c;點擊“查看”出來的最上面有“大圖標”“中等圖標”“小圖標”&#xff0c;根據自己的需要選擇圖標大小即可。…

網絡安全快速入門(九)MySQL進階操作

上一章我們了解了對表及庫的基本增刪查改操作&#xff0c;本章我們針對增刪查改內容進行與一些拓展&#xff0c; 9.1字段修飾及數據類型 我們之前在創建表時用到的格式為&#xff1a; create table 表名 ( 字段名1 字段數據類型&#xff08;數據類型長度&#xff09;, 字段名2 …

Pytorch學習-調整torchvision.models中模型輸出類別數

假設你的類別只有10個&#xff0c;而torchvision.models中Vgg16的輸出類別為1000&#xff0c;這時應該如何調整呢&#xff1f; 方法一&#xff0c;直接修改模型中類別的輸出。 from torch.nn import Linear import torchvision import torchVgg16torchvision.models.vgg16(pre…

華為認證大數據是什么?華為認證大數據有用嗎?

華為大數據是用來搜集整理大數據&#xff0c;提供解決方案的數據中心。華為大數據解決方案是華為公司推出的一種綜合性云解決方案&#xff0c;主要針對廣告營銷、電商、車聯網等大數據應用場景的云計算大數據方案&#xff0c;幫助企業用戶構建大數據平臺&#xff0c;解決企業的…

GRE over IPsec VPN實驗

一、拓撲圖 二、組網需求 某企業總部、分支1、分支2分別通過 R1&#xff0c;R3&#xff0c;R4 接入互聯網&#xff0c;配置默認路由連通公網按照圖示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 分別配置 Loopback0 口匹配感興趣流&#xff0c;Loopback1 口模擬業…

GPIO輸出速度(ARM-GD32)

單片機輸出速度對GPIO硬件的影響 如果T為100ns 那么2/3*100ns 67ns 那么tr tf 38 ns &#xff08;也就是不能超過32ns&#xff09; tr 和tf和什么東西有關如何去控制 CL 是一個電容&#xff0c;電容會改變和影響電壓變化的速率&#xff0c;輸出高低電平也就是對電容進行充電…

【噪聲學習】SELFIE:更新不干凈樣本的魯棒性深度學習

SELFIE: Refurbishing Unclean Samples for Robust Deep Learning 摘要: 由于深度神經網絡具有極高的表達能力,其副作用是即使在標簽噪聲極高的情況下也能完全記住訓練數據。為了克服對噪聲標簽的過度擬合,我們提出了一種名為 SELFIE 的新型魯棒訓練方法。我們的主要想法是…

俄羅斯方塊【python,小游戲】

俄羅斯方塊&#xff08;Tetris&#xff09;是一款經典的俄羅斯益智游戲&#xff0c;游戲的核心玩法是通過移動、旋轉和放置不同形狀的方塊&#xff0c;使它們在游戲界面的底部形成完整的水平線。一旦水平線填滿&#xff0c;就會被清除&#xff0c;為新的方塊騰出空間。 在 Pyt…

Python GUI開發- PyQt5 開發小工具環境入門

前言 常見的python開發gui的庫有 Tkinter&#xff0c; PyQt5&#xff0c; wxPython等。本教程是選擇PyQt5 開發桌面小工具。 環境準備 只需pip安裝即可快速準備好開發環境 pip install pyqt5快速開始 創建一個空的window窗口 Qapplication()&#xff1a;每個GUI都必須包含…

【Linux】:文本編輯與輸出命令 輕松上手nano、echo和cat

&#x1f3a5; 嶼小夏 &#xff1a; 個人主頁 &#x1f525;個人專欄 &#xff1a; Linux深造日志 &#x1f304; 莫道桑榆晚&#xff0c;為霞尚滿天&#xff01; 文章目錄 &#x1f4d1;前言一、nano1.1 打開文件&#xff1a;1.2 常用快捷鍵&#xff1a;1.3 其他功能&#xff…

讀人工智能時代與人類未來筆記03_演變

1. 演變 1.1. 每個社會都找到了屬于自己的一套適應世界的方法 1.1.1. 適應的核心&#xff0c;是有關人類心智與現實之間關系的概念 1.1.2. 人類認識周圍環境的能力 1.1.2.1. 這種能力通過知識獲得&#xff0c;同時也受到知識…

【渲染數學-01】如何模擬靜態流(上)

文章目錄 一、說明二、摘要三、簡介四、穩定的納維-斯托克斯4.1 基本方程4.2 解決方法 一、說明 關于流體物質的仿真和模擬&#xff0c;需要流體理論方面的一般知識。我們這里從基本流體方程入手&#xff0c;詳細解釋如何實現流體仿真的每一個具體步驟。 二、摘要 構建類似流體…

C# 實現郵件推送功能

&#x1f3c6;作者&#xff1a;科技、互聯網行業優質創作者 &#x1f3c6;專注領域&#xff1a;.Net技術、軟件架構、人工智能、數字化轉型、DeveloperSharp、微服務、工業互聯網、智能制造 &#x1f3c6;歡迎關注我&#xff08;Net數字智慧化基地&#xff09;&#xff0c;里面…

詳解pytorch中循環神經網絡(RNN、LSTM、GRU)的維度

詳解pytorch中循環神經網絡&#xff08;RNN、LSTM、GRU&#xff09;的維度 RNNtorch.nn.rnn詳解RNN輸入輸出維度 LSTMtorch.nn.LSTM詳解LSTM輸入輸出維度 GRUtorch.nn.GRU詳解GRU輸入輸出維度 三種RNN的示例 首先如果你對RNN、LSTM、GRU不太熟悉&#xff0c;可點擊查看。 RNN …

python數據可視化:層次聚類熱圖clustermap()

【小白從小學Python、C、Java】 【考研初試復試畢業設計】 【Python基礎AI數據分析】 python數據可視化&#xff1a; 層次聚類熱圖 clustermap() [太陽]選擇題 請問關于以下代碼表述錯誤的選項是&#xff1f; import seaborn as sns import matplotlib.pyplot as plt import n…

代碼隨想錄—— 填充每個節點的下一個右側節點指針(Leetcode116)

題目鏈接 層序遍歷 /* // Definition for a Node. class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _…

開源的全自動生成視頻文案、視頻素材、視頻字幕、視頻背景音樂的AI項目

網址 https://github.com/harry0703/MoneyPrinterTurbo 只需提供一個視頻 主題 或 關鍵詞 &#xff0c;就可以全自動生成視頻文案、視頻素材、視頻字幕、視頻背景音樂&#xff0c;然后合成一個高清的短視頻。 如果用來做視頻&#xff0c;可以先收藏一下&#xff0c;值得本地…

51 單片機[2-1]:點亮一個LED

一、在 Keil5 中新建項目 打開 Keil5 &#xff0c;點擊 Project —— new μVision Project 新建文件夾 KeilProject &#xff0c;以后的項目都在這個文件夾下&#xff0c;再建一個文件夾 2-1 點亮一個LED。在該文件夾下創建名為 Project 的文件&#xff0c;并保存。推薦起這…

Python快速入門3:面向對象OOP(需要有編程基礎)

面向對象是什么&#xff1a; 面向對象編程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;是一種編程范式&#xff0c;它以對象為基礎&#xff0c;將數據和操作封裝在一起以創建可重用的代碼模塊。在面向對象編程中&#xff0c;對象是程序的基本單元&…

mysql實戰題目練習

1、創建和管理數據庫 創建一個名為school的數據庫。 列出所有的數據庫&#xff0c;并確認school數據庫已經創建。 如果school數據庫已經存在&#xff0c;刪除它并重新創建。 mysql> create database school; Query OK, 1 row affected (0.01 sec)mysql> mysql> sh…