Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan Python untuk membaiki kecacatan dalam gambar

Cara menggunakan Python untuk membaiki kecacatan dalam gambar

王林
Lepaskan: 2023-08-26 08:19:54
asal
1718 orang telah melayarinya

Cara menggunakan Python untuk membaiki kecacatan dalam gambar

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

Baca imej

img = cv2.imread('image.jpg')

Preprocess the image

=Blur_blur 5, 5), 0)
img_gray = cv2.cvtColor(img_blur, cv2.COLOR_BGR2GRAY)
tepi = cv2.Canny(img_gray, 100, 200)

(Tentukan kawasan yang rosak

ges , cv2.RETR_LIST, cv 2 .CHAIN_APPROX_SIMPLE)

Pembaikan kecacatan

img_repair = cv2.blur(img, (5, 5))

Tunjukkan hasil pembaikan

[img_,imairshow:-: 1])

plt.axis ("off")
plt.show()

Kesimpulan:

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan