Ich habe versucht, den besten Weg zu finden, die 4 schwarzen Quadrate auf dem Papier zu erkennen und sie zu verwenden, um das Papier in seinem eigenen Bild zu isolieren.Wie kann ich mit OpenCV Registrierungsmarkierungen auf Papier erkennen?
6
A
Antwort
6
Es scheint, dass auf dem Bild gibt es nur vier schwarze Quadrate so, was Sie tun müssen, ist:
- Convert Bild zu Grau
- Do Schwelle
- schwarzen Konturen finden (Bevor Sie dies in OpenCV tun, müssen Sie Ihr Bild invertieren, da OpenCV standardmäßig weiße Konturen findet)
- Durch diese Konturen hindurchgehen und gefundene Grenzen finden g Rechteck.
Sie das Kontroll:
A) Rechtecks des Bereich ist größer, dass eine Konstante (in meiner Lösung war es)
B) Rechteck der Breite/Höhe in der Nähe von 1,0 ist (in meiner soultion war es [0,9, 1,1] Bereich)
Der Code:
Mat img = imread("test.jpg"), gray;
vector<Vec4i> hierarchy;
vector<vector<Point2i> > contours;
cvtColor(img, gray, CV_BGR2GRAY);
threshold(gray, gray, 100, 255, THRESH_BINARY);
bitwise_not(gray, gray);
findContours(gray, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
for(size_t i=0; i<contours.size(); i++)
{
Rect rect = boundingRect(contours[i]);
double k = (rect.height+0.0)/rect.width;
if (0.9<k && k<1.1 && rect.area()>100)
{
drawContours(img, contours, i, Scalar(0,0,255));
}
}
imshow("result", img);
waitKey();
Ergebnis
:
Lesen Sie auch this SO discussion - Sie brauchen nicht, dass 4 Quadrate Papier zu erkennen.
Verwandte Themen
- 1. OpenCV Mit Kleidung Tasten auf einem Stück Papier erkennen
- 2. Erkennen Mund mit OpenCV
- 3. Erkennen eines Musters mit OpenCV
- 4. OpenCV Mit Parkplatz erkennen spots
- 5. Wie kann ich Verbindungsunterbrechungen auf socket.io erkennen?
- 6. OpenCV erkennen Quadrat mit schwierigem Hintergrund
- 7. Erkennen von Blobs im Bild mit OpenCV
- 8. Erkennen von Gesichtern im Hochformat mit OpenCV
- 9. OpenCV erkennen abgedunkeltes Rechteck
- 10. Problem Erkennen von Ball mit opencv
- 11. Python openCV erkennen parallele Linien
- 12. OpenCV: Katze mit bestimmter Farbe erkennen. Trivial?
- 13. Überlappende Kreise in OpenCV erkennen
- 14. Frame-Drop in OpenCV erkennen
- 15. OpenCV zu erkennen Bild mit Python
- 16. Opencv erkennen Viereck in Python
- 17. OpenCV nicht erkennen Mat Größe
- 18. Ich habe Schwierigkeiten, bestimmte Farben mit openCV zu erkennen
- 19. wie Mitte eines unscharfen Kreises zu erkennen mit opencv
- 20. Erkennen Sternform in opencv-Python
- 21. Wie kann ich noCancelOnOutsideClick von Papier-Toast ändern?
- 22. opencv: Der beste Weg zu erkennen Ecken auf Schachbrett
- 23. Papier-Listbox mit Strings?
- 24. Erkennen von offenen und geschlossenen Formen opencv
- 25. Wie kann ich einen LocalConnection-Verbindungsnamen erkennen?
- 26. Wie kann ich einen Doppelklick auf UITabBarItem erkennen?
- 27. Wie kann ich die dpi auf einem ipad mini erkennen?
- 28. Erkennen einer Dose oder Flasche in opencv
- 29. OpenCV erkennen Gesichtspunkte (Ohr-Kinn-Ohr-Linie)
- 30. Wie kann ich ein globales Ziehereignis erkennen?
Willkommen bei StackOverflow. Was hast du bisher versucht, das funktioniert nicht für dich? Haben Sie [diese Frage] (http://stackoverflow.com/q/11424002/62576) angeschaut, um zu sehen, ob es hilft? Bitte zeigen Sie etwas Mühe, um dies selbst zu lösen (außer ein Bild zu posten), und jemand hier kann wahrscheinlich helfen. –