Próbuję znaleźć najlepszy sposób, aby wykryć 4 czarne kwadraty na papierze i użyć ich do wyizolowania papieru na jego własny obraz.Jak wykrywać znaczniki rejestracji na papierze za pomocą OpenCV?
6
A
Odpowiedz
6
Wydaje się, że na obrazie są tylko 4 czarne kwadraty tak, co trzeba zrobić, to:
- Konwersja obrazu do szarości progowych
- Do
- Znajdź czarne kontury (przed zrobieniem tego w OpenCV musisz odwrócić swój obraz, ponieważ domyślnie OpenCV znajduje białe kontury)
- Przechodzi przez te kontury i znajduje granicę g prostokąt.
Czy czek:
A) obszar prostokąta jest większy, że część stała (w moim rozwiązanie było)
B) prostokąta szerokość/wysokość wynosi blisko 1,0 (w moim soultion to było [0,9, 1,1] zakres)
Kod:
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();
Wynik:
przeczytać również this SO discussion - nie trzeba, że 4 kwadraty wykryć papier.
Powiązane problemy
- 1. Jak wykrywać krawędź warg za pomocą Opencv w systemie iOS?
- 2. Drukowanie faktury na wstępnie sformatowanym papierze za pomocą CSS
- 3. Jak wykrywać modyfikacje plików za pomocą TFS?
- 4. Jak wykrywać orientację urządzenia za pomocą JavaScript?
- 5. Multiple wykrywania obiektów kolor za pomocą OpenCV
- 6. Śledzenie za pomocą androida za pomocą opencv
- 7. ANDROID - wykrywanie koloru za pomocą openCV - jak?
- 8. Jak zmienić wartości nasycenia za pomocą opencv?
- 9. Cite/Reference OpenMP w papierze
- 10. Jak zalogować się automatycznie za pomocą urządzenia po rejestracji?
- 11. Jak wykrywać pozycję przewijania strony za pomocą jQuery
- 12. Jak wykrywać zdarzenie click click w przeglądarce za pomocą kątowego?
- 13. Jak wykrywać cykliczny gest za pomocą Gesture Recognizer?
- 14. Jak wykrywać dotknięcie i podwójne dotknięcie jednocześnie za pomocą UITapGestureRecognizer?
- 15. Jak wykrywać wiele beaconów za pomocą biblioteki Android Altbeacon?
- 16. Wykrywanie określonego kształtu za pomocą OpenCV
- 17. Jak przenieść znaczniki do zdalnego repozytorium git za pomocą PHPStorm?
- 18. Jak ukryć znaczniki Google Api Marker za pomocą jQuery
- 19. twarzy Punkty fabularne wykrycie za pomocą OpenCV
- 20. Jak uzyskać znaczniki wewnątrz obszaru wybranego za pomocą przeciągnięcia myszą?
- 21. Jak ukryć/pokazać znaczniki div za pomocą JavaScript?
- 22. Tworzenie prostokąt w blob za pomocą OpenCV
- 23. Jak złożyć/rozwinąć znaczniki HTML za pomocą Vima
- 24. Konfigurowanie projektu Cinder za pomocą bloku OpenCV
- 25. Obracanie punktu wokół punktu za pomocą OpenCV
- 26. Przesunięcie zawartości obrazu za pomocą OpenCV
- 27. Wykrywanie linii poziomej za pomocą OpenCV
- 28. Śledzenie OpenCV za pomocą przepływu optycznego
- 29. Przechodzenie przez kod C++ na papierze, jak by to zrobić?
- 30. Usuwanie hałaśliwych pikseli za pomocą opencv
Witamy w StackOverflow. Czego próbowaliście dotychczas, to nie działa? Czy spojrzałeś na to pytanie (http://stackoverflow.com/q/11424002/62576), aby sprawdzić, czy to pomaga? Proszę pokazać trochę wysiłku, aby rozwiązać to samodzielnie (inne niż publikowanie obrazu), a ktoś tutaj może prawdopodobnie pomóc. –