Pracuję nad projektem, w którym w jednym punkcie muszę porównać dwa obrazy.może ktoś mi pomóc z metodą, aby to zrobić..Tak sposób obrazy są zrzuty ekranu oprogramowanie. chciałem sprawdzić, czy oba obrazy są identyczne, w tym cyfry i litery wyświetlane na obrazku (zrzut ekranu oprogramowania) ..kod Pythona, aby porównać obrazy w python
Odpowiedz
Są następujące sposoby na prawidłowe porównanie.
- Pierwszy to Root Mean-Square Różnica #
Aby uzyskać miarę jak podobne są dwa zdjęcia, można obliczyć średniego pierwiastka kwadratowego (RMS) Wartość różnica między obrazami. Jeśli obrazy są dokładnie takie same, ta wartość wynosi zero. Następująca funkcja wykorzystuje funkcję różnicy, a następnie oblicza wartość RMS z histogramu uzyskanego obrazu.
# Example: File: imagediff.py
import ImageChops
import math, operator
def rmsdiff(im1, im2):
"Calculate the root-mean-square difference between two images"
h = ImageChops.difference(im1, im2).histogram()
# calculate rms
return math.sqrt(reduce(operator.add,
map(lambda h, i: h*(i**2), h, range(256))
)/(float(im1.size[0]) * im1.size[1]))
- Innym jest Dokładne porównanie #
Najszybszym sposobem, aby ustalić, czy dwa obrazy mają dokładnie te same treści jest, aby uzyskać różnicę między dwoma obrazami, a następnie obliczyć obwiedni w polu niezerowych regionów na tym obrazie. Jeśli obrazy są identyczne, wszystkie piksele na obrazie różnicy są zerowe, a funkcja obwiedni zwraca Brak.
import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
Nie mogę podać gotowej odpowiedzi, ale wskażę ci (I pomyślcie) właściwy kierunek. Prostym sposobem porównywania dwóch obrazów jest utworzenie skrótu ich binarnych reprezentacji, a następnie sprawdzenie, czy te skróty są takie same. Jednym z problemów jest funkcja hash, której chcesz użyć i musisz szukać takiej, która ma niskie szanse na kolizje, a druga jest taka, że plik obrazu prawdopodobnie zawiera metadane dołączone do oryginalnych informacji binarnych, więc będziesz musiał sprawdzić jak odciąć te metadane, aby porównać obrazy tylko z ich binarnymi informacjami. Ponadto, nie wiem na pewno, ale prawdopodobnie binarna reprezentacja obrazu zakodowanego w jpg różni się od obrazu zakodowanego w png, więc powinieneś być tego świadomy.
jestem utrzymanie biblioteki Pythona o nazwie pyssim, który wykorzystuje metodę Structured Similarity (SSIM) porównać dwa obrazy.
Nie ma powiązań z pythona, ale program perceptualdiff jest również świetny przy porównywaniu dwóch obrazów - i dość szybko.
, czy pyssim to rodzaj rozmytego porównania? co jeśli na obrazku były pola tekstu, pozycje pól są takie same dla innego obrazu, ale tekst jest nieco inny? Jaki wynik by powrócił? czy bierze pod uwagę tylko struktury? – user299709
Jeśli tekst jest inny, będzie miał niższy wynik. – jterrace
- 1. Jak porównać dwa obrazy za pomocą Node.js
- 2. Kod debugowania w interprerze Pythona
- 3. Jak porównać obrazy podobieństwa za pomocą java
- 4. Otwarte obrazy? Python
- 5. Jak porównać funkcje Pythona pod względem wydajności?
- 6. Wbudowany kod Pythona w C++ - błąd podczas importowania bibliotek Pythona
- 7. Skrót, aby porównać, jeśli instrukcje
- 8. Jak osadzić kod Pythona w skrypcie
- 9. kod Pythona 2: jeśli python 3 to sys.exit()
- 10. Python: Wyłącz obrazy w Selenium Google ChromeDriver
- 11. Krótki kod Pythona, aby powiedzieć "Wybierz niższą wartość"?
- 12. Najbezpieczniejszy kod Pythona działający
- 13. Automatycznie wygenerowany kod w języku Python na podstawie diagramu UML?
- 14. Jak mogę porównać typ Unicode z ciągiem w python?
- 15. Jak Python 2.7 porównać przedmioty wewnątrz listy
- 16. kod Pythona do odczytu rejestru
- 17. Python: elegancki sposób, aby usunąć pustych list ze słownika Pythona
- 18. Kod źródłowy Pythona dla wbudowanego operatora "in"
- 19. Python porównać datetimes z różnymi strefami czasowymi
- 20. Scala forall, aby porównać dwie listy?
- 21. Jak profilować kombinowany python i kod c
- 22. Jak sprawdzić kod bajtowy Pythona?
- 23. jak zrobić ten kod Pythona mniej brzydki
- 24. Jak porównać Python i PHP dla e-commerce?
- 25. notepad ++ uruchom wybrany kod w konsoli Pythona bezproblemowo
- 26. Odejmij dwa obrazy, aby opuścić wynik - PHP
- 27. Czy mogę porównać kod IL, aby określić, która technika jest szybsza lub lepsza?
- 28. W jaki sposób kompilujesz kod Pythona 3.5 za pomocą Mingw?
- 29. kod Python jak curl
- 30. W jaki sposób DropBox chroni swój kod Pythona?
Co masz na myśli, mówiąc: porównaj? Czy chcesz sprawdzić, czy są identyczne? Szukasz informacji na temat tego, jak to zrobić w Pythonie lub jak porównać obrazy? –
tak chciałem porównać, czy są identyczne, w tym numery/litery wyświetlane w oprogramowaniu – stallion