Cara menggunakan Python untuk membaiki kecacatan pada gambar
Pengenalan:
Dalam kehidupan seharian, kita sering menghadapi beberapa gambar yang rosak, seperti bunyi bising, calar dan sebagainya dalam gambar. Ketidaksempurnaan ini boleh menjejaskan estetika imej dan, untuk beberapa situasi yang memerlukan pemprosesan yang tepat, boleh menghalang kita daripada mendapatkan maklumat yang betul. Menggunakan Python untuk membaiki kecacatan dalam imej ialah kaedah yang berkesan Artikel ini akan memperkenalkan cara menggunakan Python untuk membaiki kecacatan dalam imej, dan melampirkan contoh kod yang berkaitan.
Langkah 1: Import perpustakaan yang diperlukan
Pertama, kita perlu mengimport perpustakaan yang diperlukan, termasuk yang berikut:
import cv2
import numpy sebagai np
import matplotlib.pyplot sebagai plt
Antaranya Open, CVv2 perpustakaan, Untuk pemprosesan imej, numpy ialah perpustakaan untuk memproses tatasusunan matplotlib.pyplot digunakan untuk paparan imej.
Langkah 2: Baca imej
Seterusnya, kita perlu membaca imej yang perlu dibaiki. Gunakan fungsi imread() dalam pustaka cv2 untuk membaca dan menyimpan imej sebagai tatasusunan numpy.
img = cv2.imread('image.jpg')
Langkah 3: Praproses imej
Sebelum membaiki kecacatan, kita perlu melakukan beberapa prapemprosesan pada imej. Langkah prapemprosesan biasa termasuk pengurangan hingar dan pengekstrakan tepi.
Pengurangan hingar boleh dilakukan menggunakan fungsi GaussianBlur() dalam perpustakaan cv2. Kod sampel adalah seperti berikut:
img_blur = cv2.GaussianBlur(img, (5, 5), 0)
Mengekstrak tepi boleh dilakukan menggunakan fungsi Canny() dalam perpustakaan cv2. Kod sampel adalah seperti berikut:
edges = cv2.Canny(img, threshold1, threshold2)
Langkah 4: Tentukan kawasan yang rosak
Mengikut keputusan prapemprosesan, kita boleh menentukan kawasan yang rosak melalui beberapa kaedah. Kaedah biasa termasuk pembahagian ambang dan pengesanan kontur.
Segmentasi ambang boleh dilakukan menggunakan fungsi threshold() dalam perpustakaan cv2. Kod sampel adalah seperti berikut:
ret, img_thresh = cv2.threshold(img_gray, threshold, maxValue, cv2.THRESH_BINARY)
Pengesanan kontur boleh dilakukan menggunakan fungsi findContours() dalam pustaka cv2. Kod sampel adalah seperti berikut:
kontur, hierarki = cv2.findContours(tepi, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
Langkah 5: Pembaikan kecacatan
Dengan beberapa maklumat kawasan yang rosak ini, kami boleh membaiki kawasan yang rosak ini algoritma . Algoritma biasa termasuk penapisan min dan penapisan median.
Mean penapisan boleh dilakukan menggunakan fungsi blur() dalam perpustakaan cv2. Kod sampel adalah seperti berikut:
img_repair = cv2.blur(img, (5, 5))
Penapisan median boleh dilakukan menggunakan fungsi medianBlur() dalam pustaka cv2. Kod sampel adalah seperti berikut:
img_repair = cv2.medianBlur(img, 5)
Langkah 6: Paparkan hasil pembaikan
Akhir sekali, kita boleh menggunakan fungsi imshow() dalam perpustakaan matplotlib.pyplot untuk memaparkan yang telah dibaiki imej. Kod sampel adalah seperti berikut:
plt.imshow(img_repair[:,:,::-1])
plt.axis("off")
plt.show()
Versi penuh kod sampel:
import cv2
import numpy sebagai np
import matplotlib.pyplot sebagai plt
img = cv2.imread('image.jpg')
=Blur_blur 5, 5), 0)
img_gray = cv2.cvtColor(img_blur, cv2.COLOR_BGR2GRAY)
tepi = cv2.Canny(img_gray, 100, 200)
plt.axis ("off")
plt.show()
Artikel ini memperkenalkan langkah-langkah menggunakan Python untuk membaiki kecacatan pada imej dan melampirkan contoh kod yang berkaitan. Dengan menggunakan kaedah ini, kami boleh membaiki bunyi bising, calar dan kecacatan lain pada gambar dengan berkesan dan memulihkan gambar kepada kesan visual biasa. Dalam aplikasi praktikal, kaedah prapemprosesan yang sesuai dan algoritma pembaikan boleh dipilih berdasarkan keperluan khusus dan ciri imej, dan diselaraskan dan dioptimumkan berdasarkan kesan sebenar. Saya harap artikel ini dapat memberi anda sedikit bantuan apabila berurusan dengan imej yang rosak.
Atas ialah kandungan terperinci Cara menggunakan Python untuk membaiki kecacatan dalam gambar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!