Bagaimana cara mengonversi gambar menjadi biner dengan python?

Pada artikel ini, kami akan membahas dua ruang warna yang tersedia di pustaka OpenCV, ruang warna skala abu-abu dan ruang warna biner. Saat kami mengacu pada konversi ruang warna, yang kami maksud adalah merepresentasikan warna dari satu basis ke basis lainnya dan mengonversi gambar dari satu ruang warna ke ruang warna lainnya. Penting untuk mempertahankan sebanyak mungkin kesamaan dengan ruang warna sebelumnya agar gambar yang diterjemahkan terlihat semirip mungkin dengan gambar asli. Ada banyak fungsi yang tersedia di pustaka OpenCV untuk tujuan ini

Mengapa kita membutuhkan konversi ruang warna dalam pemrosesan gambar?

Ruang warna adalah representasi dari saluran warna gambar yang memberikan gambar rona tertentu. Secara default, gambar dibaca dalam OpenCV sebagai mode BGR dan ruang warnanya adalah RGB

Ada tiga kasus penggunaan untuk ruang warna dan konversi ke ruang warna berbeda dalam visualisasi data
1. Penggunaan warna untuk membedakan data
2. Penggunaan warna untuk representasi nilai data
3. Menggunakan warna untuk menyorot informasi

Gambar skala abu-abu di OpenCV

Skala abu-abu adalah proses mengubah gambar dari ruang warna apa pun menjadi ruang warna skala abu-abu. Proses penskalaan abu-abu hanya diterjemahkan menjadi mengubah gambar menjadi nuansa abu-abu. Warna abu-abu bervariasi antara hitam pekat dan putih sempurna

Pentingnya Grayscaling di OpenCV

1. Mengurangi dimensi gambar. Citra RGB memiliki tiga kanal warna dan merupakan matriks tiga dimensi, sedangkan pada citra grayscale tidak ada parameter tambahan untuk kanal warna dan hanya satu dimensi.

2. Karena pengurangan dimensi, informasi yang diberikan ke setiap piksel relatif lebih sedikit

3. Mengurangi kompleksitas model. Ketika ada lebih sedikit informasi yang diberikan ke setiap piksel gambar, node input untuk jaringan saraf juga akan jauh lebih sedikit. Oleh karena itu, ini mengurangi kompleksitas model pembelajaran yang mendalam

4. Kesulitan dalam visualisasi dalam gambar berwarna. Lebih banyak informasi diekstraksi untuk beberapa gambar melalui penskalaan abu-abu yang mungkin tidak dapat dilakukan jika algoritme atau proses yang sama diterapkan pada gambar berwarna. Fitur yang diperlukan untuk ekstraksi menjadi lebih terlihat

5. Untuk pemahaman yang lebih baik tentang pemrosesan gambar

Metode mengonversi gambar Berwarna ke Grayscale menggunakan OpenCV

Pada artikel ini kita akan mengeksplorasi tiga metode untuk mengonversi gambar berwarna menjadi ruang warna skala abu-abu. Ketiga metode tersebut adalah sebagai berikut

1. Menggunakan cv2. fungsi imread() dengan flag=0

2. Menggunakan cv2. metode cvtColor()

3. Menggunakan metode rata-rata

1. Menggunakan cv2. fungsi imread() dengan flag=0 di OpenCV

CV2. fungsi imread menyediakan opsi untuk menentukan bagaimana gambar harus dimuat dengan memanfaatkan parameter flag. Parameter flag dari fungsi imread menunjukkan bagaimana gambar harus dibaca. Ada berbagai mode di mana gambar dapat dimuat. Mode yang benderanya dapat disetel tercantum dalam tabel yang diberikan

IMREAD_UNCHANGED Python. CV. IMREAD_UNCHANGEDJika disetel, kembalikan gambar yang dimuat apa adanya (dengan saluran alfa, jika tidak maka akan dipotong). Abaikan orientasi EXIFIMREAD_GRAYSCALE Python. CV. IMREAD_GRAYSCALEJika disetel, selalu ubah gambar menjadi gambar skala abu-abu saluran tunggal (konversi internal codec). IMREAD_COLOR Python. CV. IMREAD_COLORJika disetel, selalu ubah gambar menjadi gambar berwarna BGR 3 saluran. IMREAD_ANYDEPTH Python. CV. IMREAD_ANYDEPTHJika disetel, kembalikan gambar 16-bit/32-bit saat input memiliki kedalaman yang sesuai, jika tidak, konversikan ke 8-bit. IMREAD_ANYCOLOR Python. CV. IMREAD_ANYCOLORJika disetel, gambar dibaca dalam format warna apa pun yang memungkinkan. IMREAD_LOAD_GDAL Python. CV. IMREAD_LOAD_GDALJika disetel, gunakan driver gdal untuk memuat gambar. IMREAD_REDUCED_GRAYSCALE_2 Python. CV. IMREAD_REDUCED_GRAYSCALE_2Jika disetel, selalu ubah gambar menjadi gambar skala abu-abu saluran tunggal dan ukuran gambar dikurangi 1/2. IMREAD_REDUCED_COLOR_2 Python. CV. IMREAD_REDUCED_COLOR_2Jika disetel, selalu ubah gambar menjadi gambar berwarna BGR 3 saluran dan ukuran gambar dikurangi 1/2. IMREAD_REDUCED_GRAYSCALE_4 Python. CV. IMREAD_REDUCED_GRAYSCALE_4Jika disetel, selalu ubah gambar menjadi gambar skala abu-abu saluran tunggal dan ukuran gambar dikurangi 1/4. IMREAD_REDUCED_COLOR_4 Python. CV. IMREAD_REDUCED_COLOR_4Jika disetel, selalu ubah gambar menjadi gambar berwarna BGR 3 saluran dan ukuran gambar dikurangi 1/4. IMREAD_REDUCED_GRAYSCALE_8 Python. CV. IMREAD_REDUCED_GRAYSCALE_8Jika disetel, selalu ubah gambar menjadi gambar skala abu-abu saluran tunggal dan ukuran gambar dikurangi 1/8. IREAD_REDUCED_COLOR_8 Python. CV. IMREAD_REDUCED_COLOR_8Jika diatur, selalu ubah gambar menjadi gambar berwarna BGR 3 saluran dan ukuran gambar dikurangi 1/8

Implementasi cv2. fungsi imread() dengan flag=0 di OpenCV

# Importing OpenCV
import cv2

# Reading the image in grayscale mode by setting the flag as 0
img = cv2.imread(r'C:\Users\tushi\Downloads\PythonGeeks\flower.jpg', 0)

# Displaying the image
cv2.imshow('grayscale', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Bagaimana cara mengonversi gambar menjadi biner dengan python?

Bagaimana cara mengonversi gambar menjadi biner dengan python?

 

2. Menggunakan cv2. metode cvtColor() di OpenCV

fungsi cvtColor() mengonversi gambar di antara ruang warna. Pustaka OpenCV menawarkan lebih dari 150 fungsi konversi ruang warna

Sintaksis

cv2.cvtColor(src, code, dst, dstCn)
_

Parameter cv2. metode cvtColor() di OpenCV

1. src. Gambar sumber atau gambar yang harus diubah ke ruang warna lain

2. kode. kode konversi ruang warna yang disediakan oleh OpenCV

3. dst. Gambar keluaran dengan ukuran dan kedalaman yang sama seperti gambar sumber

4. dstCn. Jumlah saluran gambar keluaran

5. Nilai Pengembalian. Fungsi mengembalikan gambar yang dikonversi

Implementasi cv2. metode cvtColor() di OpenCV

# Importing opencv
import cv2

# Importing matplotlib.pyplot
import matplotlib.pyplot as plt

# Reading the image
image = cv2.imread(r'C:\Users\tushi\Downloads\PythonGeeks\flower.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Displaying the original image
plt.imshow(image)

Bagaimana cara mengonversi gambar menjadi biner dengan python?

# Converting into grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Displaying the converted image
plt.imshow(gray_image, cmap='gray')

Bagaimana cara mengonversi gambar menjadi biner dengan python?

3. Metode rata-rata di OpenCV

Metode rata-rata atau metode manipulasi piksel berguna untuk mengubah larik citra berwarna menjadi larik skala abu-abu, untuk setiap piksel citra. Ini terdiri dari menghitung rata-rata dari tiga warna. Untuk gambar RGB, kita harus menjumlahkan nilai masing-masing piksel merah, hijau dan biru dan membaginya dengan 3

Nilai piksel skala abu-abu = (R + G + B) / 3

Implementasi metode OpenCV Averaging

# Importing OpenCV
import cv2

# Reading the image in grayscale mode by setting the flag as 0
img = cv2.imread(r'C:\Users\tushi\Downloads\PythonGeeks\flower.jpg')

# Obtaining dimensions of the image array
(row, col) = img.shape[0:2]

# Take the average of RGB values to convert to grayscale
 for i in range(row):
  for j in range(col):
   img[i, j] = sum(img[i, j]) * 0.33

# Displaying the image
cv2.imshow('grayscale', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
_

Bagaimana cara mengonversi gambar menjadi biner dengan python?

Bagaimana cara mengonversi gambar menjadi biner dengan python?

Konversi biner di OpenCV

Gambar biner adalah gambar yang pikselnya hanya memiliki dua kemungkinan nilai intensitas. Ini ditampilkan sebagai hitam dan putih, di mana setiap piksel gambar memiliki nilai 0 atau 255 yang mewakili hitam dan putih

Pentingnya konversi OpenCV Binary

1. Gambar biner sangat berguna untuk pemrosesan gambar karena memungkinkan pemisahan objek dengan mudah dari latar belakang. Proses segmentasi memungkinkan pelabelan setiap piksel sebagai piksel latar belakang atau piksel objek dan memberikan nilai intensitas yang sesuai

2. Gambar biner menemukan beberapa aplikasi karena merupakan gambar yang paling sederhana untuk diproses, gambar ini merupakan representasi informasi gambar yang buruk

3. Gambar-gambar ini digunakan ketika informasi yang diperlukan diperoleh dengan siluet objek dan siluet objek dapat diperoleh dengan mudah

4. Gambar biner digunakan dalam pemrosesan gambar digital sebagai topeng atau ambang batas

Ambang batas di OpenCV

Thresholding adalah proses segmentasi gambar, di mana fungsi umum diterapkan pada piksel gambar untuk membuat gambar lebih mudah dianalisis. Nilai ambang yang sama digunakan untuk setiap nilai piksel. Jika nilai piksel kurang dari nilai ambang batas, itu diperbarui ke 0, jika tidak, itu diperbarui ke nilai maksimum. Di OpenCV, cv2. threshold() digunakan untuk thresholding. Pada thresholding, sebuah citra diubah dari warna atau grayscale menjadi citra biner

Sintaksis
cv2. ambang batas (src, thresh, maxval, type, dst)

Parameter thresholding di OpenCV

1. src. Gambar sumber atau gambar input yang akan diterapkan fungsi ambang batas

2. dst. Larik keluaran dengan ukuran dan kedalaman yang sama dengan gambar sumber

3. mengirik. Nilai ambang untuk gambar

4. maxval. Nilai maksimum untuk metode THRESH_BINARY dan THRESH_BINARY_INV

5. Tipe. Jenis ambang yang disediakan oleh OpenCV

Secara matematis, metode THRESH_BINARY adalah seperti di bawah ini

Bagaimana cara mengonversi gambar menjadi biner dengan python?

1. Konversi gambar berwarna ke biner di OpenCV

Implementasi OpenCV Gambar berwarna ke konversi gambar biner

# Importing opencv
import cv2

# Importing matplotlib.pyplot
import matplotlib.pyplot as plt

# Reading the image
image = cv2.imread(r'C:\Users\tushi\Downloads\PythonGeeks\flower.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Displaying the original image
plt.imshow(image)

Bagaimana cara mengonversi gambar menjadi biner dengan python?

# Converting into grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_

Bagaimana cara mengonversi gambar menjadi biner dengan python?

# Displaying the converted image
plt.imshow(gray_image, cmap='gray')

# Converting to binary image using thresholding
(thresh, binary_image) = cv2.threshold(gray_image, 175, 255, cv2.THRESH_BINARY)

# Displaying binary image
plt.imshow(binary_image, cmap='gray')

Bagaimana cara mengonversi gambar menjadi biner dengan python?

 

2. Konversi skala abu-abu ke biner di OpenCV

Implementasi Grayscale ke konversi biner di OpenCV

# Importing OpenCV
import cv2

# Reading the image in grayscale mode by setting the flag as 0
img = cv2.imread(r'C:\Users\tushi\Downloads\PythonGeeks\flower.jpg', 0)
(thresh, binary_image) = cv2.threshold(img, 175, 255, cv2.THRESH_BINARY)

# Displaying original grayscale image and binary image
cv2.imshow('Original Image', img)
cv2.imshow('Binary Image', binary_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
_

Bagaimana cara mengonversi gambar menjadi biner dengan python?

Bagaimana cara mengonversi gambar menjadi biner dengan python?

Kesimpulan

Pada artikel ini, kita belajar tentang ruang warna dan konversi ruang warna. Kami memahami skala abu-abu dan ruang warna biner dan bagaimana kami dapat mengonversi gambar apa pun ke ruang warna ini menggunakan fungsi yang disediakan di pustaka OpenCV. Selanjutnya, kami mengimplementasikan konversi gambar berwarna ke skala abu-abu menggunakan tiga metode yang tersedia dengan pustaka OpenCV dan kami mengubah gambar warna dan skala abu-abu menjadi gambar biner menggunakan ambang batas

Bagaimana Anda mengubah gambar menjadi biner?

BW = im2bw( I , level ) mengonversi gambar skala abu-abu I menjadi gambar biner BW , dengan mengganti semua piksel pada gambar input dengan pencahayaan yang lebih besar dari level dengan nilai 1 ( .

Bagaimana Anda Binarisasi gambar dengan Python?

Anda dapat membuat biner gambar dengan cv2. ambang() . Jika tipe diatur ke cv2. THRESH_BINARY , nilai apa pun yang lebih besar dari threshold thresh diganti dengan maxval dan nilai lainnya diganti dengan 0.

Bagaimana cara mengonversi file ke biner dengan Python?

Fungsi open() membuka file dalam format teks secara default. Untuk membuka file dalam format biner, tambahkan 'b' ke parameter mode . Oleh karena itu mode "rb" membuka file dalam format biner untuk dibaca, sedangkan mode "wb" membuka file dalam format biner untuk ditulis.

Bagaimana cara mengonversi gambar menjadi kode dengan Python?

Tambahkan referensi perpustakaan (impor perpustakaan) ke proyek Python Anda. Buka file gambar sumber dengan Python. Panggil metode 'save()', meneruskan nama file keluaran dengan ekstensi HTML. Dapatkan hasil konversi gambar sebagai HTML