Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加

这篇具有很好参考价值的文章主要介绍了Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

软件版本:

Android Studio Electric Eel 2022.1.1 Patch 2
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加

https://sourceforge.net/projects/opencvlibrary/files/4.5.0/opencv-4.5.0-android-sdk.zip/download
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加

创建工程

with API23:
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加
导入opencv sdk:
File->New->Import Module
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加
添加工程依赖:File->Project Structure, sdk为opencv sdk.
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加

build.gradle(Myopency45)

plugins {
id ‘com.android.application’ version ‘7.4.2’ apply false
id ‘com.android.library’ version ‘7.4.2’ apply false
}

build.gradle(app)

plugins {
id ‘com.android.application’
}

android {
namespace ‘com.michael.myopency45’
compileSdk 33

defaultConfig {
    applicationId "com.michael.myopency45"
    minSdk 23
    targetSdk 33
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

}

dependencies {

implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation project(path: ':sdk')
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

}

build.gradle(SDK)

apply plugin: ‘com.android.library’

def openCVersionName = “4.5.0”
def openCVersionCode = ((4 * 100 + 5) * 100 + 0) * 10 + 0

println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile

android {
compileSdkVersion 26

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 26

    versionCode openCVersionCode
    versionName openCVersionName

    externalNativeBuild {
        cmake {
            arguments "-DANDROID_STL=c++_shared"
            targets "opencv_jni_shared"
        }
    }
}

buildTypes {
    debug {
        packagingOptions {
            doNotStrip '**/*.so'  // controlled by OpenCV CMake scripts
        }
    }
    release {
        packagingOptions {
            doNotStrip '**/*.so'  // controlled by OpenCV CMake scripts
        }
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_6
    targetCompatibility JavaVersion.VERSION_1_6
}

sourceSets {
    main {
        jniLibs.srcDirs = ['native/libs']
        java.srcDirs = ['java/src']
        aidl.srcDirs = ['java/src']
        res.srcDirs = ['java/res']
        manifest.srcFile 'java/AndroidManifest.xml'
    }
}

externalNativeBuild {
    cmake {
        path (project.projectDir.toString() + '/libcxx_helper/CMakeLists.txt')
    }
}

}

dependencies {
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/bt1"
 android:text="转换灰度"/>

<Button
    android:id="@+id/bt2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@id/bt1"
    android:text="图片相加" />

<Button
    android:id="@+id/bt3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@id/bt2"
    android:text="灰度阈值" />

<ImageView
    android:layout_centerInParent="true"
    android:layout_width="250dp"
    android:layout_height="180dp"
    android:id="@+id/pic1"
    android:src="@drawable/pic1"
    android:layout_below="@id/bt1"/>
<ImageView
    android:layout_centerInParent="true"
    android:layout_width="250dp"
    android:layout_height="180dp"
    android:id="@+id/pic2"
    android:src="@drawable/pic2"
    android:layout_below="@id/pic1"/>
<ImageView
    android:layout_centerInParent="true"
    android:layout_width="250dp"
    android:layout_height="180dp"
    android:id="@+id/pic3"
    android:layout_below="@id/pic2"/>

MainActivity.java

package com.michael.myopency45;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgproc.Imgproc;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

ImageView iv1,iv2,iv3;
Mat srcmat1, srcmat2, dstmat3;
Button bt1,bt2,bt3;
Bitmap bitmap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    OpenCVLoader.initDebug();
    iv1 = findViewById(R.id.pic1);
    iv2 = findViewById(R.id.pic2);
    iv3 = findViewById(R.id.pic3);
    bt1 = findViewById(R.id.bt1);
    bt2 = findViewById(R.id.bt2);
    bt3 = findViewById(R.id.bt3);
    srcmat1 = new Mat();
    srcmat2 = new Mat();
    dstmat3 = new Mat();

    try {
        srcmat1 = Utils.loadResource(this,R.drawable.pic1);
        srcmat2 = Utils.loadResource(this,R.drawable.pic2);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    bt1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Imgproc.cvtColor(srcmat1,dstmat3,Imgproc.COLOR_BGRA2GRAY);
            bitmap = Bitmap.createBitmap(dstmat3.width(),dstmat3.height(),Bitmap.Config.ARGB_8888);
            Utils.matToBitmap(dstmat3,bitmap);
            iv3.setImageBitmap(bitmap);
        }
    });

    bt2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Core.bitwise_and(srcmat1,srcmat2,dstmat3);
            bitmap = Bitmap.createBitmap(dstmat3.width(),dstmat3.height(),Bitmap.Config.ARGB_8888);
            Utils.matToBitmap(dstmat3,bitmap);
            iv3.setImageBitmap(bitmap);
        }
    });

    bt3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Imgproc.cvtColor(srcmat1,dstmat3,Imgproc.COLOR_BGRA2GRAY);
            Imgproc.adaptiveThreshold(dstmat3,dstmat3,255,Imgproc.ADAPTIVE_THRESH_MEAN_C,Imgproc.THRESH_BINARY,13,5);
            bitmap = Bitmap.createBitmap(dstmat3.width(),dstmat3.height(),Bitmap.Config.ARGB_8888);
            Utils.matToBitmap(dstmat3,bitmap);
            iv3.setImageBitmap(bitmap);
        }
    });
}

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

}

结果:

Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加
Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加文章来源地址https://www.toymoban.com/news/detail-448207.html

到了这里,关于Android Studio Electric Eel 2022.1.1 Patch 2 导入opencv 4.5,并实现图片灰度变换和图片叠加的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于电鳗觅食优化算法(Electric eel foraging optimization,EEFO)的无人机三维路径规划(提供MATLAB代码)

    基于电鳗觅食优化算法(Electric eel foraging optimization,EEFO)的无人机三维路径规划(提供MATLAB代码)

    无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。 电鳗觅食优化算法(Elect

    2024年03月24日
    浏览(14)
  • 学习笔记—Android studio导入OpenCV配置使用

    学习笔记—Android studio导入OpenCV配置使用

    官网下载sdk,打开opencv官网,点击Android,完成后解压 https://opencv.org/ 解压后,文件夹下有这些文件 samples Android代码工程 sdk 包含opencv的Java的接口和JNI接口等 打开Android studio,选择模板,这时选择最后一项Native C++,然后进入配置界面。 这里注意你下载的Android-sdk版本来选择

    2024年02月07日
    浏览(11)
  • Visual Studio 2022 增加对 .NET Framework 4.5 的支持

    Visual Studio 2022 增加对 .NET Framework 4.5 的支持

    VS2022默认最低只支持到 .NET Framework 4.5.2,在 .NET Framework 版本和依赖关系 可以看到 Windows Server 2012 默认安装的是 4.5 的版本,如果老的服务器不方便升级,则需要软件能支持 4.5 的版本 首先,新建 Test1 项目,.NET 版本随便选择 打开 工具 - NuGet 包管理器 - 管理解决方案的 NuGet

    2024年02月05日
    浏览(10)
  • Android Studio开发之路 (五)导入OpenCV以及报错解决

    Android Studio开发之路 (五)导入OpenCV以及报错解决

    一、步骤 官网下载opencv包(我下的是4.7.0)并解压,openvc官网 先创建一个空项目,简单跑一下能正常输出helloworld 点击 file-new-Import Module 选择解压之后的opencv-android-sdk文件夹中的SDk文件夹, module name这个地方可以改成你想要的的名字,我是改成了opencv 4.加载完成之后看下图,

    2024年02月11日
    浏览(10)
  • Android Studio Import Module 选择 OpenCV 时,无法导入的解决方法

    Android Studio Import Module 选择 OpenCV 时,无法导入的解决方法

    在 Android Studio 工程中,导入 OpenCV 库时,采用 “New == Import Module” 导入时,发现无法导入,具体现象如下图所示,“Finish” 和 “Next” 按钮始终是灰色的。换了好几个其他不同的 OpenCV 库版本,还是一样的情况,定位到 sdk/java 目录下,也无法导入。 参考了这篇文章: 链接

    2024年02月21日
    浏览(11)
  • Visual Studio下2022Opencv的配置

    Visual Studio下2022Opencv的配置

    先从官网下载opencv : opencv releases 下载 ​ 我这里的开发环境是window版本,我们选择Windows版本进行下载 点开下载的文件,输入需要保存的路径 记住你保存的路径(我这里安装再F:) 安装需要时间静等安装。 创建一个项目 我们对其进行opencv的配置 在创建的项目中找到解决方案资

    2024年02月13日
    浏览(11)
  • 安装visual studio2022以及配置opencv

    安装visual studio2022以及配置opencv

    目录 1下载visual studio 1.1进入网站点击 下载visual studio,选择Community 2022 1.2打开安装包,进入界面 1.3等待安装完成  2下载opencv 2.2下载完成后自定义解压路径 3.3win10系统配置环境变量 3配置visual studio 3.1打开软件 3.2配置 4测试 Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编

    2024年02月12日
    浏览(7)
  • 如何在Visual Studio 2022中配置OpenCV环境

    如何在Visual Studio 2022中配置OpenCV环境

    Visual Studio下载链接 Open CV下载链接 注意:环境配置所有流程中使用到的路径均为个人下载安装软件对应路径!! 【高级系统配置】——【环境变量】——【系统变量-Path】               双击【Path】,进入后点击【新建】,输入红框中所示路径(路径请注意修改为自己

    2024年02月08日
    浏览(16)
  • Visual Studio 2022 cmake配置opencv开发环境

    Visual Studio 2022 cmake配置opencv开发环境

    这里我用的是 widnows 10 64位 , Visual Studio 用的 Visual Studio Community 2022 (社区版) 对于 Android 开发工程师来说,为什么要使用 Visual Studio 呢 ? 因为在 Visual Studio 中开发调试 OpenCV 方便,可以开发调试好后,再移植到 Android 中。 官方地址在这里 : 官方下载地址 不过官方下载地址可能

    2024年02月07日
    浏览(19)
  • [Android Studio] 导入安卓Android项目教程

    [Android Studio] 导入安卓Android项目教程

    A项目指:要导入的项目;B项目指自己电脑上可以运行的项目 根据步骤一步一步来,别急。 将要导入的项目(简称为A)根目录下的这些文件删掉:.gradle、.idea 、.iml后缀的文件、 local.properties 进入app文件夹,将这些文件删掉:build、.iml后缀的文件 打开一个你在自己电脑上可

    2024年02月04日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包