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

android opencv导入进行编译

1、直接新建module进行导入,选择opencv的sdk

导入module模式,选择下载好的sdk,修改module name为OpenCV490。

有报错直接解决报错,没报错直接运行成功。

2、解决错误,同步成功

一般报错是gradle版本问题较多。我的报错如下:

Build file 'D:\work\OpenCVJni\OpenCV480\build.gradle' line: 92A problem occurred evaluating project ':OpenCV480'.> Plugin with id 'kotlin-android' not found.

注释掉

//apply plugin: 'kotlin-android'

重新同步成功。

那就直接build,运行没再报错,就可以直接引用项目进行测试。

3、测试代码
public class MainActivity extends AppCompatActivity {private Bitmap srcBitmap = null;private Bitmap   dstBitmap = null;private ImageView imageView = null;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// opencv初始化if (!OpenCVLoader.initDebug()) {// Handle initialization errorreturn;}imageView = findViewById(R.id.imageView);srcBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.image); // 替换为你的图片资源findViewById(R.id.load).setOnClickListener(v -> {imageView.setImageBitmap(srcBitmap);});findViewById(R.id.equalize).setOnClickListener(v -> {// 加载成功后,进行直方图均衡化操作dstBitmap = equalizeHistogram(srcBitmap);imageView.setImageBitmap(dstBitmap);});}private Bitmap equalizeHistogram(Bitmap srcBitmap) {Mat srcMat = new Mat();Mat dstMat = new Mat();Utils.bitmapToMat(srcBitmap, srcMat);// 将图片转换为灰度图Imgproc.cvtColor(srcMat, srcMat, Imgproc.COLOR_BGR2GRAY);// 将源图像的通道转换为单通道List<Mat> channels = new ArrayList<>();Core.split(srcMat, channels);// 对每个通道进行直方图均衡化Imgproc.equalizeHist(channels.get(0), channels.get(0));// 合并通道Core.merge(channels, dstMat);// 将处理后的图像转换回RGB格式Imgproc.cvtColor(dstMat, dstMat, Imgproc.COLOR_GRAY2BGR);Bitmap equalizedBitmap = Bitmap.createBitmap(dstMat.cols(), dstMat.rows(), Bitmap.Config.ARGB_8888);Utils.matToBitmap(dstMat, equalizedBitmap);// 释放资源srcMat.release();dstMat.release();return equalizedBitmap;}
}

xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat 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"android:background="@color/colorWhite"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="80dp"android:orientation="horizontal"><Buttonandroid:id="@+id/load"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="15dp"android:background="@color/colorPrimaryDark"android:text="加载"android:textColor="@color/colorWhite" /><Buttonandroid:id="@+id/equalize"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="15dp"android:background="@color/colorPrimaryDark"android:text="直方图均衡"android:textColor="@color/colorWhite" /></LinearLayout><FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorWhite"><ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:src="@mipmap/image" /></FrameLayout></androidx.appcompat.widget.LinearLayoutCompat>

代码截图

4、运行结果


http://www.mrgr.cn/news/80492.html

相关文章:

  • 【docker】容器编排之docker swarm
  • HarmonyOS学习 --- Mac电脑获取手机UDID
  • SQL -- 条件分支
  • Gartner发布2025年网络安全主要趋势:实现转型和嵌入弹性两大主题下的9个趋势
  • onnx文件转pytorch pt模型文件
  • Artec Leo3D扫描仪在重型机械设备定制中的应用【沪敖3D】
  • Vue3期末复习
  • MySQL中Json字段
  • MySQL数据库sql教程-从入门到进阶
  • 【Linux】结构化命令:if-then语句
  • 基于python绘制数据表(下)
  • 一、基于langchain使用Qwen搭建金融RAG问答机器人--技术准备
  • samout llm解码 幻觉更低更稳定
  • Rk3588 FFmpeg 拉流 RTSP, 硬解码转RGB
  • Android显示系统(13)- 向SurfaceFlinger提交Buffer
  • 从上千份大厂面经呕心沥血整理:大厂高频手撕面试题(数据结构篇 ,Java实现亲试可跑)
  • FFmpeg第一话:FFmpeg 简介与环境搭建
  • YOLOv8目标检测(三*)_最佳超参数训练
  • PHPstudy中的数据库启动不了
  • 计网_虚拟局域网VLAN
  • C++对象数组对象指针对象指针数组
  • labelimg使用指南
  • Python-基于Pygame的小游戏(天空之战)(一)
  • ansible自动化运维(五)roles角色管理
  • YOLOv8目标检测(四)_图片推理
  • 【JVM】JVM基础教程(四)