需要什么 MatOfMatch 对象?
what MatOfMatch object is needed for?
我写了下面的代码来感受一下特征检测。
但我不明白的是,为什么我们需要 MatOfMatch
对象,需要它做什么?
代码
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat img_0 = Highgui.imread(PATH_0);
Mat img_0_rev = Highgui.imread(PATH_1);
Mat img_output = new Mat();
FeatureDetector fDetect = FeatureDetector.create(FeatureDetector.SIFT);
MatOfKeyPoint mKeyPoints_0 = new MatOfKeyPoint();
fDetect.detect(img_0, mKeyPoints_0);
System.out.println("mKeyPoint_0: " + mKeyPoints_0.size());
MatOfKeyPoint mKeyPoints_1 = new MatOfKeyPoint();
fDetect.detect(img_0_rev, mKeyPoints_1);
System.out.println("mKeyPoint_1: " + mKeyPoints_1.size());
MatOfDMatch mDMatch = new MatOfDMatch();
//Features2d.drawKeypoints(mKeyPoints_0, mKeyPoints_0, outImage, Scalar color, Features2d.DRAW_RICH_KEYPOINTS);
Features2d.drawMatches(img_0, mKeyPoints_0, img_0_rev, mKeyPoints_1, mDMatch, img_output);
我对 Java API 并不完全熟悉,但我想这个过程在任何语言中都是相似的。
如果您只想检测 特征(关键点),则不需要使用匹配。
但是,如果您想 匹配 两张图片之间的特征,那么还有一些事情要做。
一般步骤如下:
- 使用特征检测器检测图像上的特征(关键点)。
- 使用描述符提取器提取关键点的描述符。
- 比较描述符以使用描述符匹配器创建匹配项 (DMatch)。
- 选出您的最佳匹配项并进行抽签。
我写了下面的代码来感受一下特征检测。
但我不明白的是,为什么我们需要 MatOfMatch
对象,需要它做什么?
代码
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat img_0 = Highgui.imread(PATH_0);
Mat img_0_rev = Highgui.imread(PATH_1);
Mat img_output = new Mat();
FeatureDetector fDetect = FeatureDetector.create(FeatureDetector.SIFT);
MatOfKeyPoint mKeyPoints_0 = new MatOfKeyPoint();
fDetect.detect(img_0, mKeyPoints_0);
System.out.println("mKeyPoint_0: " + mKeyPoints_0.size());
MatOfKeyPoint mKeyPoints_1 = new MatOfKeyPoint();
fDetect.detect(img_0_rev, mKeyPoints_1);
System.out.println("mKeyPoint_1: " + mKeyPoints_1.size());
MatOfDMatch mDMatch = new MatOfDMatch();
//Features2d.drawKeypoints(mKeyPoints_0, mKeyPoints_0, outImage, Scalar color, Features2d.DRAW_RICH_KEYPOINTS);
Features2d.drawMatches(img_0, mKeyPoints_0, img_0_rev, mKeyPoints_1, mDMatch, img_output);
我对 Java API 并不完全熟悉,但我想这个过程在任何语言中都是相似的。
如果您只想检测 特征(关键点),则不需要使用匹配。
但是,如果您想 匹配 两张图片之间的特征,那么还有一些事情要做。
一般步骤如下:
- 使用特征检测器检测图像上的特征(关键点)。
- 使用描述符提取器提取关键点的描述符。
- 比较描述符以使用描述符匹配器创建匹配项 (DMatch)。
- 选出您的最佳匹配项并进行抽签。