相关疑难解决方法(0)

使用FAST检测更快地进行SURF描述?

对于我的硕士论文,我正在对SIFT SURF en FAST算法进行一些测试,以便在智能手机上进行徽标检测.

当我只是检测时间,描述匹配某些方法时,我得到以下结果.

对于SURF检测器和SURF描述符:

找到180个关键点

  • 1,994秒关键点计算时间(SURF)

  • 4,516秒描述时间(SURF)

  • 0.282秒匹配时间(SURF)

当我使用FAST探测器代替SURF探测器时

找到319个关键点

  • 0.023秒关键点计算时间(FAST)

  • 1.295秒描述时间(SURF)

  • 0.397秒匹配时间(SURF)

FAST探测器比SURF探测器快得多,甚至可以检测到几乎两倍的关键点快100倍.这些结果是可以预测的.

但下一步不是预测结果.对于319个FAST关键点然后使用180个SURF关键点,de SURF描述符的速度有多快?

据我所知,描述与检测算法无关......但这些结果并不像预测的那样.

有谁知道这是可能的吗?

这是代码:

    FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
    //FeatureDetector detector = FeatureDetector.create(FeatureDetector.FAST);
    Imgproc.cvtColor(image1, image1, Imgproc.COLOR_RGBA2RGB);
    Imgproc.cvtColor(image2, image2, Imgproc.COLOR_RGBA2RGB);

    DescriptorExtractor SurfExtractor = DescriptorExtractor
    .create(DescriptorExtractor.SURF);


    //extract keypoints
    long time= System.currentTimeMillis();
    detector.detect(image1, keypoints);
    Log.d("LOG!", "number of query Keypoints= " + keypoints.size());
    detector.detect(image2, logoKeypoints);
    Log.d("LOG!", "number of logo Keypoints= " + logoKeypoints.size());
    Log.d("LOG!", "keypoint calculation time elapsed" + (System.currentTimeMillis() -time));

    //Descript keypoints
    long time2 = System.currentTimeMillis();
    Mat …
Run Code Online (Sandbox Code Playgroud)

android opencv surf sift

7
推荐指数
1
解决办法
5048
查看次数

OpenCV Android:如何在比较图像上绘制匹配的关键点?

目前我正在使用OpenCV来比较两个图像,看看它们在Android中是否相似.我正在使用ORB特征检测器和描述符提取器.这是我到目前为止所拥有的.我找到第一张图像中的所有特征关键点,然后找到第二张图像中的所有特征关键点.然后我找到这些关键点的描述符,然后在两个图像之间进行匹配.

private void matchImages() {
    Mat refMat = new Mat();
    Mat srcMat = new Mat();

    Bitmap refBitmap = ((BitmapDrawable) mRefImg.getDrawable()).getBitmap();
    Bitmap srcBitmap = ((BitmapDrawable) mSrcImg.getDrawable()).getBitmap();

    Utils.bitmapToMat(refBitmap, refMat);
    Utils.bitmapToMat(srcBitmap, srcMat);

    MatOfDMatch matches = new MatOfDMatch();
    MatOfDMatch goodMatches = new MatOfDMatch();

    LinkedList<DMatch> listOfGoodMatches = new LinkedList<>();

    LinkedList<Point> refObjectList = new LinkedList<>();
    LinkedList<Point> srcObjectList = new LinkedList<>();

    MatOfKeyPoint refKeypoints = new MatOfKeyPoint();
    MatOfKeyPoint srcKeyPoints = new MatOfKeyPoint();

    Mat refDescriptors = new Mat();
    Mat srcDescriptors = new Mat();

    MatOfPoint2f reference = new MatOfPoint2f();
    MatOfPoint2f …
Run Code Online (Sandbox Code Playgroud)

java android opencv

6
推荐指数
1
解决办法
1927
查看次数

Android比较imageView和image

我想将当前 imageView 与 R.drawable 中的图像进行比较。我想我已经尝试了一切,但我无法解决这个问题。我尝试了堆栈溢出的所有方法。

XML:

<ImageView
        android:layout_width="match_parent"
        android:src="@drawable/red"
        android:id="@+id/imageview1"
        android:clickable="true"
        android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

安卓:

final ImageView test = (ImageView) findViewById(R.id.imageview1);

test.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
          //if(test.getResources().equals(R.drawable.red))
          //if(test.getDrawable().equals(R.drawable.red))
          if(test.getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.red).getConstantState()))
          {
               Toast.makeText(getApplicationContext(), "work", Toast.LENGTH_SHORT).show();
          }
          else
          {
               Toast.makeText(getApplicationContext(), "not work", Toast.LENGTH_SHORT).show();
          }
     }
});
Run Code Online (Sandbox Code Playgroud)

android drawable imageview

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×3

opencv ×2

drawable ×1

imageview ×1

java ×1

sift ×1

surf ×1