首页系统综合问题Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本

Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本

时间2022-12-05 14:30:03发布分享专员分类系统综合问题浏览79

Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,它可以运行在Linux、Windows、Android和Mac OS等操作系统上libs是什么文件夹 。OpenCV原本由一系列 C 函数和少量 C++ 类构成,同时提供了Python等其他语言的接口,它实现了图像处理和计算机视觉方面的很多通用算法。下面这个实例演示了使用OpenCV在Android手机实现在图像上绘制文本。 本文提供的OpenCV实例使用Java语言编写,并且运行在Android手机上。

01

实例功能

此实例主要通过使用Imgproc的putText方法,实现在图像上绘制(添加)文本libs是什么文件夹 。Imgproc是Image和Processing这两个单词的缩写组合,它是OpenCV的图像处理模块,该模块包含如下内容:线性和非线性的图像滤波、图像的几何变换、图像转换、直方图相关、结构分析和形状描述、运动分析和对象跟踪、特征检测、目标检测等。

当实例运行之后,单击“显示原始图像”按钮,原始图像的效果如图1(a)所示libs是什么文件夹 。单击“在图像上添加文本”按钮,在图像上添加文本(OpenCV)之后的效果如图1(b)所示。

Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本

■ 图1

02

实现代码

publicclassMainActivityextendsActivity{

ImageView myImageView;

Bitmap myBitmap;

static{ System.loadLibrary( "opencv_java3");} //加载OpenCV库

@Override

protectedvoidonCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myImageView = (ImageView) findViewById(R.id.myImageView);

myBitmap = BitmapFactory.decodeResource(getResources, R.mipmap.myimage1);

publicvoidonClickButton1(View v){ //响应单击按钮“显示原始图像”

myImageView.setImageBitmap(myBitmap);

publicvoidonClickButton2(View v){ //响应单击按钮“在图像上添加文本”

Bitmap myNewBitmap=Bitmap.createBitmap(myBitmap.getWidth,

myBitmap.getHeight,Bitmap.Config.RGB_565); //根据原始图像创建空Bitmap

Mat myMat= newMat;

Utils.bitmapToMat(myBitmap,myMat); //将原始图像保存至myMat

Point myPoint= newPoint( 300, 700); //定义绘制文本的起始位置

Scalar myScalar= newScalar( 255, 0, 0, 255); //设置绘制文本的颜色

//在图像上添加文本(仅支持英文、符号等libs是什么文件夹 ,中文暂不支持)

Imgproc.putText(myMat, "OpenCV",myPoint,

Core.FONT_HERSHEY_COMPLEX, 4,myScalar, 3);

//将添加文本之后的图像输出至myNewBitmap

Utils.matToBitmap(myMat,myNewBitmap);

//通过ImageView控件显示叠加文本之后的图像

myImageView.setImageBitmap(myNewBitmap);

03

代码说明

上面这段代码在MyCode\MySampleK31\app\src\main\java\com\bin\luo\mysample\ MainActivity.java文件中libs是什么文件夹 。在这段代码中,Imgproc的putText方法用于在图像上添加文字(字母),该方法的语法声明如下:

其中,参数Mat img表示待绘制的图像;参数String text表示待绘制的文字;参数Point org表示文字的起点坐标;参数int fontFace表示字体;参数double fontScale表示文字大小因子,值越大文字越大;参数Scalar color表示文字颜色;参数int thickness表示文字线条宽度libs是什么文件夹 。

Utils.bitmapToMat(myBitmap,myMat)用于将Bitmap输出到Matlibs是什么文件夹 ,该方法的语法声明如下:

其中,参数Bitmap bmp表示源Bitmap,支持ARGB_8888和RGB_565像素类型;参数Mat mat表示目标Mat,默认类型是CV_8UC4类型,大小和Bitmap一样,通道顺序为RGBAlibs是什么文件夹 。

Utils.matToBitmap(myMat,myNewBitmap)用于将Mat输出到Bitmaplibs是什么文件夹 ,该方法的语法声明如下:

其中,参数Mat mat表示源Mat,支持CV_8UC1,CV_8UC3或CV_8UC4类型;参数Bitmap bmp表示目标Bitmap,支持ARGB_8888或RGB_565类型libs是什么文件夹 。

static{ System.loadLibrary("opencv_java3");}表示加载OpenCV库libs是什么文件夹 。默认情况下,在Android中使用OpenCV需要导入相关的库文件,具体操作步骤如下。

(1) 从文件夹到项目即可。

Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本

■ 图2

(2) 在Android Studio菜单上依次选择File\New\Import Module...,弹出Import Module from Source对话框libs是什么文件夹 。在该对话框中单击“Source directory:”右端的文件夹按钮,然后选择openCVLibrary345Copy文件夹,会出现错误(重复)提示。直接在“Module name:”输入框中将openCVLibrary345Copy修改为openCVLibrary345,错误提示消失,如图3所示。再单击Finish按钮即可。

Android App开发超实用实例 | OpenCV在Android手机实现在图像上添加文本

■ 图3

(3) 按照如下粗体字所示修改MyCode\MySampleK31\app\build.gradle文件libs是什么文件夹 。完成之后同步(Sync Now)即可。

applyplugin: 'com.android.application'

android{

compileSdkVersion29

buildToolsVersion"29.0.2"

defaultConfig{

applicationId"com.bin.luo.mysample"

minSdkVersion27

targetSdkVersion29

versionCode1

versionName"1.0"

testInstrumentationRunner"androidx.test.runner.AndroidJUnitRunner"

buildTypes{

release{

minifyEnabledfalse

proguardFilesgetDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

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

dependencies{

implementationfileTree(dir: 'libs', include: ['*.jar'])

implementation'androidx.appcompat:appcompat:1.0.2'

implementation'androidx.constraintlayout:constraintlayout:1.1.3'

testImplementation'junit:junit:4.12'

implementationproject(':openCVLibrary345')

androidTestImplementation'androidx.test:runner:1.2.0'

androidTestImplementation'androidx.test.espresso:espresso-core:3.2.0'

(4) 复制MyCode\MySampleK31\app\libs文件夹下的所有内容到(用户的)项目中即可libs是什么文件夹 。该文件夹及其子文件夹的文件与手机CPU的类型有关,缺少这些文件在编译或运行时会报错或无响应。

特别说明 /

在测试前必须从MyCode\MySampleK31\app\libs文件夹复制该文件夹中的所有子文件夹及其文件到(用户的)项目的libs文件夹libs是什么文件夹 。

此实例的完整代码在MyCode\MySampleK31文件夹中libs是什么文件夹 。

04

补充说明

在测试代码时,必须保持网络畅通libs是什么文件夹 。

05

源代码下载

关注微信公众号,后台回复关键词 “Android App开发超实用代码062” 即可获得完整源代码libs是什么文件夹 。

06

参考书籍

扫码优惠购书

《Android App开发超实用代码集锦——jQuery Mobile+OpenCV+O》

作者:罗帅、罗斌

定价:99元

问题描述+解决方案+真实源码+效果截图

介绍jQuery Mobile、OpenCV、OpenGL等在Android平台运行的应用

300个实例libs是什么文件夹 ,提供完整源代码,边看边做边学

爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

AndroidOpenCVAppAndroidApplibs是什么文件夹
NSTimeInterval时间零点 批量新建文件夹并命名,详细步骤分享