已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
特征提取与匹配案例代码 环境 Android studio opencv for Android MainActivity java package com packtpub masteringopencvandroid chapter3 import android app Activity import android content Intent import android graphics Bitmap import android graphics BitmapFactory import Uri import android os AsyncTask import android os Bundle import android os Environment import android util Log import android view Menu import android view MenuItem import android widget ImageView import android widget TextView import android widget Toast import org opencv android BaseLoaderCallback import org opencv android LoaderCallbackInterface import org opencv android OpenCVLoader import org opencv android Utils import org opencv core Core import org opencv core CvType import org opencv core Mat import org opencv core MatOfDMatch import org opencv core MatOfKeyPoint import org opencv core Point import org opencv core Scalar import org opencv features2d DMatch import org opencv features2d DescriptorExtractor import org opencv features2d DescriptorMatcher import org opencv features2d FeatureDetector import org opencv features2d Features2d import org opencv highgui Highgui import org opencv imgproc Imgproc import java io FileNotFoundException import java io InputStream import java util Collections import java util Comparator import java util Date import java util List public class MainActivity extends Activity private final int SELECT PHOTO 1 1 private final int SELECT PHOTO 2 2 private final int MAX MATCHES 50 private ImageView ivImage1 private TextView tvKeyPointsObject1 tvKeyPointsObject2 tvKeyPointsMatches tvTime private int keypointsObject1 keypointsObject2 keypointMatches Mat src1 src2 static int ACTION MODE 0 private boolean src1Selected false src2Selected false private BaseLoaderCallback mOpenCVCallBack new BaseLoaderCallback this Override public void onManagerConnected int status switch status case LoaderCallbackInterface SUCCESS DO YOUR WORK STUFF HERE System loadLibrary nonfree break default super onManagerConnected status break Override protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity main getActionBar setDisplayHomeAsUpEnabled true ivImage1 ImageView findViewById R id ivImage1 tvKeyPointsObject1 TextView findViewById R id tvKeyPointsObject1 tvKeyPointsObject2 TextView findViewById R id tvKeyPointsObject2 tvKeyPointsMatches TextView findViewById R id tvKeyPointsMatches keypointsObject1 keypointsObject2 keypointMatches 1 tvTime TextView findViewById R id tvTime Intent intent getIntent if intent hasExtra ACTION MODE ACTION MODE intent getIntExtra ACTION MODE 0 Override public boolean onCreateOptionsMenu Menu menu getMenuInflater inflate R menu menu main menu return true Override public boolean onOptionsItemSelected MenuItem item int id item getItemId if id R id action load first image Intent photoPickerIntent new Intent Intent ACTION PICK photoPickerIntent setType image startActivityForResult photoPickerIntent SELECT PHOTO 1 return true else if id R id action load second image Intent photoPickerIntent new Intent Intent ACTION PICK photoPickerIntent setType image startActivityForResult photoPickerIntent SELECT PHOTO 2 return true return super onOptionsItemSelected item Override protected void onActivityResult int requestCode int resultCode Intent imageReturnedIntent super onActivityResult requestCode resultCode imageReturnedIntent switch requestCode case SELECT PHOTO 1 if resultCode RESULT OK try final Uri imageUri imageReturnedIntent getData final InputStream imageStream getContentResolver openInputStream imageUri final Bitmap selectedImage BitmapFactory decodeStream imageStream src1 new Mat selectedImage getHeight selectedImage getWidth CvType CV 8UC4 ivImage1 setImageBitmap selectedImage Utils bitmapToMat selectedImage src1 src1Selected true catch FileNotFoundException e e printStackTrace break case SELECT PHOTO 2 if resultCode RESULT OK try final Uri imageUri imageReturnedIntent getData final InputStream imageStream getContentResolver openInputStream imageUri final Bitmap selectedImage BitmapFactory decodeStream imageStream src2 new Mat selectedImage getHeight selectedImage getWidth CvType CV 8UC4 Utils bitmapToMat selectedImage src2 src2Selected true catch FileNotFoundException e e printStackTrace break Toast makeText MainActivity this src1Selected src2Selected Toast LENGTH SHORT show if src1Selected new AsyncTask private long startTime endTime Override protected void onPreExecute super onPreExecute startTime System currentTimeMillis Override protected Bitmap doInBackground Void params return executeTask Override protected void onPostExecute Bitmap bitmap super onPostExecute bitmap endTime System currentTimeMillis ivImage1 setImageBitmap bitmap tvKeyPointsObject1 setText Object 1 keypointsObject1 tvKeyPointsObject2 setText Object 2 keypointsObject2 tvKeyPointsMatches setText Keypoint Matches keypointMatches tvTime setText Time taken endTime startTime ms execute private Bitmap executeTask Log d com packtpub chapter3 Execute FeatureDetector detector MatOfKeyPoint keypoints1 keypoints2 DescriptorExtractor descriptorExtractor Mat descriptors1 descriptors2 DescriptorMatcher descriptorMatcher MatOfDMatch matches new MatOfDMatch keypoints1 new MatOfKeyPoint keypoints2 new MatOfKeyPoint descriptors1 new Mat descriptors2 new Mat Log d com packtpub chapter3 before switch switch ACTION MODE case HomeActivity MODE SIFT detector FeatureDetector create FeatureDetector SIFT descriptorExtractor DescriptorExtractor create DescriptorExtractor SIFT descriptorMatcher DescriptorMatcher create DescriptorMatcher BRUTEFORCE SL2 descriptorMatcher DescriptorMatcher create DescriptorMatcher FLANNBASED break case HomeActivity MODE SURF detector FeatureDetector create FeatureDetector SURF descriptorExtractor DescriptorExtractor create DescriptorExtractor SURF descriptorMatcher DescriptorMatcher create DescriptorMatcher BRUTEFORCE SL2 break case HomeActivity MODE ORB detector FeatureDetector create FeatureDetector ORB descriptorExtractor DescriptorExtractor create DescriptorExtractor ORB descriptorMatcher DescriptorMatcher create DescriptorMatcher BRUTEFORCE HAMMING break case HomeActivity MODE BRISK detector FeatureDetector create FeatureDetector BRISK descriptorExtractor DescriptorExtractor create DescriptorExtractor BRISK descriptorMatcher DescriptorMatcher create DescriptorMatcher BRUTEFORCE HAMMING break case HomeActivity MODE FREAK detector FeatureDetector create FeatureDetector FAST descriptorExtractor DescriptorExtractor create DescriptorExtractor FREAK descriptorMatcher DescriptorMatcher create DescriptorMatcher BRUTEFORCE HAMMING break default detector FeatureDetector create FeatureDetector FAST descriptorExtractor DescriptorExtractor create DescriptorExtractor BRIEF descriptorMatcher DescriptorMatcher create DescriptorMatcher BRUTEFORCE HAMMING break Log d com packtpub chapter3 After switch detector detect src2 keypoints2 detector detect src1 keypoints1 Log d com packtpub chapter3 CvType typeToString src1 type CvType typeToString src2 type Log d com packtpub chapter3 keypoints1 toArray length keypoints Log d com packtpub chapter3 keypoints2 toArray length keypoints Log d com packtpub chapter3 Detect keypointsObject1 keypoints1 toArray length keypointsObject2 keypoints2 toArray length descriptorEpute src1 keypoints1 descriptors1 descriptorEpute src2 keypoints2 descriptors2 descriptorMatcher match descriptors1 descriptors2 matches Log d com packtpub chapter3 matches toArray length matches keypointMatches matches toArray length Collections sort matches toList new Comparator Override public int compare DMatch o1 DMatch o2 if o1 distanceo2 distance return 1 return 0 List listOfDMatch matches toList if listOfDMatch size MAX MATCHES matches fromList listOfDMatch subList 0 MAX MATCHES Mat src3 src1 clone Features2d drawMatches src1 keypoints1 src2 keypoints2 matches src3 Mat src3 drawMatches src1 keypoints1 src2 keypoints2 matches false Log d com packtpub chapter3 CvType typeToString src3 type Bitmap image1 Bitmap createBitmap src3 cols src3 rows Bitmap Config ARGB 8888 Utils matToBitmap src3 image1 Imgproc cvtColor src3 src3 Imgproc COLOR BGR2RGB boolean bool Highgui imwrite Environment getExternalStorageDirectory Download PacktBook Chapter3 ACTION MODE png src3 Log d com packtpub chapter3 bool Environment getExternalStorageDirectory Download PacktBook Chapter3 ACTION MO DE png return image1 Override protected void onResume super onResume OpenCVLoader initAsync OpenCVLoader OPENCV VERSION 2 4 10 this mOpenCVCallBack static Mat drawMatches Mat img1 MatOfKeyPoint key1 Mat img2 MatOfKeyPoint key2 MatOfDMatch matches boolean imageOnly matcher tree master src in mustafaak imagematcher Mat out new Mat Mat im1 new Mat Mat im2 new Mat Imgproc cvtColor img1 im1 Imgproc COLOR BGR2RGB Imgproc cvtColor img2 im2 Imgproc COLOR BGR2RGB if imageOnly MatOfDMatch emptyMatch new MatOfDMatch MatOfKeyPoint emptyKey1 new MatOfKeyPoint MatOfKeyPoint emptyKey2 new MatOfKeyPoint Features2d drawMatches im1 emptyKey1 im2 emptyKey2 emptyMatch out else Features2d drawMatches im1 key1 im2 key2 matches out Bitmap bmp Bitmap createBitmap out cols out rows Bitmap Config ARGB 8888 Imgproc cvtColor out out Imgproc COLOR BGR2RGB Core putText out FRAME new Point img1 width 2 30 Core FONT HERSHEY PLAIN 2 new Scalar 0 255 255 3 Core putText out MATCHED new Point img1 width img2 width 2 30 Core FONT HERSHEY PLAIN 2 new Scalar 255 0 0 3 return out HomeActivity java package com packtpub masteringopencvandroid chapter3 import android app Activity import android content Intent import android os Bundle import android view View import android widget Button public class HomeActivity extends Activity public static final int MODE SIFT 1 public static final int MODE SURF 2 public static final int MODE ORB 3 public static final int MODE BRISK 4 public static final int MODE FREAK 5 Override protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity home Button bSIFT bSURF bORB bBRISK bFREAK bSIFT Button findViewById R id bSIFT bSURF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古工程项目管理有限公司招聘6人考试笔试模拟试题及答案解析
- 首都医科大学附属北京儿童医院面向2026年应届毕业生(含社会人员)招聘135人笔试考试备考试题及答案解析
- 2025年安徽师范大学附属肥西外国语学校(初中部)教师招聘1人考试笔试模拟试题及答案解析
- 2025黑龙江佳木斯北大荒华源资产管理有限公司招聘1人笔试考试参考题库及答案解析
- 山东省菏泽市高三上学期期中考试英语试题(B)
- 2025四川乐山沐川县人力资源和社会保障局招聘城镇公益性岗位人员2人笔试考试备考题库及答案解析
- 2025年中国广电甘肃网络股份有限公司临夏州分公司招聘考试笔试备考试题及答案解析
- 2025贵州贵阳市乌当区实验小学招聘临聘教师1人考试笔试备考题库及答案解析
- 2026内蒙古鄂尔多斯市东胜区卫生健康系统事业单位引进紧缺和成熟型控制数工作人员36人笔试考试备考试题及答案解析
- 2025云南丽江宁蒗县大兴街道办事处面向社会公开招聘公益性岗位11人考试笔试模拟试题及答案解析
- 民用建筑外门窗应用技术标准
- EPC项目设计管理机构的构成和设计力量的配备
- 机电安装工程安全管理
- 核电专业英语试题库来自工程公司
- 复混肥料质量手册
- 美容院员工培训课件:美容院服务礼仪
- 综合考试真题集锦-老年人能力评估师(50题,含答案)
- 天津工业大学804物理化学历年考研真题14-16
- 大学课件-机电传动控制(完整)
- 六年级上册科学全册知识点(新改版苏教版)
- 大力弘扬新时代斗争精神PPT怎样弘扬新时代斗争精神PPT课件(带内容)
评论
0/150
提交评论