Seri Tutorial Computer Vision M1C2 – Menuju AI

Seri Tutorial Computer Vision M1C2 – Menuju AI

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

Author: Jeffrey Hayes