首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV Android端使用,基本版

介绍 最近在使用OpenCV的一些功能和方法,所以汇总一些关于OpenCV的方法在Android端上的调用吧。 网上更多的是Python和C++写的方法。...所以想汇总一下关于Android端上的使用。同时也记录自己对于OpenCV的一些理解。 2. OpenCV SDK 我们要使用OpenCV那么可以先从OpenCV提供的编译后的SDK入手。...3.1 ImageProxy Mat 有两种方法可以实现: 1.将ImageProxy转为Bitmap,然后再调用OpenCV中的Util类将BitmapMat。...(可选) 3.2.4 HoughLinesP 霍夫直线 可以提取每条直线轮廓线的开始坐标和结束坐标 Mat mat1 = new Mat(); Imgproc.HoughLinesP(mat, mat1...3.3 Mat Bitmap 由于Android是通过Bitmap显示图片的,所以我们需要将处理结束后的Mat对象转为Bitmap再赋值给View进行显示。

79720

Android实现双目测距

前言 在上一章我们介绍了《双目摄像头测量距离》,在这个基础上,我们来了解如何在Android上使用双目测距算法。...通过本教程,你不仅掌握如何在Android中使用SBM等双目测距算法,顺便也了解到如何在Android Studio配置OpenCV,通过使用OpenCV可以在Android中实现很多图像处理的功能。...配置OpenCV 下载OpenCVAndroid版本源码,官网下载地址:https://opencv.org/releases/,如果读者无法下载,笔者也提供的源码下载,版本是3.4.1的,下载地址:...1、创建一个Android项目,解压源码压缩包,在Android Studio中点击File--->Import Model,然后浏览解压后的sdk/java添加,如下图所示,如何正常的话会显示OpenCV...> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.opencv"

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android实现双目测距

我们来了解如何在Android上使用双目测距算法。...通过本教程,你不仅掌握如何在Android中使用SBM等双目测距算法,顺便也了解到如何在Android Studio配置OpenCV,通过使用OpenCV可以在Android中实现很多图像处理的功能。...配置OpenCV 下载OpenCVAndroid版本源码,官网下载地址:https://opencv.org/releases/,如果读者无法下载,笔者也提供的源码下载,版本是3.4.1的,下载地址:...1、创建一个Android项目,解压源码压缩包,在Android Studio中点击File—>Import Model,然后浏览解压后的sdk/java添加,如下图所示,如何正常的话会显示OpenCV...> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.opencv"

1K20

OpenCV | 基于Android系统详析Mat与Bitmap对象(创建、初始化、使用与转换 | 附大量demo)

,主要是两个坐标点参数含义不一样: pt1:表示矩形左上角点的屏幕坐标; pt2:表示矩形右下角点的屏幕坐标; ---- circle(Mat img,Point center,int radius...Mat与Bitmap的使用与转换 在Android中使用OpenCV来完成应用开发时经常需要在Mat对象与Bitmap对象之间相互切换; Bitmap是Android中的图像对象,Mat作为OpenCV...Bitmap的类型是ARGB_8888, 而OpenCV中加载图像默认的类型为BGR, 所以需要通过cvtColor()转换为RGBA四通道图像之后, 再调用mat与Bitmap的相互转换方法(matToBitmap...ARGB_8888), Bitmap对象传递到OpenCV中转换为Mat对象; 处理完成之后再将这Mat对象重新转回Bitmap对象; 最后通过ImageView显示。...(2)透明通道 在OpenCV中做图像处理,如果需要处理透明通道,则需要将图像Bitmap加载为ARGB_8888方式, (如以上4.1 例子中的创建Bitmap时的代码) 然后转换为Mat对象,此时

6.3K63

Android OpenCV 4.6.0 颜色追踪

介绍 通过OpenCV实现,实时识别摄像头中的固定颜色块的坐标位置,并进行标注。 简而言之,追踪摄像头中纯色物体的运动轨迹。 我们可以通过OpenCV来识别视频中的纯色物体的移动轨迹。...遍历轮廓数组得到轮廓面积最大的坐标集合。 完成 主要步骤为上面这几种。下面,将会介绍如何实现。 2.1 调用摄像头获取Mat Android CameraX 的初始化就不多赘述了。网上有不少的示例。...得到ImageProxy对象,然后将ImageProxy对象直接转为Mat对象。 转换方法可以参考:Android ImageProxy OpenCV Mat对象 有完整的介绍。...当我们得到Mat后就会开始进行下面的操作了。 PS:本来打算用VideoCapture对象的,但是老是崩溃错误。没办法。 2.2 HSV Android拍摄的照片颜色是RGBa格式的。...小结 到这里追踪效果就实现了,我们也可以拿到实时的坐标数据进行其他的业务计算了。 整体实现的代码大部分参考openCV SDK中的samples示例代码。

1.5K20

计算机视觉 OpenCV Android | 特征检测与匹配之角点检测——Harris角点检测与Shi-Tomasi角点检测

对象, 这个Mat对象的每一个坐标(i,j)都是对应输入图像对应坐标(i,j)的像素的响应值R, 要先将这个Mat对象归一化, 再循环每一个Mat数据元素,一 一 跟自己设置的阈值进行比较, 合格的再认为是角点并提取出来...Mat();   // 角点检测   Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);//灰度!!!!!!   ...这种接口设计思想, 一个方法(get())接口即可实现包含一到多个数据元素的形式参数的传入; 而没必要去准备/重载两个方法—— 一个用来接收包含单个数据元素的变量型形参, 另一个用来接收包含多个数据元素的数组型形参...上述程序首先把彩色RGB图像转换为单通道灰度图像, 然后使用Harris角点检测函数完成各个像素点上角点响应值的计算, 最后使用阈值过滤绘制那些响应值R比较大的像素点(角点)。...---- 参考材料 《OpenCV Android 开发实战》(贾志刚 著) 关于《OpenCV Android 开发实战》作者的GitHub项目 笔者基于作者GitHub维护的APP

1.1K30

Android OpenCV 4.6 透视变换

我们如果要获取其中某个坐标点的位置,也会因为这个偏移而发生错误。 而针对这种情况下,我们要计算相机中的坐标,并转换为真实坐标。有两种方法,一种是实现透视变化,一种是计算相机坐标和世界坐标的转换。...Imgproc.getPerspectiveTransform(Mat src, Mat dst, int solveMethod) Mat src: 输入图形的四边形顶点坐标 Mat dst:输出图形的四边形顶点坐标...); Mat src:输入对象,需要变换的坐标或者图片 Mat dst:输出对象,变换结束后的效果 Mat M:3*3尺寸大小的转换矩阵,openCV将会按照这个转换矩阵将输入src转为输出dst。...效果就是上面示例图的效果: 第一步,就是将获取坐标点,可以通过OpenCV的轮廓识别获取坐标点(精度准确),也可以手动触摸提取坐标点(精度偏移较大) 我这里就简单点了,直接提取触摸点的方法来实现了。...当我们获取了坐标值之后,进行透视变换的矩形数据生成。 中间的获取相机,再将相机的imageProxyMat这里就不做介绍,步骤简单。

99620

Android SurfaceView onTouchEvent配合OpenCV显示

以前我们整体的介绍了利用SurfaceView调用系统的Camera显示图像,并且通过NDK OpenCV的方式进行图像处理,今天这篇我们就是来介绍一下,在SurfaceView中点击显示图像中的区域进行定位...代码实现 程序框架我们就不在重新搭建了,用的还是《Android利用SurfaceView显示Camera图像爬坑记(六) -- 用OpenCV进行Canny边缘检测》那个Demo。...然后通过ALT+Enter直接在我们的native-lib.cpp里面自动生成对应的方法,主要就是生成了Mat图像后加入刚才的点坐标进行画半径50的圆并填充。 ?.../graphics/Bitmap$Config;"); jobject bitmap_config = env->CallObjectMethod(bmp, mid); //将SRC转换为图片..., bmp); return _bitmap; } 这样我们的SurfaceView中点击效果在OpenCV中就实现了,下图就是视频中的点击效果显示。

1K10

Android SurfaceView onTouchEvent进阶操作OpenCV显示

前一篇文章《Android SurfaceView onTouchEvent配合OpenCV显示》介绍了Android SurfaceView中通过onTouchEvent事件点击后在OpenCV中画了个圆显示出来...实现效果 通过点击,移动在图像上画上矩形 ★ 实现思路 ★ 在OpenCV中画矩形需要两个坐标点即可,所以我们在点击屏幕时传递给OpenCV一个启始坐标点和一个结束坐标点,OpenCV中对每一帧的图像的传递进来的两个坐标点画矩形即可...在上章的Demo基础上再加入一对新的点击位置比例,这里只计算位置的比例,在调用OpenCV时重新要甩这个比例来计算坐标点进行传入。 ?...上图中调用OpenCV的方法nv21ToBitmap里我们重新计算了起始坐标和结束坐标的位置,然后新写了一个JNI的方法进行调用,代码如下: private Bitmap nv21ToBitmap(byte...像在OpenCV中画圆,画矩形我们最简单的方法已经会,这里主要就是看看传进来的List我们怎么取出来,在JNI中传递LIst集合,我们在《Android NDK编程(八)--- JNI中List

1.5K20

OpenCV 安卓编程示例:1~6 全

使用 OpenCV 构建您的第一个 Android 项目 在开发环境启动并运行并且具有适当的 NDK 背景的情况下,我可以开始组装如何在 Android 应用中使用 OpenCV 库的全景图。...我们添加了 OpenCV 命名空间,并定义了 Java 摄像机视图布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res...二、应用 1-建立自己的暗室 在本章中,您将学习如何在 OpenCV 中存储和表示图像,以及如何利用这种表示来实现有趣的算法,这些算法将增强图像的外观。...对于应用中将支持的每个操作,我们将需要一个菜单​​项。...我们遵循相同的算法,对图像进行置然后翻转。 但是,在对图像进行置后,它将是围绕水平方向的镜像版本,因此我们将0与0翻转代码一起调用。

5.4K10

常用数据增广方法,解决数据单一问题

但是在实际应用中,向前映射会出现如下几个问题: 浮点数坐标(1,1)映射为(0.5,0.5),显然这是一个无效的坐标,这时我们需要使用插值算法进行进一步处理。...因此,对于旋转和偏移,就需要3步(3次变换): 将输入原图图像坐标换为笛卡尔坐标系; 进行旋转计算。旋转矩阵前面已经给出了; 将旋转后的图像的笛卡尔坐标转回图像坐标。...令图像表示为M×N的矩阵,对于点A而言,两坐标系中的坐标分别是(0,0)和(-N/2,M/2),则图像某像素点(x',y')转换为笛卡尔坐标(x,y)转换关系为,x为列,y为行: 逆变换为: 于是,根据前面说的...3个步骤(3次变换),旋转(顺时针旋转)的变换形式就为,3次变换就有3个矩阵: 即: 基于OpenCV的实现 工具:OpenCV4.1.0+VS2019 平台:WIN10 函数原型(c++) OpenCV...OpenCv坐标转成笛卡尔坐标系后没转回图像坐标系。 其中比较难理解的是图像大小的变换,下面举一个例子大家就能明白了: ?

1.7K10

独家|OpenCV 1.4 对图像的操作

OpenCV图像采用了结构化的矩阵来表示,使用以下两种情形使用同样的协议 - 基于0的行索引(或y坐标)在先,后面跟随基于0的列索引(或x坐标)。...中有一些函数,尤其是在calib3d模块中,CV :: projectPoints函数,可以将 2D或3D像素点值转换成Mat形式的矩阵。...此时,需要将32F图像转换为8U类型的图像。例如: 注 这里没有必要使用CV :: namedWindow函数,因为它后面紧跟着CV :: imshow。...编辑:王菁 校对:汪雨晴 下一小节:1.5 利用OpenCV叠加(混合)两幅图像 往期回顾: 独家|OpenCV 1.1 Mat - 基本图像容器(附链接) 独家|OpenCV 1.2 如何用OpenCV...点击文末“阅读原文”加入数据派团队~ 转载须知 如需转载,请在开篇显著位置注明作者和出处(自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。

85720

java 添加盲水印_OpenCV-图像处理-频域手段添加盲水印

下边来说下具体代码,具体代码用iOS来实现,我们使用OpenCV3来实现,OpenCV3对图像处理使用 Mat(包含信息有矩阵的大小,用于存储的方法,矩阵存储的地址等)的矩阵头和一个指针指向包含了像素值的矩阵...因为我们使用OpenCV3是C++实现的只要看懂学会,Android、python等都可以按照其代码来实现的。...全局先定义: cv::Mat _complexImage; vectorplanes; vectorallPlanes; 1.原始图片UIImageMat进行处理 – (cv::Mat)cvMatFromUIImage...lastImage ; merge(allPlanes,lastImage); return lastImage; } 6.MatUIImage – (UIImage *)UIImageFromCVMat...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.2K20

图像的几何变换——平移、镜像、缩放、旋转、仿射变换 OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)数字图像处理笔

本文:https://www.cnblogs.com/noticeable/p/10411640.html 1.几何变换的基本概念   图像几何变换又称为图像空间变换,它将一副图像中的坐标位置映射到另一幅图像中的新坐标位置...向前映射 其逆变换为 ? 向后映射       2.垂直镜像变换 ? 其逆变换为 ?...OpenCV实现如下: void bilinearIntertpolatioin(cv::Mat& src, cv::Mat& dst, const int rows, const int cols)...也就很容易的得出旋转后图像左上角坐标(left,top)(以旋转中心为原点的坐标系) 故在旋转完成后要将坐标系转换为以图像的左上角为坐标原点,可由下面变换关系得到: ? 矩阵表示: ?...),变换为另一个向量空间的过程。

8K31

Android SurfaceVeiw划矩形截屏存放到RecyclerView中

前一篇文章《Android SurfaceView onTouchEvent进阶操作OpenCV显示》我们已经实现了在SurfaceView中划矩形显示在源图上,本章我们将结合前几天学习的东西把划的图形保存到...★ 知识点 ★ 01 RecyclerView的应用《Android RecyclerView图片横向滚动显示》 02 OpenCV NDK的使用《Android NDK编程(七)--- JNI中List...01 布局文件 activity_main.xml ? 布局文件中我们改为帧布局FrameLayout,然后加入一个RecyclerView,并放到了最底部。...在VaccaeSurfaceView中: 定义了回调函数BitmapCallBack mCallback 写了初始化的ontouchEvent的方法,用于手指抬起后保存图片再使用坐标点恢复初始。.../graphics/Bitmap$Config;"); jobject bitmap_config = env->CallObjectMethod(bmp, mid); //将SRC转换为图片

1.1K30

独家|OpenCV 1.2 如何用OpenCV扫描图像、查找表和测量时间(附链接)

首先,利用C ++的stringstream类将第三个命令行参数由文本格式转换为整数格式。然后,利用一个看似简单的公式计算查找表。此时,没有涉及到OpenCV的具体内容。 接下来的问题是如何测量时间?...第一个函数cv::getTickCount()返回返回某个事件(启动系统)之后系统CPU 的嘀嗒(Tick)数量。...有了这两个函数之后,便很容易测量出两个操作之间的时间间隔: https://docs.opencv.org/4.5.2/db/de0/group__core__utils.html 如何在内存中存储图像矩阵...你可以在以下源代码的灰度图像的情况下观察这一点(用到了+ cv::Mat::at() 函数) 该函数根据输入的数据类型和坐标,计算出查询项的地址,然后返回这个地址的引用值。...cv::Mat_  https://docs.opencv.org/4.5.2/df/dfc/classcv_1_1Mat__.html cv::Mat::at https://docs.opencv.org

87010

计算机视觉 OpenCV Android | 基本特征检测之 霍夫直线检测 详析

霍夫直线检测的作用——计算得到输入图像(一般是二值化的边缘检测结果图像)中包含的所有直线的数目与位置 在取得图像边缘的基础上, 对一些特定的几何形状边缘,直线、圆,通过图像霍夫变换把图像从平面坐标空间变换到霍夫坐标空间...OpenCV关于霍夫直线变换提供了两个相关API函数, 一个是在霍夫空间求取直线两个极坐标的参数, 需要开发者自己转换到平面坐标空间计算直线; 另外一个则会直接返回平面空间直线/线段的两个点坐标信息...返回极坐标参数的API函数如下: HoughLines(Mat image, Mat lines, double rho, double theta, int threshold) image:表示输入图像...另外一个API函数则比较简单, 它省去了开发者自己把极坐标换为直线坐标的过程, 直接返回每个线段/直线对应的两个点坐标, 其API函数与参数的解释具体如下: HoughLinesP(Mat image...---- 参考材料 《OpenCV Android 开发实战》(贾志刚 著) 关于本书作者的GitHub项目 笔者基于作者GitHub维护的APP 霍夫空间 图片参考于此博文 原作者博文 关于 Math.round

1.1K10
领券