opencv3_java akaze的特征提取与图像匹配 akaze

原创 2017年05月30日 17:11:22

akaze的特征提取与图像匹配 akaze


package opencv_java_demo;

import org.opencv.core.*;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.features2d.*;

public class akaze {

	public static void main(String[] args) {
		try{
			System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
			
			Mat src1=Imgcodecs.imread("./imgaes/src1.jpg");
			Mat src2=Imgcodecs.imread("./imgaes/src2.jpg");
			if(src1.empty()||src2.empty()){
				throw new Exception("no file");
			}
			
			MatOfKeyPoint keypoint1=new MatOfKeyPoint();
			MatOfKeyPoint keypoint2=new MatOfKeyPoint();
			FeatureDetector sifDetector =FeatureDetector.create(FeatureDetector.AKAZE);
			
			siftDetector.detect(src1,keypoint1);
			siftDetector.detect(src2,keypoint2);
			
			DescriptorExtractor extractor=DescriptorExtractor.create(DescriptorExtractor.AKAZE);
			
			Mat descriptor1=new Mat(src1.rows(),src1.cols(),src1.type());
			extractor.compute(src1, keypoint1, descriptor1);
			Mat descriptor2=new Mat(src2.rows(),src2.cols(),src2.type());
			extractor.compute(src2, keypoint2, descriptor2);
			
			MatfOfMatch matches=new MatOfMatch();
			DescriptorExtractor matcher=DescriptorExtractor.create(DescriptorExtractor.BRUTEFORCE);
			
			matcher.match(descriptor1,descriptor2,matches);
			
			Mat dst=new Mat();
			Features2d.drawMatches(src1, keypoint1, src2, keypoint2, matches, dst);
			
			Imgcodecs.imwrite("./images/akaze.jpg", dst);
		}catch(Exception e){
			System.out.println("例外:"+e);
		}

	}

}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

opencv3_java 检测图像人脸眼睛CascadeClassifier DetectEye

检测图像人脸眼睛CascadeClassifier DetectEye package opencv_java_demo; import org.opencv.core.*; import...

VS2010及各版本的VS快捷键操作

Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

opencv3_java 图像的旋转Rotate getRotationMatrix2D

图像的旋转Rotate getRotationMatrix2D package opencv_java_demo; import org.opencv.core.*; import org.op...

opencv3_java 图像Mat画图 Mat

图像Mat画图 Mat package opencv_java_demo; import org.opencv.core.*; import org.opencv.imgcodecs.Im...

opencv3_java 提取图像的RGB三原色分割图像Split Core.split

提取图像的RGB三原色分割图像Split Core.split package opencv_java_demo; import java.util.List; import org.open...

OpenCV学习(三)使用mask添加水印

上一篇学习了ROI的用法,本节接着上一篇,继续添加水印,但是要去掉讨厌的水印的背景。 关于添加水印,网上有一篇讲的很清楚: http://www.cnblogs.com/mfryf/archi...

opencv3_java 添加mask掩码 AddMask

添加mask掩码 AddMask package opencv_java_demo; import org.opencv.core.*; import org.opencv.imgcode...

我的OpenCV学习笔记(四):给图像加上水印效果

当两幅图像尺寸相同时,给图像加上水印效果其实很简单,就是简单的将一幅图像加到另一幅图像上(两幅图像乘以一定的系数就可以控制相加的效果): #include #include using name...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)