Cara mengakses data piksel dalam gambar menggunakan python opencv – Codewithaden

OpenCV-Python adalah perpustakaan Python yang dirancang untuk menyelesaikan masalah visi komputer. Kita dapat membaca gambar menggunakan iMread () berfungsi, menulis atau menyimpan gambar menggunakan imwrite () fungsi, tampilkan gambar di jendela gambar menggunakan imshow () metode.

Cara mengakses data piksel dalam gambar

Untuk mengakses data piksel dalam gambar python, gunakan Numpy dan Perpustakaan OpenCV-Python. Impor Numpy dan CV2 (OpenCV-Python) modul di dalam file program Anda. Kemudian baca file gambar menggunakan iMread () fungsi. Metode iMread () mengambil dua parameter.

  1. Jalur gambar
  2. Saluran (jika 1 lalu hitam dan putih dan jika 2 lalu warnai)

Mari kita cetak gambar.

# app.py

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(img) 

Keluaran

[[[231 204 178]
  [226 199 173]
  [227 200 174]
  ...
  [218 188 153]
  [218 188 153]
  [219 189 154]]

 [[227 200 174]
  [224 197 171]
  [228 201 175]
  ...
  [216 186 151]
  [214 184 149]
  [212 182 147]]

 [[224 197 171]
  [223 196 170]
  [228 201 175]
  ...
  [215 185 150]
  [212 182 147]
  [209 179 144]]

 ...

 [[ 42  94 131]
  [ 52 105 142]
  [ 84 144 180]
  ...
  [ 51  55  56]
  [ 53  50  52]
  [ 47  42  44]]

 [[ 61  96 139]
  [ 44  84 126]
  [ 64 113 153]
  ...
  [ 37  42  43]
  [ 39  36  38]
  [ 41  34  37]]

 [[ 29  56 100]
  [ 33  67 110]
  [ 45  87 130]
  ...
  [ 34  39  40]
  [ 38  35  37]
  [ 48  41  44]]] 

Anda dapat melihat bahwa itu mencetak array. Tapi, pertama, mari kita lihat jenis array.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(type(img)) 

Keluaran

 

Anda dapat melihat bahwa itu adalah a Numpy Himpunan . Kami telah mengimpor Numpy Perpustakaan karena alasan ini. Gambar opencv-python menganggap gambar sebagai a Numpy Himpunan .

Jadi kita bisa menggunakan semua Numpy Himpunan fungsi Untuk mengakses piksel dan data gambar, dan kami juga dapat memodifikasi data.

Temukan panjang gambar menggunakan metode len ().

Untuk menemukan panjang gambar, gunakan metode len () dan lulus gambar.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(len(img))
 

Keluaran

6000 

Panjang gambar gambar lokal saya adalah 6000 px. Ini menunjukkan jumlah baris dalam gambar.

Jika Anda ingin menemukan baris atas, Anda dapat melakukan ini.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(len(img[0]))
 

Keluaran

4000 

Itu berarti gambar memiliki 4000 kolom vertikal.

Untuk menemukan jumlah saluran gambar, gunakan teknik ini.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(len(img[0][0]))
 

Keluaran

Temukan bentuk gambar menggunakan properti bentuk

Untuk menemukan bentuk gambar, gunakan properti bentuk. Properti bentuk mengembalikan tuple berisi tiga hal.

  1. Lebar
  2. Tinggi
  3. Saluran
import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(img.shape)
 

Keluaran

(6000, 4000, 3) 

Di sini, Anda dapat melihat bahwa jumlah baris adalah 6000, kolom adalah 4000, dan salurannya 3.

Temukan tipe data gambar.

Untuk menemukan tipe data gambar, gunakan dtype properti pada gambar.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(img.dtype)
 

Keluaran

uint8 

Jenis data array piksel adalah nilai integer yang tidak ditandatangani 8. Ini memberi tahu kami bahwa nilai maksimum dari setiap piksel gambar adalah 255. Jika Anda memproses gambar menggunakan OpenCV, Anda harus memahami nilai maksimum gambar. Ini dapat bervariasi dari gambar ke gambar.

Akses piksel gambar menggunakan array numpy

Untuk mengakses piksel gambar apa pun, gunakan notasi irisan dalam array IMG.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(img[11, 21])
 

Keluaran

[226 201 175] 

Kami mengakses kolom ke -11 dan kolom ke -21, dan sebagai imbalannya, kami mendapatkan array yang nilai pikselnya adalah 226, 201, dan 175 pada array itu.

Untuk menemukan jumlah total piksel gambar, gunakan properti ukuran array numpy.

import numpy as np
import cv2

img = cv2.imread('forest.jpg', 1)

print(img.size)
 

Keluaran

72000000 

Itu berarti citra kami memiliki total 72.000.000 piksel.

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *