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

做网站行业如何跟客户交流广州网站设计公司招聘

做网站行业如何跟客户交流,广州网站设计公司招聘,网站开发与应用案例教程,阿里云云市场网站建设android 开发人员,可能熟悉使用activities, fragments, intents以及最重要的一系列开源依赖库。但是,注入需要本机功能的依赖关系(如计算机视觉框架)并不像在 gradle 文件中直接添加实现语句那样简单!今天,将专注于使用 OpenCV 库…

51e61d852209e3182b3a3ccece82e380.jpeg

 android 开发人员,可能熟悉使用activities, fragments, intents以及最重要的一系列开源依赖库。但是,注入需要本机功能的依赖关系(如计算机视觉框架)并不像在 gradle 文件中直接添加实现语句那样简单!

今天,将专注于使用 OpenCV 库,将其作为依赖项注入到你的 android 应用程序中。

那么,我们将从这次讨论中得到什么?我们将能够创建一个 android 应用程序并执行所需的步骤来集成 OpenCV。

此外,我们将完成一个基于SIFT技术的图像特征检测算法。这将是你考虑构建自己的 SDK 的良好起点。

什么是SIFT?

SIFT 代表尺度不变傅立叶变换(Scale Invariant Fourier Transform)。检测器用于查找图像上的兴趣点。它使我们能够识别图像中的局部特征。

SIFT 的优势在于,即使我们大幅缩放图像,它也能正常工作,因为它将图像数据转换为尺度不变坐标。SIFT 使用“关键点”来表示图像中缩放和旋转不变的局部特征。这是我们将其用于各种应用程序(如图像匹配、对象检测、场景检测等)的基准。

为了识别关键点,该算法为你完成:

  • 第 1 步:形成尺度空间——这一步确保特征与尺度无关。

  • 第 2 步:关键点定位——这一步有助于识别合适的特征/关键点。

  • 第 3 步:方向对齐——这一步确保关键点是旋转后不变的。

  • 第 4 步:关键点描述符——这是为每个关键点创建描述符的最后一步。

从这里,我们可以使用关键点和描述符来进行特征匹配。

现在让我们设置android项目,

打开Android Studio->New Project->Empty Activity

6e8269ded09ab9209dfbdf765ba6605f.jpeg

从以下链接下载 OpenCV 4.5.1,

https://sourceforge.net/projects/opencvlibrary/files/4.5.1/opencv-4.5.1-android-sdk.zip/download

提取文件夹,然后将 java 文件夹重命名为 OpenCVLibrary451

然后使用 File->New->Import Module 并选择文件夹

53c10b63019df5f6f23d4107bb8a4e65.jpeg

单击完成。然后,你必须看到该库已添加到你的项目中。

8eca38061121582aa3c1f89f0e0e53e9.jpeg

点击 File->Project Structure->Dependencies 并选择 app.

单击添加依赖项,然后选择 OpenCVLibrary451

4db7c7d4b4f1da86b66e1f32594e6662.jpeg23d0d41a58182252c16664ccd5610dc1.jpeg

确保选中JDK 11,如果没有,请转到 gradle 设置并将目标版本更改为1.8。

bd24d1af3d83fec82cdfe9e5c7af308e.jpegf0c735958c1f0cba32c4e3127d1e8758.jpeg

我们只需要再添加 JNI 库,以便调用 SIFT OpenCV 本机函数。将以下内容粘贴到应用程序的构建 gradle 文件中。android下defaultConfig下面

sourceSets{main {jniLibs.srcDirs = ['libs']}}

然后将几个文件复制粘贴到你在开始时提取的 opencv 文件夹 [from /OpenCV-android-sdk/sdk/native/libs] 下。转到项目的 app 文件夹,创建一个名为 libs 的文件夹并粘贴文件。

a4588e5a454d287f03056eaa08c60ce5.jpeg

同样,在应用程序的主文件夹中创建一个名为 cpp 的文件夹,然后粘贴 /OpenCV-android-sdk/sdk/libcxx_helper 中的文件。你之前提取的那个。

fe01090b17f1973ae7b549126a815d70.jpeg

在 android 下 app 的 build gradle 文件中粘贴以下内容

externalNativeBuild {cmake {path file('src/main/cpp/CMakeLists.txt')version '3.18.1'}
}

同步 grade 文件。如果一切顺利,你将看到应用程序的构建。

e6cd0f39f7f06e9ebc67698874119e99.jpeg

要测试应用程序,请将 bmp 粘贴到可绘制对象中。我在这里使用了 used test.bmp。

收集 bmp 文件后,将以下内容粘贴到 resources->layout->activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/sample_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello OpenCV Android!!!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /><ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toTopOf="@+id/sample_text"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.498"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.641"app:srcCompat="@drawable/ic_launcher_background" /></androidx.constraintlayout.widget.ConstraintLayout>

然后,将以下代码粘贴到 ActivityMain.kt 中

package com.augray.siftandroidimport android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import org.opencv.android.Utils
import org.opencv.core.Mat
import org.opencv.core.MatOfKeyPoint
import org.opencv.features2d.Features2d
import org.opencv.features2d.SIFT
import org.opencv.imgproc.Imgprocclass MainActivity : AppCompatActivity() {companion object {// Used to load the 'native-lib' library on application startup.init {System.loadLibrary("native-lib")System.loadLibrary("opencv_java4")}}private var imageView: ImageView? = null// make bitmap from image resourceprivate var inputImage: Bitmap? = nullprivate val sift = SIFT.create()override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)inputImage = BitmapFactory.decodeResource(resources, R.drawable.test)imageView = findViewById<View>(R.id.imageView) as ImageViewdetectAndDrawKeypoints()}fun detectAndDrawKeypoints() {val rgba = Mat()Utils.bitmapToMat(inputImage, rgba)val keyPoints = MatOfKeyPoint()Imgproc.cvtColor(rgba, rgba, Imgproc.COLOR_RGBA2GRAY)sift.detect(rgba, keyPoints)Features2d.drawKeypoints(rgba, keyPoints, rgba)Utils.matToBitmap(rgba, inputImage)imageView!!.setImageBitmap(inputImage)}}

让我们看一下上面的一些代码,以便更好地理解

System.loadLibrary("native-lib")
System.loadLibrary("opencv_java4")

当 cmake 为我们构建所有类并准备就绪时,我们仍然没有 SIFT 模块,很遗憾,它移到了新版本 OpenCV 中的其他库中。

函数 detectAndDrawKeypoints() 获取位图并将其转换为图像数组(矩阵/多维数组),并使用 SIFT 模块检测关键点。如果图像具有良好的对比度、细节和较少重复的图案,检测将产生尽可能多的关键点。

构建并运行应用程序

我们刚刚检测到图像中的特征。

我们现在可以扩展它来拍摄另一张图像,获取它的关键点并最终匹配它们以获得相似性。

d173daef3fdd7107cbd462570937b142.jpeg

你可以在下面的存储库中找到代码:

https://github.com/sriyan983/SIFTAndroid.git

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

3b5e13085e01f18d8cb7351442dd4244.jpeg

http://www.yayakq.cn/news/736832/

相关文章:

  • 做外汇的人一般看什么网站金乡县网站开发
  • 网站表单及商品列表详情模板建设工程司法解释(二)
  • 吉林建设厅网站seo实战技巧
  • 广州网站seo公司图片外链
  • 旧货交易网站开发的背景建站市场
  • 用视频做网站背景ppt制作免费模板
  • 如何选择网站空间wordpress 数据喵
  • 建站之星最新版本网站换了域名还被k站不
  • 淘宝买模板注浆做网站网上商城开发价格
  • 青岛做网站的公司哪个好自建设网站
  • 北京网站建设哪家公司好比赛网站开发
  • 网站备份和备案的区别杭州知名网页设计服务商
  • 手机模板的网站四川建设厅证件查询网站
  • 如何在国外网站开发新客人小程序源码怎么运行
  • 为什么要找对做网站的公司广州注册公司费用
  • 怎么建立一个网站广告彩票网站维护会跑路吗
  • 电子商务网站开发需求文档苏州高端网站设计
  • 不用编程做网站晋江市建设局网站
  • 怎么做网站xml地图网站电脑速成培训班
  • 个人网站介绍模板下载电子商务网站建设与管理教材评价
  • 常州外贸集团 网站建设免费域名注册服务网站
  • 网站建设对接视频越秀五屏网站建设
  • 秦皇岛网站建设找汉狮网站建设捌金手指花总十六
  • 国家住房城乡建设厅网站泗水县建设局的网站怎么打开
  • 沭阳住房城乡建设局网站满足客户的crm软件定制
  • 做网站盐城wordpress 字数
  • 制作公司网站流程wordpress 底部工具栏
  • 大连设计网站公司温州网络问政平台
  • 周口专业做网站公司十堰优化排名技术厂家
  • 网站名称及网址灯饰 东莞网站建设