Dapatkan nilai piksel dari gambar skala abu-abu opencv-python

Pemrosesan gambar adalah hal yang menarik. Setelah menghabiskan beberapa waktu untuk ini, saya menyadari bahwa semua pengeditan gambar yang Anda lakukan dengan bantuan alat pihak ke-3 dapat dilakukan dengan OpenCV dan banyak lagi. Banyak efek khusus yang diterapkan oleh aplikasi kamera Anda dapat dengan mudah dilakukan dengan bantuan OpenCV, dalam beberapa baris kode

Ini adalah upaya kecil yang saya lakukan untuk menjelaskan operasi paling umum yang dilakukan menggunakan OpenCV

Pertama sedikit tentang OpenCV…

CV dalam OpenCV adalah singkatan dari "Computer Vision" dan terbuka dalam artian "Open source". Jadi OpenCV adalah Open source Computer Vision. OpenCV ditulis dalam C++ tetapi jangan khawatir, OpenCV memiliki pembungkusnya dengan Python, MATLAB, Java, dll

Instalasi

Instalasi di Linux sangat mudah. Jika Anda hanya ingin menginstal OpenCV untuk python (yang cukup dalam kasus kami), ini adalah perintahnya

Dan itu saja. Anda dapat mulai bermain dengan gambar Anda sekarang…

Membaca/Menulis Gambar

Mari kita cepat membaca dan menulis gambar melalui OpenCV

import cv2
#Reading
input_image = cv2.imread("/path/to/input/image")
#perform some operations on image. Suppose you get 'converted_image'
#Writing
cv2.imwrite("/path/to/output/image",converted_image)

Beberapa Operasi Umum

  • Mengonversi ke Skala abu-abu

    Gambar grayscale sangat berguna saat Anda melakukan ekstraksi teks atau OCR dari dokumen gambar. Mesin OCR bekerja sangat baik pada gambar skala abu-abu daripada gambar berwarna

gray_image = cv2.cvtColor(input_image, cv2.COLOR_BGR2GRAY)
_

Berikut tampilan gambar masukan dan keluaran

Dapatkan nilai piksel dari gambar skala abu-abu opencv-python
Sebelum Skala Abu-abu
Dapatkan nilai piksel dari gambar skala abu-abu opencv-python
Setelah Skala Abu-abu

Catatan penting di sini adalah bahwa gambar berwarna (BGR) di OpenCV direpresentasikan sebagai larik 3 dimensi (n x m x 3) di memori. Gambar skala abu-abu direpresentasikan sebagai array 2 dimensi (n x m). Anda dapat mengakses nilai piksel dengan koordinat baris dan kolomnya. Untuk gambar BGR, ini mengembalikan array nilai Biru, Hijau, Merah. Untuk gambar skala abu-abu, hanya intensitas yang sesuai yang dikembalikan

#shape is used to get the dimensions of the image
print (input_image.shape)
print (gray_image.shape)
#This will return [Blue, Green, Red] values of pixel at 50th row and 80th column
bgr_px = input_image[50,80]

  • Ambang batas

    Dalam ambang batas, setiap piksel gambar diberi nilai berdasarkan ambang batas. Jika nilai piksel lebih kecil dari ambang batas, itu diatur ke 0, jika tidak, itu diatur ke nilai maksimum (umumnya 255). Thresholding umumnya dilakukan pada citra grayscale untuk mengubahnya menjadi citra biner (hanya berisi nilai 0 dan 255 piksel). )

ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)
cv2.imwrite("thresh.png",thresh1)

Dapatkan nilai piksel dari gambar skala abu-abu opencv-python
Sebelum Batas
Dapatkan nilai piksel dari gambar skala abu-abu opencv-python
Setelah Batas

Thresholding digunakan untuk memisahkan bagian terang dan gelap dari gambar. Ini umumnya digunakan sebelum OCRing gambar dan juga digunakan untuk mengaburkan gambar

  • Pembalikan

    Pembalikan berarti membalikkan nilai piksel. Inversi umumnya dilakukan pada citra biner dan setelah inversi, piksel putih akan diubah menjadi hitam, dan piksel hitam akan diubah menjadi putih. Kita dapat membalikkan gambar menggunakan fungsi bitwise_not_ dari OpenCV. image_inv = cv2.bitwise_not(input_image)

Dapatkan nilai piksel dari gambar skala abu-abu opencv-python
Sebelum Pembalikan
Dapatkan nilai piksel dari gambar skala abu-abu opencv-python
Setelah Pembalikan
  • Memburamkan atau Menghaluskan

    Anda mungkin bertanya-tanya apa perlunya memburamkan atau menghaluskan gambar yang tajam. Sementara blur tidak diinginkan dalam gambar yang Anda tangkap melalui kamera Anda, tetapi ini cukup berguna dalam pemrosesan gambar

    • Sederhananya, memburamkan gambar akan mengurangi noise pada gambar
    • Penghalusan atau pemburaman adalah salah satu langkah prapemrosesan yang paling umum dalam visi komputer dan pemrosesan gambar
    • Dengan menghaluskan gambar sebelum menerapkan teknik seperti deteksi tepi atau ambang batas, kami dapat mengurangi jumlah konten frekuensi tinggi, seperti derau dan tepian (i. e. , "detail" gambar)
    • Berikut adalah sintaks untuk melakukan Average Blur

      blurImg = cv2.blur(input_image,(10,10))_

      Ini hanya mengambil rata-rata dari semua piksel di bawah area kernel dan menggantikan elemen pusat. Di sini kami telah mendefinisikan ukuran kernel sebagai (10, 10). Anda dapat mencoba nilai yang berbeda di sini dan mengujinya

    • Anda dapat menjelajahi lebih banyak teknik pengaburan gambar
  • Operasi Morfologi

    Operasi morfologi adalah sekumpulan operasi yang memproses citra berdasarkan bentuk. Mereka menerapkan elemen penataan atau kernel ke gambar masukan dan menghasilkan gambar keluaran. Dua operasi morfologi yang paling umum adalah Erosi dan Dilatasi

    Berapa nilai piksel gambar skala abu-abu Python?

    Kita dapat mengakses nilai piksel dengan koordinat baris dan kolomnya. Untuk gambar BGR, ini mengembalikan array nilai Biru, Hijau, Merah. Untuk gambar skala abu-abu, intensitas yang sesuai dikembalikan . Kita juga bisa mengakses nilai alpha (transparan = 0, opaque = 255) dan nilai grayscale (intensitas) juga.

    Bagaimana cara mendapatkan nilai piksel dari suatu gambar di OpenCV Python?

    Untuk mengakses satu nilai piksel dalam sebuah gambar, kita dapat menggunakan pengindeksan yang sama seperti yang kita lakukan pada pengindeksan larik NumPy . Kita dapat menggunakan slicing untuk mengakses urutan nilai piksel. Untuk mengubah nilai piksel, kami menggunakan operator penugasan Python sederhana ("=").

    Bagaimana cara mengekstrak nilai piksel dari gambar dengan Python?

    Prosedur ekstraksi adalah. .
    impor modul Gambar PIL ke dalam Shell. >>>dari PIL import Image
    buat objek gambar dan buka gambar untuk mode membaca. >>>im = Gambar. buka('filesaya. png', 'r').
    kami menggunakan fungsi modul Gambar yang disebut getdata() untuk mengekstrak nilai piksel

    Berapa nilai piksel dari gambar skala abu-abu?

    Untuk gambar skala abu-abu, nilai piksel adalah angka tunggal yang mewakili kecerahan piksel . Format piksel yang paling umum adalah gambar byte, di mana angka ini disimpan sebagai bilangan bulat 8-bit yang memberikan rentang nilai yang mungkin dari 0 hingga 255. Biasanya nol dianggap hitam, dan 255 dianggap putih.