Heim > Artikel > Backend-Entwicklung > Erkennung verschwommener Bilder in Laravel
Artikel berasal dari https://medium.com/@hafiqiqmal93/blurry-image-detection-in-laravel-4c91168e00f1
Aspek penting dalam pengalaman pengguna, menyimpan imej kabur dengan ketara menjejaskan kualiti tapak web atau aplikasi. Artikel ini membincangkan cara anda boleh mengesan dan mengurus imej kabur menggunakan Laravel dengan bantuan Python dan OpenCV, memastikan media aplikasi kekal tajam dan menarik.
Imej kabur bukan sekadar gangguan visual; mereka boleh menjejaskan profesionalisme tapak web atau apl anda. Dalam e-dagang, penyenaraian hartanah, galeri dalam talian atau mana-mana platform yang kualiti imej adalah diutamakan, memastikan kejelasan adalah penting. Cabarannya terletak pada mengesan kekaburan secara atur cara.
Laravel boleh dipasangkan dengan Python untuk mencipta penyelesaian yang berkesan untuk masalah ini. Dengan memanfaatkan pengesahan fail Laravel bersama skrip Python yang menggunakan OpenCV, pembangun boleh menyepadukan pengesanan kabur dengan lancar ke dalam proses muat naik fail mereka.
Pengesanan imej kabur melibatkan analisis ketajaman imej. Ini biasanya dilakukan menggunakan operator Laplacian, alat matematik yang digunakan dalam pemprosesan imej. Pengendali Laplacian mengukur kadar perubahan intensiti piksel dan varians yang lebih rendah bagi Laplacian menunjukkan imej yang lebih kabur.
Dalam Laravel, kami boleh membuat peraturan pengesahan tersuai untuk menyemak kekaburan imej. Peraturan ini melaksanakan skrip Python yang menggunakan operator Laplacian untuk menentukan ketajaman imej. Mari pecahkan prosesnya:
Pasang PIP (Ubuntu) :
sudo apt install python3-pip
Pasang OpenCV menggunakan PIP
pip3 install opencv-python
Anda mungkin ingin mempertimbangkan untuk memasang di bawah **www-data** pengguna jika aplikasi anda berjalan di bawah **www-data**. Jika Ya, ikut arahan di bawah untuk memasang
<p>sudo mkdir /var/www/.local<br> sudo mkdir /var/www/.cache<br> sudo chown www-data.www-data /var/www/.local<br> sudo chown www-data.www-data /var/www/.cache<br> sudo -H -u www-data pip3 install opencv-python</p>
<p>import sys<br> import cv2</p> <p>def get_image_laplacian_value(image_path):<br> image = cv2.imread(image_path)<br> gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)<br> return cv2.Laplacian(gray_image, cv2.CV_64F).var()</p> <p>if <strong>name</strong> == "<strong>main</strong>":<br> if len(sys.argv) != 2:<br> sys.exit(1)<br> image_path = sys.argv[1]<br> laplacian_value = get_image_laplacian_value(image_path)<br> print(laplacian_value)</p>
<p>class ImageBlurDetectionRule implements ValidationRule<br> {<br> public function validate(string $attribute, mixed $value, Closure $fail): void<br> {<br> if ( ! $value instanceof UploadedFile) {<br> return;<br> }<br> // ignore if not image<br> if ('' !== $value->getPath() && ! in_array($value->guessExtension(), ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg', 'webp'])) {<br> return;<br> }<br> // get real path for the file<br> $path = $value->getRealPath();<br> $command = escapeshellcmd(config('image.python_path') . " blur_detection.py '{$path}'");<br> $result = Process::path(base_path('scripts'))->run($command);<br> if ( ! $result->successful()) {<br> return;<br> }<br> if (trim($result->output()) < 100) {<br> $fail(__('Blur image are not accepted. Please make sure your :attribute image is clearly visible.'));<br> }<br> }<br> }</p>
Penyepaduan Laravel dengan skrip Python untuk pengesanan kabur berfungsi dengan lancar, menawarkan pendekatan yang canggih namun mudah untuk memastikan kualiti imej. Begini cara proses itu berlaku:
Apabila pengguna memuat naik imej ke aplikasi Laravel, peraturan pengesahan tersuai (ImageBlurDetectionRule) akan dicetuskan.
Peraturan ini terlebih dahulu menyemak sama ada fail yang dimuat naik sememangnya imej dengan mengesahkan sambungannya. Jika fail itu bukan imej, prosesnya berhenti di sini.
Jika fail ialah imej, peraturan itu kemudian memanggil skrip Python, blur_detection.py. Laluan imej dihantar ke skrip ini sebagai hujah baris perintah.
Skrip mengira varians Laplacian, yang berfungsi sebagai ukuran ketajaman imej. Varians yang lebih rendah menunjukkan imej yang lebih kabur.
Jika imej terlalu kabur (cth: varians Laplacian berada di bawah ambang), peraturan pengesahan gagal dan pengguna menerima mesej yang menunjukkan bahawa imej itu kabur dan harus diperiksa.
Dengan menghalang muat naik imej kabur berkualiti rendah, penyelesaian ini meningkatkan keseluruhan pengalaman pengguna. Pengguna digesa untuk hanya memuat naik imej yang jelas dan berkualiti tinggi, yang mengekalkan standard visual aplikasi.
Dieser Prozess ist in hohem Maße anpassbar. Entwickler können den Schwellenwert für Unschärfe entsprechend den spezifischen Anforderungen ihrer Anwendung anpassen. Beachten Sie, dass der Schwellenwert auf Ihrer Beobachtung basiert. Für die Vorabnutzung ist möglicherweise ML erforderlich, um den Schwellenwert zu bestimmen. Darüber hinaus ermöglicht die Integration von Python in Laravel eine weitere Erweiterung um fortschrittlichere Bildverarbeitungstechniken und bietet eine flexible und robuste Lösung für die Verwaltung der Bildqualität.
Die Integration dieser Funktionalität in Ihre Laravel-Anwendung verbessert das Benutzererlebnis, indem das Hochladen von Bildern mit geringer Qualität verhindert wird. Dies ist besonders nützlich in Szenarien, in denen die Bildklarheit von entscheidender Bedeutung ist, wie z. B. Online-Portfolios, Produktkataloge oder Benutzerprofilbilder.
Der Schwellenwert für Unschärfe kann je nach Bedarf angepasst werden. Darüber hinaus bietet die Integration von Python in Laravel die Flexibilität, bei Bedarf fortschrittlichere Bildverarbeitungstechniken zu integrieren.
Die Kombination von Laravel und Python zur Erkennung verschwommener Bilder ist eine leistungsstarke Lösung. Es stellt nicht nur die visuelle Qualität Ihrer Anwendung sicher, sondern verbessert auch das gesamte Benutzererlebnis. Mit diesem Ansatz können Entwickler hohe Standards für Medieninhalte aufrechterhalten und so zu einer ausgefeilteren und professionelleren Online-Präsenz beitragen.
Haben Sie versucht, diese Lösung in Ihrem Laravel-Projekt zu implementieren? Teilen Sie Ihre Erfahrungen und Erkenntnisse, die Sie gewonnen haben, in den Kommentaren unten. Lassen Sie uns gemeinsam die Standards der Webentwicklung weiter erhöhen!
Das obige ist der detaillierte Inhalt vonErkennung verschwommener Bilder in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!