
Author(s): Sujay Kapadnis
Awalnya diterbitkan di Menuju AI.
Modul 1 — Representasi dan Klasifikasi Gambar
Bab 2— Penggantian Gambar Latar Belakang
Mulai dari sini? Artikel ini adalah bagian dari Seri Tutorial visi komputer. Di sinilah Anda bisa memulai.
Tujuan pembelajaran:
Membuat topeng untuk gambar Menghapus latar belakang gambar yang ada Mengganti latar belakang dengan gambar pilihan kita
Prasyarat: Tutorial Sebelumnya
Sumber: Perjalanan Tengah
Impor import matplotlib.pyplot sebagai plt
impor numpy sebagai np
impor cv2
2. Muat gambar dan cetak bentuk objek.
gambar = cv2.imread(‘gambar anda’)
background = cv2.imread(‘gambar background’)
print(‘Jenis:’, ketik(gambar),
‘ dimensi: ‘, image.shape)
3. Berfungsi untuk mengubah ruang warna
# Berfungsi untuk mengubah ruang warna dari BGR ke RGB
def BGR2RGB(BGR_image):
kembalikan cv2.cvtColor(BGR_image,cv2.COLOR_BGR2RGB)
gambar = BGR2RGB(gambar)
latar belakang = BGR2RGB(latar belakang)
4. Buat salinan dan tampilkan gambar
image_copy = np.copy(gambar)
plt.imshow(image_copy)
Keluaran
5. Nyatakan Batas Bagian dan buat topeng
# Langkah selanjutnya adalah mendeklarasikan batasan
rentang_rendah = np.array([0,230,0])
rentang_atas = np.array([100,255,100])
# Membuat topeng
bertopeng = cv2.inRange(mobil,lower_range,upper_range)
plt.imshow(bertopeng,cmap=’abu-abu’)
Keluaran
6. Menggunakan topeng pada salinan gambar asli
# menyimpan gambar asli dalam variabel baru
masked_image = np.copy(gambar)
# Langkah – 1: Wilayah di mana nilai mask bukan nol yaitu bukan hitam (mask != 0) menjadi hitam di gambar asli yang baru disimpan
masked_image[mask!=0] = [0,0,0]
plt.imshow(masked_image,cmap=’gray’)
7. Menggunakan topeng di latar belakang
# Pangkas gambar sehingga memiliki dimensi yang sama dengan gambar aslinya
cropped_bg = latar belakang[:image.shape[0],:gambar.bentuk[1]]
# # Sekarang mari kita ke latar belakang yang perlu kita ganti
# Langkah 2: Hapus wilayah mobil dari gambar latar belakang
terpotong_bg[mask==0] = [0,0,0]
plt.imshow(cropped_bg)
Keluaran
8. Hasil Akhir
Seperti yang dibahas dalam tutorial sebelumnya, gambar hanyalah array dan karenanya kita bisa mendapatkan gambar keluaran akhir hanya dengan menambahkan latar belakang yang dipotong dan gambar yang disamarkan, seperti teka-teki — menyatukan semuanya.
final = cropped_bg+masked_image
plt.imshow(final)
9. Fungsi Merencanakan
def Plotting(mask,masked_image,cropped_bg,output_image):
f,(ax1,ax2,ax3,ax4) = plt.subplots(1,4,figsize=(30,10))
ax1.set_title(‘Topeng’)
ax1.imshow(topeng)
ax2.set_title(‘Masked_image’)
ax2.imshow(gambar_bertopeng)
ax3.set_title(‘Latar Belakang Dipotong’)
ax3.imshow(cropped_bg)
ax4.set_title(‘Keluaran’)
ax4.imshow(output_image)
Merencanakan(gambar,bertopeng,cropped_bg,final)
Keluaran
10. Satukan semuanya
# Menggabungkan Semuanya dalam satu fungsi
def BG_replacement(gambar, latar belakang, rentang_bawah, rentang_atas):
# Langkah 1 – Membuat topeng
topeng = cv2.inRange(gambar,kisaran_bawah,kisaran_atas)
# Step2 – Menggunakan topeng pada salinan gambar asli
masked_image = np.copy(gambar)
masked_image[mask!=0] = [0,0,0]
# Step3 – Menggunakan topeng di latar belakang
cropped_bg = latar belakang[:image.shape[0],:gambar.bentuk[1]]
terpotong_bg[mask==0] = [0,0,0]
# Membuat gambar keluaran dengan menambahkan gambar yang diperoleh pada langkah2 dan langkah
output_image = masked_bulb + cropped_bg
# Plot Akhir
Merencanakan(mask,masked_image,cropped_bg,output_image)
Bungkus
Dengan ini, kami telah menyelesaikan tujuan pembelajaran kami untuk pelajaran ini.
Mendeklarasikan batas bagian cukup mudah untuk contoh ini karena latar belakangnya hijau, dan hijau dapat dengan mudah diwakili oleh (0,255,0) di saluran RGB, tetapi bagaimana jika latar belakangnya bukan salah satu warna R/G/B? Untuk itu, saya telah membahas satu lagi contoh bohlam dengan latar belakang berwarna pink. Untuk memahami cara melakukan prosedur yang sama pada warna pink, Anda bisa merujuk ke notebook ini.
Tautkan ke GitHub.
Mendatang:
Ini dia Representasi dan Klasifikasi Citra pada modul berikutnya yaitu Modul 2: Convolutional Filters dan edge yang akan kita pelajari:
Transformasi Fourier Apa itu filter, dan cara membuat satu kernel Gaussian Transformasi Fourier dan filter Canny Edge Detector Apa itu ruang besar dan banyak lagi
Demikian untuk artikel kali ini. Sampai jumpa di yang berikutnya
Sampai saat itu, Ikuti lebih banyak, dan jangan lupa untuk terhubung dengan saya di LinkedIn.❤❤❤
Seri Tutorial Computer Vision M1C2 awalnya diterbitkan di Towards AI on Medium, di mana orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI