JavaRush /Blog Java /Random-PL /Znalezienie środka figury nieregularnej na płaszczyźnie
fatfaggy
Poziom 26
Киев

Znalezienie środka figury nieregularnej na płaszczyźnie

Opublikowano w grupie Random-PL
Cześć wszystkim. Rozwiązuję teraz prosty problem. Warunek brzmi mniej więcej tak:
Dana macierz (tablica dwuwymiarowa), w której każdy element reprezentuje piksel. Piksele mogą być czerwone, czarne lub innego koloru. Konieczne jest wdrożenie wyszukiwania efektu czerwonych oczu na obrazie. Jeśli środek czarnych pikseli pokrywa się ze środkiem czerwonych pikseli, oznacza to czerwone oko.
Zakłada się, że granice zakresu czerwonych pikseli są szersze niż granice zakresu czarnych pikseli. Ponadto opcje nie są brane pod uwagę, jeśli obraz zawiera czerwone i czarne piksele poza „okiem”. Wszystko poza „okiem” będzie miało inny kolor. Planowałem go zaimplementować przy użyciu (w przybliżeniu) tego algorytmu. Dwie pętle, jedna zagnieżdżona w drugiej. Jeden przechodzi przez X, drugi przez Y. Gdy tylko znajdziemy czerwony piksel, ustalamy jego współrzędne jako początkowe i szukamy współrzędnych końcowych. Gdy tylko okaże się, że czerwone piksele już się nie pojawiają, ostatni czerwony piksel, który napotkaliśmy, ustalamy jako końcowe współrzędne zakresu czerwonych pikseli. To samo z czarnymi pikselami. Następnie dzielimy zakresy na pół i znajdujemy środki. Taki algorytm całkiem dobrze sprawdzi się w przypadku figur o mniej lub bardziej regularnym kształcie (koło). I tutaj postanowiłem skomplikować swoje zadanie)) Mianowicie zrozumieć, jak ulepszyć algorytm dla nieregularnych kształtów. Na przykład, jeśli dana osoba ma problemy ze wzrokiem (przez co kształt oka może być nieprawidłowy), zdjęcie zostało zrobione pod kątem, lub w innej sytuacji... Szybkie wyszukiwanie doprowadziło mnie do artykułów w Wikipedii na temat środek masy i środek ciężkości. Ale jest tam tyle przerażającego i okropnego języka, że ​​zdecydowałem się na razie odłożyć go na bok i zapytać społeczność, jak byście to zaimplementowali? :)
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION