Bagaimana Anda membuat gambar matriks dengan python?

Dalam pembelajaran mesin, Python menggunakan data gambar dalam bentuk array NumPy, mis. e. , format [Tinggi, Lebar, Kanal]. Untuk meningkatkan kinerja model prediktif, kita harus mengetahui cara memuat dan memanipulasi gambar. Di Python, kita dapat melakukan satu tugas dengan cara yang berbeda. Kami memiliki opsi dari Numpy hingga Pytorch dan CUDA, bergantung pada kerumitan masalahnya

Di akhir tutorial ini, Anda akan memiliki pengalaman langsung dengan

  • Memuat dan menampilkan gambar menggunakan Matplotlib, OpenCV dan Keras API
  • Mengonversi gambar yang dimuat ke larik NumPy dan sebaliknya
  • Melakukan manipulasi dasar gambar menggunakan perpustakaan Pillow dan NumPy dan menyimpannya ke sistem lokal Anda
  • Membaca gambar sebagai array di Keras API dan OpenCV

Perpustakaan Bantal

Bantal adalah alat manipulasi gambar yang disukai. Python versi 2 menggunakan Python Image Library (PIL), dan Python versi 3 menggunakan Pillow Python Library, peningkatan dari PIL

Anda harus terlebih dahulu membuat lingkungan virtual di Anaconda untuk berbagai proyek. Pastikan Anda memiliki paket pendukung seperti NumPy, SciPy, dan Matplotlib untuk dipasang di lingkungan virtual yang Anda buat

Setelah menyiapkan paket, Anda dapat menginstal Bantal dengan mudah menggunakan

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
8 .

1pip install Pillow
_

kerang

Anda dapat mengonfirmasi bahwa pustaka telah diinstal dengan benar dengan memeriksa versinya

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)

python

1Pillow Version: 7.0.0

Besar. Versi terbaru sekarang diunduh. Mari kita lanjutkan ke langkah berikutnya

Memuat Gambar

Di sini kita akan mempelajari dua cara memuat dan mendapatkan detail gambar. gunakan perpustakaan Bantal dan gunakan perpustakaan Matplotlib

Metode 1. Perpustakaan Bantal

Pilih gambar uji untuk dimuat dan bekerja dengan pustaka Pillow (PIL). Gambar dapat berupa PNG atau JPEG. Dalam contoh ini, kita akan menggunakan gambar bernama kolala. jpeg. Unggah gambar di direktori kerja atau berikan jalur yang Anda inginkan. Kelas

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
9 adalah inti dari
1Pillow Version: 7.0.0
0
, dan propertinya membantu memanipulasi .

Bagaimana Anda membuat gambar matriks dengan python?

Kelas

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
9 menggunakan fungsi ini. *

  • 1Pillow Version: 7.0.0
    _2 . Ini dapat langsung memuat gambar. Ini memiliki
    1Pillow Version: 7.0.0
    3
    properti seperti
    1Pillow Version: 7.0.0
    4
    , yang memberikan informasi tentang file digital . g. , 480x240).
    1Pillow Version: 7.0.0
    5
    size`, which displays the dimensions of the image in pixels (e.g., 480x240).

  • 1Pillow Version: 7.0.0
    _6
    . Ini akan menampilkan gambar. Aplikasi pratinjau foto default Anda akan muncul.

1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()

python

1JPEG
2(800, 450)
3RGB

Metode 2. perpustakaan Matplotlib

Kami akan menggunakan pustaka Matplotlib untuk memuat gambar yang sama dan menampilkannya di bingkai Matplotlib. Sama seperti PIL, ia memiliki kelas ________3______7 yang menjalankan fungsi yang sama. Fungsi yang digunakan dalam potongan kode ini adalah ________3______8 , yang memuat gambar dalam bentuk larik piksel dan

1Pillow Version: 7.0.0
9, which displays that image.

Kita akan menggunakan kelas

1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()
0 dari library Matplotlib untuk memplot gambar ke dalam bingkai.

1# load and display an image with Matplotlib
2from matplotlib import image
3from matplotlib import pyplot
4# load image as pixel array
5image = image.imread('kolala.jpeg')
6# summarize shape of the pixel array
7print(image.dtype)
8print(image.shape)
9# display the array of pixels as an image
10pyplot.imshow(image)
11pyplot.show()

python

Setelah langkah pertama memuat gambar menggunakan argumen ________12______1 , kita mendapatkan laporan tentang tipe data array. Dalam hal ini, ini adalah bilangan bulat 8-bit yang tidak ditandatangani. Bentuk array adalah lebar 800 piksel dan tinggi 450 piksel dan

1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()
2 menunjukkan saluran warna untuk merah, hijau, dan biru.

Bagaimana Anda membuat gambar matriks dengan python?

Konversikan ke NumPy Array dan Back

Di Python, Pillow adalah pustaka paling populer dan standar saat bekerja dengan data gambar

NumPy menggunakan kelas

1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()
3 untuk mengonversi gambar PIL menjadi larik NumPy. Fungsi ________12______4 juga menghasilkan hasil yang sama. Fungsi ________12______5 menampilkan kelas dari sebuah gambar.

Proses dapat dibalik menggunakan fungsi

1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()
6 . Fungsi ini berguna saat manipulasi dilakukan pada
1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()
7
data gambar, yang nantinya ingin kita simpan sebagai file PNG atau JPEG.

1from PIL import Image
2from numpy import asarray
3# load the image
4image = Image.open('kolala.jpeg')
5# convert image to numpy array
6data = asarray(image)
7print(type(data))
8# summarize shape
9print(data.shape)
10
11# create Pillow image
12image2 = Image.fromarray(data)
13print(type(image2))
14
15# summarize image details
16print(image2.mode)
17print(image2.size)

python

Bagaimana Anda membuat gambar matriks dengan python?

1# load and show an image with Pillow
2from PIL import Image
3# Open the image form working directory
4image = Image.open('kolala.jpeg')
5# summarize some details about the image
6print(image.format)
7print(image.size)
8print(image.mode)
9# show the image
10load_image.show()
8 memberikan nilai setiap piksel dari gambar larik NumPy.

1print(data)

python

Bagaimana Anda membuat gambar matriks dengan python?

Memanipulasi dan Menyimpan Gambar

Sekarang kita telah mengonversi gambar kita menjadi array Numpy, kita mungkin menemukan kasus di mana kita perlu melakukan beberapa manipulasi pada gambar sebelum menggunakannya ke dalam model yang diinginkan. Di bagian ini, Anda akan dapat membuat konverter skala abu-abu. Anda juga dapat mengubah ukuran susunan gambar piksel dan memangkasnya

Setelah melakukan manipulasi, penting untuk menyimpan gambar sebelum melakukan langkah selanjutnya. Argumen

1Pillow Version: 7.0.0
4 menyimpan file dalam format yang berbeda, seperti PNG, GIF, atau PEG.

Misalnya, kode di bawah memuat foto dalam format JPEG dan menyimpannya dalam format PNG

Mengkonversi Gambar ke Grayscale

1import numpy as np
2from PIL import Image
3
4im = np.array(Image.open('kolala.jpeg').convert('L')) #you can pass multiple arguments in single line
5print(type(im))
6
7gr_im= Image.fromarray(im).save('gr_kolala.png')

python

1<class 'numpy.ndarray'>

Bagaimana Anda membuat gambar matriks dengan python?

Mengubah Ukuran Gambar

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
0

python

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
_1

Memangkas Gambar

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
_2

python

Bagaimana Anda membuat gambar matriks dengan python?

Periksa gambar di jalur yang telah Anda sebutkan

Keras API

Mari pertimbangkan gambar uji yang sama. Keras menyediakan fungsi untuk memuat, mengonversi, dan menyimpan data gambar. Untuk menginstal Keras API di lingkungan virtual Anaconda, gunakan perintah

1JPEG
2(800, 450)
3RGB
0 (versi CPU). Keras berjalan di atas framework TensorFlow. Pastikan paket terinstal dengan benar.

Fungsi-fungsi ini dapat menjadi fungsi kemudahan yang berguna saat memulai proyek visi komputer dee-learning baru atau saat Anda perlu memeriksa gambar tertentu

Memuat Gambar Dengan Keras API

Keras menyediakan fungsi ________13______1 untuk memuat gambar PIL. Pelajari lebih lanjut tentang fungsi di sini.

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
_3

python

Menurut output di bawah ini, kami dapat mengonfirmasi bahwa gambar yang dimuat dalam format PIL dan memiliki saluran warna RGB format JPEG dan ukuran 800 x 450 piksel. Gambar akan ditampilkan di penampil gambar default Anda

Bagaimana Anda membuat gambar matriks dengan python?

Konversi Gambar Dengan Keras API

Keras menggunakan fungsi

1JPEG
2(800, 450)
3RGB
2 untuk mengubah gambar PIL menjadi numpy. API juga menyediakan fungsi
1JPEG
2(800, 450)
3RGB
3
, yang dapat digunakan untuk mengonversi larik data piksel menjadi gambar PIL.

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
_4

python

Bagaimana Anda membuat gambar matriks dengan python?

Menyimpan Gambar dengan Keras

Keras API menggunakan fungsi ________13______4 untuk menyimpan gambar secara lokal. Di sini fungsinya mengambil jalur dan nama file tempat kami ingin menyimpan data gambar dalam format array NumPy. Fungsi ini berguna saat Anda telah memanipulasi gambar dan ingin menyimpan gambar untuk digunakan nanti.

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
5

python

Bagaimana Anda membuat gambar matriks dengan python?

Perpustakaan OpenCV

OpenCV adalah perpustakaan yang melakukan algoritma visi komputer tradisional. Kerangka kerja Tensorflow + Keras adalah opsi masuk bagi siapa saja yang ingin bekerja dengan pembelajaran mendalam. Open CV versi 3. x telah memperkenalkan kerangka kerja DNN dan Caffe untuk memecahkan masalah pembelajaran mendalam

Untuk bekerja dengan pustaka OpenCV, Anda perlu menginstalnya di lingkungan virtual menggunakan

1JPEG
2(800, 450)
3RGB
5 . Paket
1JPEG
2(800, 450)
3RGB
6
menyediakan fungsi
1Pillow Version: 7.0.0
8
untuk memuat gambar. Itu juga membaca gambar PIL dalam format array NumPy. Satu-satunya hal yang perlu kita ubah adalah warna gambar dari BGR ke RGB.
1JPEG
2(800, 450)
3RGB
8
menyimpan gambar dalam file.

1# check Pillow version number
2import PIL
3print('Pillow Version:', PIL.__version__)
_6

python

1<class 'numpy.ndarray'>

Kesimpulan

Python adalah alat yang fleksibel, memberi kita pilihan untuk memuat gambar PIL dengan dua cara berbeda. Dalam panduan ini, Anda mempelajari beberapa trik manipulasi pada gambar Numpy Array, lalu mengubahnya kembali menjadi gambar PIL dan menyimpan pekerjaan kami. Panduan ini juga memberi Anda petunjuk tentang mengonversi gambar menjadi bentuk array dengan menggunakan Keras API dan pustaka OpenCV. Selanjutnya, Anda dapat mengikuti link dokumentasi library Pillow dan mencoba melakukan berbagai teknik manipulasi, seperti membuat fungsi untuk memperluas data gambar dan memasukkan ke dalam jaringan saraf pembelajaran mendalam

Bagaimana Anda membuat gambar menjadi matriks dengan Python?

Konversi Gambar Menjadi Matriks dengan Python .
Impor modul Gambar dari pustaka PILLOW Python sebagai PIL
Impor modul array dari NUMPY library Python
Kedua pustaka ini untuk ekstraksi Gambar dari file sumber dan menentukan dimensi matriks

Bagaimana gambar diubah menjadi matriks?

Gambar skala abu-abu digital disajikan di komputer dengan matriks piksel. Setiap piksel dari gambar tersebut disajikan oleh satu elemen matriks – bilangan bulat dari himpunan . Nilai numerik dalam presentasi piksel diubah secara seragam dari nol (piksel hitam) menjadi 255 (piksel putih).

Bagaimana Anda mengonversi gambar matriks 2D dengan Python?

langkah-langkahnya adalah. .
mengonversi gambar menjadi skala abu-abu (opencv)
konversi skala abu-abu ke gambar biner (opencv)
konversikan ke matriks 2D biner (scipy , pillow, numpy)

Bagaimana Anda memplot array gambar dengan Python?

Skema Interpolasi Larik .
dari PIL impor Gambar img = Gambar. membuka('. /. /doc/_static/sinkbug. png') img. thumbnail((64, 64)) # mengubah ukuran gambar di tempat imglot = plt. imshow(img)
imgplot = plt. imshow(img, interpolasi="terdekat")
imgplot = plt. imshow(img, interpolasi="bicubic")