android2022配置opencv4android480

这篇具有很好参考价值的文章主要介绍了android2022配置opencv4android480。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,安装android studio2022。

2,下载OPENCV4ANDROID,解压到任意盘中。

android2022配置opencv4android480,JAVA,java,前端,开发语言

3,File->New->New Project,选择Empty Views Activity。再选择语言,本文选择JAVA。

android2022配置opencv4android480,JAVA,java,前端,开发语言

android2022配置opencv4android480,JAVA,java,前端,开发语言

4,File->New->Import Module->Source directory->选择解压后的OPENCV的sdk文件夹,Module name随便更改,点击确定。

android2022配置opencv4android480,JAVA,java,前端,开发语言

android2022配置opencv4android480,JAVA,java,前端,开发语言

android2022配置opencv4android480,JAVA,java,前端,开发语言

5,Android Studio下面出现如下错误,需要更改一些配置。

android2022配置opencv4android480,JAVA,java,前端,开发语言

6,File->Project Structure

android2022配置opencv4android480,JAVA,java,前端,开发语言

 更改opencv480的三个部分,Compile Sdk Vision,Target SDK Vision, Min SDK Vision, 这三个模块,跟app的模块一致。

android2022配置opencv4android480,JAVA,java,前端,开发语言

android2022配置opencv4android480,JAVA,java,前端,开发语言

点击Dependencies,发现有app,opencv480,点击app,右上角+,点击添加module dependency,点击选中,然后点击ok。

android2022配置opencv4android480,JAVA,java,前端,开发语言

 android2022配置opencv4android480,JAVA,java,前端,开发语言

7,点击opencv480->java->AndroidManifest.xml,双击,将pack="org.opencv"删除,保存。

android2022配置opencv4android480,JAVA,java,前端,开发语言

8,项目切换到Project模式,展开opencv480(自己命名的OPENCV工程名字),点击build.gradle,双击打开。

android2022配置opencv4android480,JAVA,java,前端,开发语言

在android里面增加 namespace "org.opencv",防止报错

android2022配置opencv4android480,JAVA,java,前端,开发语言

9,但是点编译会报错,看报错是找不到OpencvEngineInterface和BuildConifgandroid2022配置opencv4android480,JAVA,java,前端,开发语言

上面的原因是默认编译的时候没带aidl和buildConfig

回到opencv的build.gradle加上buildFeatures

android2022配置opencv4android480,JAVA,java,前端,开发语言

 编译可以通过了

6,7,8,9步骤可以重复,将更改后的两个文件,AndroidManifest.xml和build.gradle,放到opencv4android解压后的相同地方,替换原来的,就行了,以后不用再配置了

给一段简单的界面和代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="80dp"
        android:layout_marginLeft="54dp"
        android:layout_marginBottom="80dp"
        android:text="灰度" />

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="500dp"
        android:layout_height="400dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="6dp"
        android:layout_marginRight="6dp"
        android:layout_marginBottom="209dp"
        android:scaleType="centerCrop"
        app:srcCompat="@drawable/a1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginEnd="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginBottom="80dp"
        android:text="返回" />

</RelativeLayout>

 java代码

package com.example.myopencvtest;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.imgproc.Imgproc;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {
    private Button btn1,btn2;
    private ImageView img1;
    private Mat srcmat1,srcmat2;
    private Bitmap bitmap;

    @Override
    protected void onDestroy() {
        super.onDestroy();
        srcmat1.release();
        srcmat2.release();
    }

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //OpenCV 初始化
        inLoadOpenCV();
        //按钮 初始化
        btn1 = findViewById(R.id.button);
        btn2 =findViewById(R.id.button2);
        img1 = findViewById(R.id.imageButton);
        srcmat1 = new Mat();
        srcmat2 = new Mat();
        try {
            srcmat1 = Utils.loadResource(this, R.drawable.a1);//图片名称
        } catch (IOException e) {
            e.printStackTrace();
        }
//        转成灰度图
        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
//                Toast toast = Toast.makeText(MainActivity.this, "Button被点击了", Toast.LENGTH_SHORT);
//                toast.show();
                //彩色转灰色
                Imgproc.cvtColor(srcmat1,srcmat2,Imgproc.COLOR_BGRA2GRAY);
                //Imgproc.putText(srcmat1,"I'm a cat" ,new Point( srcmat1.width()/2.,srcmat1.height()/3),2,2,new Scalar(0,255,0),3);
                bitmap = Bitmap.createBitmap(srcmat2.width(), srcmat2.height(), Bitmap.Config.ARGB_8888);
                Utils.matToBitmap(srcmat2, bitmap);
                img1.setImageBitmap(bitmap);
            }
        });

//        返回原图
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.a1);//图片名称
                img1.setImageBitmap(bitmap);
            }
        });
    }

    //OpenCV库的加载
    private void inLoadOpenCV(){
        boolean success= OpenCVLoader.initDebug();
        if (success){
            Toast.makeText(this.getApplicationContext(),"成功",Toast.LENGTH_LONG).show();
        }else{
            Toast.makeText(this.getApplicationContext(),"失败",Toast.LENGTH_LONG).show();
        }
    }
}

 同时,记得在res/drawable下面放一个叫a1.jpg的图片android2022配置opencv4android480,JAVA,java,前端,开发语言

 点击运行,就有结果

android2022配置opencv4android480,JAVA,java,前端,开发语言文章来源地址https://www.toymoban.com/news/detail-675165.html

到了这里,关于android2022配置opencv4android480的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版以及vs2022配置opencv-gpu

    cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版本编译方法相同,本文以opencv4.5.5为例 一定确保已经成功安装了cuda工具包,以及VS编译器,清单如下 cuda工具包 visual studio 编译器 cmake构建工具 opencv源码 opencv-contrib源码 1.1 cmake构建工具下载 https://cmake.org/download/ 1.2 opencv源码下载 官网

    2023年04月25日
    浏览(33)
  • Visual Stdio2022+Opencv4.8.0+Opencv-contrib+Cmake3.27.1

    默认Visual Stdio已经安装完成。之前只安装了opencv,发现有些功能实现不了,还需要依赖opencv-contrib,所以这里对其进行一个记录。 一.安装opencv、opencv-contrib、Cmake opencv安装链接: Releases - OpenCV https://opencv.org/releases/ opencv-contrib安装链接:  Tags · opencv/opencv_contrib · GitHub https:

    2024年02月08日
    浏览(35)
  • 树莓派4b安装opencv4.6.0并开启ffmpeg视频加速(2022.10.27)

    按ctrl + o ,enter保存,ctrl + x 关闭; 将以下内容写入配置文件(为pip配置阿里和豆瓣源):(保存并退出同上)

    2023年04月16日
    浏览(34)
  • 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part III

    Part III 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I_松下J27的博客-CSDN博客 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part II_松下J27的博客-CSDN博客             前面已经知道了如何在opencv.sln的项目中查看源码,现在看

    2024年02月10日
    浏览(34)
  • 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part II

    用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I_松下J27的博客-CSDN博客 在上一篇文章中,我用cmake成功的生成了opencv.sln,后面都不会再用cmake了,直接在VS中操作。 1,用VS打开OpenCV.sln,并编译该项目 1.1,打开后,确认当前的运行环境为Debug+x64模式

    2024年02月11日
    浏览(33)
  • 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I

            写在最前面,最近这段时间的工作需要用opencv,不仅是调包,还要能够看到opencv的源码。然后就跟着网上的教程实现了一遍,在实现过程中,遇到了不少问题,现一一记录下来。(最近的工作和生活都很难。。。也充满了挑战。但我依然要维持自己创作文章的动机,

    2024年02月11日
    浏览(29)
  • Android基于opencv4.6.0实现人脸识别功能

    步骤: 1.整合opencv 2.获取相机的SurfaceView传到native层去检测(亦或是不断的获取SurfaceView的Bitmap,传到native层) 3.检测人脸,在本地保存人脸特征信息 4.上传至后台(不实现) 人脸识别实现的思路(例:人脸登录) 1.人脸信息录入 1.1获取相机的Bitmap,检测人脸(保证人脸信息比较精准

    2024年02月03日
    浏览(36)
  • 【OpenCV】OpenCV4.7.0 + Visual Studio 2019环境配置 + 运行opencv

    01、OpenCV的下载与安装 这里贴上网址: https://opencv.org/ 进入会看到主界面,跟着一步一步来下载就好: 当把上面这个下载下来之后,会得到一个opencv-4.7.0-windows.exe,我们双击运行,等待程序自己执行完成,就会在exe当前目录下面生成一个同exe名字的文件夹。 打开文件夹如下

    2024年02月09日
    浏览(37)
  • 【OpenCV入门教程Java版之一】安装OpenCV:OpenCV4.6.0+IDEA开发环境配置

    在读研期间的研究方向与图像处理有一点相关,后来由于工作可能会有需要,所以晚上回去也闭门研究了OpenCV和图像处理相关的知识。也准备写一个OpenCV系列的专栏作为自己的学习笔记,也分享给大家,如果有写错的地方也欢迎大家及时指出。 好了这篇文章作为OpenCV系列的第

    2024年02月09日
    浏览(34)
  • Android离线文字识别-tesseract4android调用

    Android在线文字识别可以调阿里云的接口Android文字识别-阿里云OCR调用__花花的博客-CSDN博客 需要离线文字识别的话,可以调tesseract4android。个人测试效果不是特别理想,但是速度真的很快,VIVO S10后摄照片,80ms内识别完成。现有的蛮多资料都写的是调用tess-two,但是这个库,已

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包