Ich versuche, eine Android-App zu entwickeln, die die Bilder von der Kamera analysieren und Ecken erkennen sollte.Android OpenCV FAST Ecke Erkennung Filterung
Mein Ziel ist es, den aktuellen Schachbrettzustand zu erkennen und Daten an einen Server zu liefern.
Ich habe OpenCV in meiner App implementiert und ich versuche FAST Eckenerkennung zu verwenden.
Dies ist der Teil meines Codes, wo ich die aktuelle Kamerarahmen analysieren:
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
MatOfKeyPoint points = new MatOfKeyPoint();
try {
Mat mat = inputFrame.rgba();
FeatureDetector fast = FeatureDetector.create(FeatureDetector.FAST);
fast.detect(mat, points);
Scalar redcolor = new Scalar(255, 0, 0);
Mat mRgba = mat.clone();
Imgproc.cvtColor(mat, mRgba, Imgproc.COLOR_RGBA2RGB, 4);
Features2d.drawKeypoints(mRgba, points, mRgba, redcolor, 1);
mat.release();
return mRgba;
}
catch (Exception e)
{
return inputFrame.rgba();
}
}
Dieser Code funktioniert. Das Problem ist, dass ich zu viele Ecken bekomme. Ich würde gerne wissen, wie man einen Schwellenwert implementiert.
In diesem Doc spricht es über eine "nonmaxsuppression".
Wenn jemand keine Antwort weiß aber weiß, wo Android aktualisierte Dokumentation zu finden ist, wird es großartig!
Danke!
Sie könnten einfach irgendwie alle keypoints je nach [Antwort] (http://docs.opencv.org/trunk/d2/ d29/classcv_1_1KeyPoint.html # a1f163ac418c281042e28895b20514360) –
Kannst du mir Code zeigen? Ich kann nicht herausfinden, wie man diesen "Antwort" -Parameter bekommt –
Nur eine Antwort hinzugefügt –