ホームページ >Java >&#&チュートリアル >OpenCV Javaライブラリを使用して2つの画像のキーポイントを一致させるにはどうすればよいですか?
org.opencv.features2d.Feature2D (Abstract) クラスの detect() メソッドは、指定された画像のキー ポイントを検出します。このメソッドでは、ソース イメージを表す Mat オブジェクトと、読み取りキーポイントを保持する空の MatOfKeyPoint オブジェクトを渡す必要があります。
org.opencv.features2d.Feature2D クラスのstrong>drawMatches() メソッドは、指定された 2 つの画像のキーポイント間の一致を見つけて描画します。このメソッドは次のパラメータを受け入れます -
src1 - 最初の Mat クラスを表すオブジェクト ソース イメージ。
keypoints1 - 最初のソース画像のキーポイントを表すクラス MatOfKeyPoint のオブジェクト。
src2 - 2 番目のソース イメージを表すクラス Mat のオブジェクト。
keypoints2 - クラス MatOfKeyPoint のオブジェクト。2 番目のソース イメージのキー ポイントを表します。
matches1to2 strong> - 最初の画像から 2 番目の画像への一致。 keypoints1[i] が keypoints2[matches[i] ] にあることを意味します。 に対応する点があります。 。
dst - ターゲット画像を表す Mat クラスのオブジェクト。
したがって、2 つの画像のキーポイントを一致させます -
imread() メソッドを使用して 2 つのソースを読み取ります画像。
画像のキーポイントを取得し、detect() メソッドを使用して 2 つの画像を描画します。
drawMatches() メソッドを使用して、一致を見つけて描画します。
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfDMatch; import org.opencv.core.MatOfKeyPoint; import org.opencv.features2d.FastFeatureDetector; import org.opencv.features2d.Features2d; import org.opencv.highgui.HighGui; import org.opencv.imgcodecs.Imgcodecs; public class MatchingKeypoints { public static void main(String args[]) throws Exception { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the source images String file1 ="D:\Images\feature1.jpg"; Mat src1 = Imgcodecs.imread(file1); String file2 ="D:\Images\feature2.jpg"; Mat src2 = Imgcodecs.imread(file2); //Creating an empty matrix to store the destination image Mat dst = new Mat(); FastFeatureDetector detector = FastFeatureDetector.create(); //Detecting the key points in both images MatOfKeyPoint keyPoints1 = new MatOfKeyPoint(); detector.detect(src1, keyPoints1); MatOfKeyPoint keyPoints2 = new MatOfKeyPoint(); detector.detect(src2, keyPoints2); MatOfDMatch matof1to2 = new MatOfDMatch(); Features2d.drawMatches(src1, keyPoints1, src2, keyPoints2, matof1to2, dst); HighGui.imshow("Feature Matching", dst); HighGui.waitKey(); } }入力画像
画像 1 -
画像 2 -
出力以上がOpenCV Javaライブラリを使用して2つの画像のキーポイントを一致させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。