当前位置: 首页 > news >正文

网站建设图片流程图wordpress上传视频大小

网站建设图片流程图,wordpress上传视频大小,安阳手机网站建设,深圳企业网站建设服务公司随着移动设备的普及和摄像头的高像素化#xff0c;利用相机进行文本识别成为了一种流行的方式。MLKit 是 Google 提供的一款机器学习工具包#xff0c;其中包含了丰富的图像和语言处理功能#xff0c;包括文本识别。PreviewView 是 Android Jetpack 的一部分#xff0c;它提… 随着移动设备的普及和摄像头的高像素化利用相机进行文本识别成为了一种流行的方式。MLKit 是 Google 提供的一款机器学习工具包其中包含了丰富的图像和语言处理功能包括文本识别。PreviewView 是 Android Jetpack 的一部分它提供了一个方便的预览相机图像的视图组件。结合 MLKit 和 PreviewView我们可以轻松构建出一个功能强大的文本识别应用程序。 添加依赖 为了使用 MLKit 和 PreviewView我们需要在项目的 build.gradle 文件中添加相应的依赖项。以下是所需的依赖项 // camera def camerax_version 1.2.1 implementation androidx.camera:camera-core:${camerax_version} implementation androidx.camera:camera-camera2:${camerax_version} implementation androidx.camera:camera-lifecycle:${camerax_version} implementation androidx.camera:camera-video:${camerax_version} implementation androidx.camera:camera-view:${camerax_version} implementation androidx.camera:camera-extensions:${camerax_version}// To recognize Chinese script implementation com.google.mlkit:text-recognition-chinese:16.0.0以上依赖项包含了与相机操作和中文文本识别相关的库。 XML 布局 在布局文件中我们需要添加一个 PreviewView相机预览视图一个按钮用于开始/停止文本识别以及一个用于显示识别结果的 TextView。以下是布局文件的示例代码 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:context.MainActivityandroidx.camera.view.PreviewViewandroid:idid/pre_viewandroid:layout_widthmatch_parentandroid:layout_height0dpandroid:layout_weight1 /Buttonandroid:idid/btn_operationandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text点击停止文本识别android:layout_marginHorizontal16dp /TextViewandroid:idid/tv_contentandroid:layout_widthmatch_parentandroid:layout_height0dpandroid:layout_weight1android:padding6dp //LinearLayout上述布局文件包含了一个垂直排列的 LinearLayout其中包含了一个 PreviewView、一个按钮和一个用于显示识别结果的 TextView。 代码实现 在代码实现部分首先检查相机权限 manifest xmlns:androidhttp://schemas.android.com/apk/res/androiduses-permission android:nameandroid.permission.CAMERA/ /manifest在权限被授予时初始化相机进行文本识别。我们设置按钮的点击事件监听器根据当前相机的状态执行相应的操作。当按钮被点击时我们会根据相机的状态开始或停止文本识别默认处于识别状态中。 class MainActivity : AppCompatActivity() {private lateinit var binding: ActivityMainBindingprivate var cameraProvider: ProcessCameraProvider? nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding ActivityMainBinding.inflate(layoutInflater)setContentView(binding.root)requestPermission()binding.btnOperation.setOnClickListener {cameraProvider?.let {binding.btnOperation.text 点击开始文本识别cameraProvider?.unbindAll()cameraProvider null} ?: run {binding.btnOperation.text 点击停止文本识别setupCamera()}}}// 其他方法和实现代码...}在 onCreate() 方法中我们设置了按钮的点击事件监听器。当按钮被点击时我们根据当前的相机状态执行相应的操作。如果相机已经初始化并正在运行我们会停止文本识别并释放相机资源。如果相机未初始化或已停止我们将开始文本识别并设置相机。 接下来我们实现了请求相机权限的方法 requestPermission()并在 onCreate() 方法中调用它。在 onRequestPermissionsResult() 方法中我们检查相机权限的授权结果。如果权限被授予我们将调用 setupCamera() 方法初始化相机。如果权限被拒绝我们将显示一个简短的提示消息。 /** * 申请相机权限 */ private fun requestPermission() {if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) ! PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_CODE)} else {setupCamera()} }override fun onRequestPermissionsResult(requestCode: Int, permissions: Arrayout String, grantResults: IntArray) {super.onRequestPermissionsResult(requestCode, permissions, grantResults)if (requestCode CAMERA_PERMISSION_CODE) {if (grantResults.isNotEmpty() grantResults[0] PackageManager.PERMISSION_GRANTED) {setupCamera()} else {Toast.makeText(this, 权限被拒绝, Toast.LENGTH_SHORT).show()}} }在 requestPermission() 方法中我们检查相机权限并请求授权。如果权限已被授予我们将调用 setupCamera() 方法初始化相机。 /** * 设置相机 */ private fun setupCamera() {val cameraProviderFuture ProcessCameraProvider.getInstance(this)cameraProviderFuture.addListener({val cameraProvider cameraProviderFuture.get()bindPreview(cameraProvider)}, ContextCompat.getMainExecutor(this)) }在 setupCamera() 方法中我们使用 ProcessCameraProvider 获取相机实例并通过 bindPreview() 方法将相机与 PreviewView 绑定。 /** * 绑定 preview */ private fun bindPreview(cameraProvider: ProcessCameraProvider) {this.cameraProvider cameraProviderval preview Preview.Builder().build()val cameraSelector CameraSelector.DEFAULT_BACK_CAMERApreview.setSurfaceProvider(binding.preView.surfaceProvider)val analysis ImageAnalysis.Builder().setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888).setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST).build()analysis.setAnalyzer(Executors.newSingleThreadExecutor(), this::analyzeImage)cameraProvider.bindToLifecycle(this, cameraSelector, preview, analysis) }在 bindPreview() 方法中我们创建了一个 Preview 实例并将其与默认后置摄像头绑定。然后我们设置 PreviewView 的 SurfaceProvider并创建一个 ImageAnalysis 实例用于图像分析。通过设置图像分析器的回调方法我们可以在每帧图像上执行文本识别。 /** * 解析文本 */ SuppressLint(UnsafeOptInUsageError) private fun analyzeImage(imageProxy: ImageProxy) {val image imageProxy.image ?: returnval inputImage InputImage.fromMediaImage(image, imageProxy.imageInfo.rotationDegrees)val recognizer TextRecognition.getClient(ChineseTextRecognizerOptions.Builder().build())recognizer.process(inputImage).addOnSuccessListener { result -binding.tvContent.text result.text}.addOnCompleteListener {// 释放ImageProxy对象 imageProxy.close()}.addOnFailureListener {// 处理识别过程中的错误it.printStackTrace()imageProxy.close()} }通过实现了 analyzeImage() 方法用于分析图像并执行文本识别。在该方法中我们首先将 ImageProxy 转换为 InputImage然后创建一个中文文本识别器。接下来我们使用识别器对图像进行处理并在成功完成时更新 TextView 的内容。无论成功与否最后都会关闭 ImageProxy。这里如果我们想识别图片Bitmap中的文字可以调用 InputImage.fromBitmap 方法即可。 演示 Ok到这里我们文本识别的功能 demo 就实现了 看看效果吧 总结 通过结合 MLKit 和 PreviewView我们可以轻松实现 Android 应用程序中的文本识别功能。在本篇文章中我们详细讲解了如何使用 MLKit 和 PreviewView 实现文本识别。感兴趣的小伙伴可参考 Demo 地址TextRecognition
http://www.dnsts.com.cn/news/7496.html

相关文章:

  • 网站规划详细设计怎么写南京小程序开发公司
  • 中国建设协会网站石家庄建设网站哪家好
  • php网站后台无法上传图片企业网站建设可行性分析表
  • 一般网站用什么数据库房产智能建站系统
  • WordPress搭建连不上数据库有了网站怎么做优化
  • 邯郸商城网站建站创意网站页面设计
  • 自己做的网站怎么上线图片链接生成器在线
  • 手机可以建网站嘛建站好吗机械做网站
  • 韩国美食做视频网站南海最新军事
  • 推广链接网站野花香社区在线观看播放
  • 网站模板和源码住房建设建设部网站
  • 设计网站公司多少钱app软件程序开发
  • 做网站的说3年3年包括什么三只松鼠建设网站前的市场分析
  • 沧州网站建设设计定制北京软件开发公司哪家专业
  • 产品网站怎样做外部链接如何网上快速接网站开发订单
  • 用花生棒做网站快吗网站建设行业发展状况
  • 微信手机客户端网站建设上虞宇普电器网站建设
  • 外包网站建设公司房地产 网站 欣赏
  • 建设房地产法律网站网上开小店怎么开
  • 中国建设银行网站北京网点金城武重庆森林经典台词
  • 桥南做网站南京建设局的网站
  • 米枫网站怎么做分页注册深圳公司多少钱
  • 免费网站用官微建站网站模板源码
  • 网站转化下降原因嘉兴地区有人做网站吗
  • 做外链网站有哪些全球网站排行
  • aspx做网站北京昨晚出什么大事
  • 营销型网站建设是什么意思住房和城乡建设部网站中国建造师网
  • 35互联做的网站门户网站大全
  • 怎么做美食的视频网站.gs域名做网站怎么样
  • 对网站建设心得定制网站的制作流程