当前位置: 首页>>代码示例>>Java>>正文


Java Features2d类代码示例

本文整理汇总了Java中org.opencv.features2d.Features2d的典型用法代码示例。如果您正苦于以下问题:Java Features2d类的具体用法?Java Features2d怎么用?Java Features2d使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Features2d类属于org.opencv.features2d包,在下文中一共展示了Features2d类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: drawMatches

import org.opencv.features2d.Features2d; //导入依赖的package包/类
static Mat drawMatches(Mat img1, MatOfKeyPoint key1, Mat img2, MatOfKeyPoint key2, MatOfDMatch matches, boolean imageOnly){
    //https://github.com/mustafaakin/image-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_GRAY2RGB);
    Imgproc.cvtColor(img2, im2, Imgproc.COLOR_GRAY2RGB);
    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);
    Imgproc.putText(out, "Frame", new Point(img1.width() / 2,30), Core.FONT_HERSHEY_PLAIN, 2, new Scalar(0,255,255),3);
    Imgproc.putText(out, "Match", new Point(img1.width() + img2.width() / 2,30), Core.FONT_HERSHEY_PLAIN, 2, new Scalar(255,0,0),3);
    return out;
}
 
开发者ID:johnhany,项目名称:MOAAP,代码行数:22,代码来源:MainActivity.java

示例2: drawCurrentMatches

import org.opencv.features2d.Features2d; //导入依赖的package包/类
public Mat drawCurrentMatches(int n)
{
	Mat img1 = CURRENT_QUERY_IMAGE.image();
	MatOfKeyPoint kp1= CURRENT_QUERY_IMAGE.keyPoints();
	Mat img2 = CURRENT_RESULT_IMAGE.image();
	MatOfKeyPoint kp2= CURRENT_RESULT_IMAGE.keyPoints();
	Mat result = new Mat();

	Features2d.drawMatches(img1, kp1, img2, kp2,
			sortedKMatches(CURRENT_GOOD_MATCHES,0,n), result);
	return result;
}
 
开发者ID:WriterOfAlicrow,项目名称:OpenCVTour,代码行数:13,代码来源:ImageDetector.java

示例3: drawFeatures

import org.opencv.features2d.Features2d; //导入依赖的package包/类
public void drawFeatures(Mat rgba){
	MatOfKeyPoint keyPoints = new MatOfKeyPoint();
	Imgproc.cvtColor(rgba, rgba, Imgproc.COLOR_RGBA2RGB);
	fDetector.detect(rgba, keyPoints);
	Features2d.drawKeypoints(rgba,keyPoints,rgba);
	Imgproc.cvtColor(rgba, rgba, Imgproc.COLOR_RGB2RGBA);
}
 
开发者ID:WriterOfAlicrow,项目名称:OpenCVTour,代码行数:8,代码来源:ImageDetector.java

示例4: withFAST

import org.opencv.features2d.Features2d; //导入依赖的package包/类
public Path withFAST(Mat currFrame, Mat mOutFrame, Path path) {
    MatOfKeyPoint currKeyPoints = new MatOfKeyPoint();
    float fPointX, fPointY;

    mFeatureDectector.detect(currFrame, currKeyPoints);

    Features2d.drawKeypoints(currFrame, currKeyPoints, mOutFrame, mKeyPointsColor, 0);

    if (mPrevFrame != null) {
        // now lets get out rigidTransformation for orientation vector
       try {
           Mat movement = estimateRigidTransform(mOutFrame, mPrevFrame, false);
            //Mat movement = findHomography(currPoints2f, prevPoints2f, Calib3d.LMEDS, 1.2f);
           if (!movement.empty()) {
               fPointX = (float) (movement.get(0, 2)[0]);
               fPointY = (float) (movement.get(1, 2)[0]);
               Log.i(TAG, "Adding to path (" + Float.toString(fPointX) + "," + Float.toString(fPointY) + ")");
               path.rLineTo(fPointX, fPointY);
           }
        } catch (CvException e) {
            Log.i(TAG, "Vectors are the same");
            //e.printStackTrace();
        }
    }
    mOutFrame.copyTo(mPrevFrame);

    return path;
}
 
开发者ID:Letme,项目名称:second_eyes,代码行数:29,代码来源:ExtractPath.java

示例5: detectFeatures

import org.opencv.features2d.Features2d; //导入依赖的package包/类
@NonNull
private Mat detectFeatures(Mat skeleton, Mat edges) {
    FeatureDetector star = FeatureDetector.create(FeatureDetector.ORB);
    DescriptorExtractor brief = DescriptorExtractor.create(DescriptorExtractor.ORB);

    MatOfKeyPoint keypoints = new MatOfKeyPoint();
    star.detect(skeleton, keypoints);
    keypointsField = keypoints;

    KeyPoint[] keypointArray = keypoints.toArray();
    ArrayList<KeyPoint> filteredKeypointArray = new ArrayList<>(keypointArray.length);

    int filterCount = 0;
    for (KeyPoint k : keypointArray) {
        if (edges.get((int)k.pt.y, (int)k.pt.x)[0] <= 0.0) {
            k.size /= 8;
            filteredKeypointArray.add(k);
        } else {
            filterCount++;
        }
    }
    Log.d(TAG, String.format("Filtered %s Keypoints", filterCount));

    keypoints.fromList(filteredKeypointArray);

    Mat descriptors = new Mat();
    brief.compute(skeleton, keypoints, descriptors);
    descriptorsField = descriptors;

    Mat results = new Mat();
    Scalar color = new Scalar(255, 0, 0); // RGB
    Features2d.drawKeypoints(skeleton, keypoints, results, color, Features2d.DRAW_RICH_KEYPOINTS);
    return results;
}
 
开发者ID:jorenham,项目名称:fingerblox,代码行数:35,代码来源:ImageProcessing.java

示例6: recognize

import org.opencv.features2d.Features2d; //导入依赖的package包/类
public Mat recognize(Mat aInputFrame) {

        Imgproc.cvtColor(aInputFrame, aInputFrame, Imgproc.COLOR_RGB2GRAY);
        descriptors2 = new Mat();
        keypoints2 = new MatOfKeyPoint();
        detector.detect(aInputFrame, keypoints2);
        descriptor.compute(aInputFrame, keypoints2, descriptors2);

        // Matching
        MatOfDMatch matches = new MatOfDMatch();
        if (img1.type() == aInputFrame.type()) {
            matcher.match(descriptors1, descriptors2, matches);
        } else {
            return aInputFrame;
        }
        List<DMatch> matchesList = matches.toList();

        Double max_dist = 0.0;
        Double min_dist = 100.0;

        for (int i = 0; i < matchesList.size(); i++) {
            Double dist = (double) matchesList.get(i).distance;
            if (dist < min_dist)
                min_dist = dist;
            if (dist > max_dist)
                max_dist = dist;
        }

        LinkedList<DMatch> good_matches = new LinkedList<DMatch>();
        for (int i = 0; i < matchesList.size(); i++) {
            if (matchesList.get(i).distance <= (1.5 * min_dist))
                good_matches.addLast(matchesList.get(i));
        }

        MatOfDMatch goodMatches = new MatOfDMatch();
        goodMatches.fromList(good_matches);
        Mat outputImg = new Mat();
        MatOfByte drawnMatches = new MatOfByte();
        if (aInputFrame.empty() || aInputFrame.cols() < 1 || aInputFrame.rows() < 1) {
            return aInputFrame;
        }
        Features2d.drawMatches(img1, keypoints1, aInputFrame, keypoints2, goodMatches, outputImg, GREEN, RED, drawnMatches, Features2d.NOT_DRAW_SINGLE_POINTS);
        Imgproc.resize(outputImg, outputImg, aInputFrame.size());

        return outputImg;
    }
 
开发者ID:akshika47,项目名称:OpencvAndroid,代码行数:47,代码来源:MainActivity.java


注:本文中的org.opencv.features2d.Features2d类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。