Sebelum kita mulai. Tutorial Python ini adalah bagian dari rangkaian tutorial Paket Python kami. Anda juga dapat menemukan topik terkait Tkinter lainnya
Tkinter mengandalkan paket Python Pillow (alias PIL) untuk kemampuan pemrosesan gambar. Menggunakan Bantal, fungsi Tkinter yang menampilkan pesan berbasis teks dapat menampilkan pesan berbasis gambar
Perhatikan bahwa tergantung pada tujuan gambar dalam aplikasi Tkinter, pengkodean yang berbeda mungkin diperlukan. Alasannya adalah karena gambar dalam aplikasi dapat bervariasi dari wallpaper latar belakang, hingga gambar yang diposisikan yang mewakili proses dalam kode yang mendasarinya, hingga gambar atau ikon yang dapat diklik yang melakukan tindakan saat diklik.
Cara Menampilkan Gambar dengan Widget Label Tkinter
Widget label Tkinter dapat digunakan untuk menampilkan gambar atau teks. Untuk menampilkan gambar membutuhkan penggunaan Image dan ImageTk yang diimpor dari paket Python Pillow (alias PIL).
Widget label dapat menampilkan PhotoImage atau BitmapImage .
- PhotoImage digunakan untuk menampilkan ikon skala abu-abu atau warna sebenarnya, serta gambar dalam label. Perhatikan bahwa hanya format gambar GIF dan PGM/PPM yang didukung. Untuk informasi tentang cara bekerja dengan lebih banyak format gambar, lihat bagian Bantal di bawah.
- BitmapImage digunakan hanya untuk menampilkan gambar monokrom (dua warna) dalam label.
Tkinter memiliki tiga Manajer Tata Letak bawaan yang dapat digunakan untuk memposisikan label yang berisi gambar dalam bingkai. kemas, kisi, dan tempat. Misalnya, label dapat ditempatkan dalam bingkai menggunakan pengelola tata letak tempat pada koordinat x,y, seperti yang ditampilkan dalam contoh berikut
Pada artikel ini, kita akan mempelajari berbagai cara bagaimana Anda dapat membaca dan menampilkan gambar dengan Python. Kita dapat mencapai ini dengan berbagai cara. Alasannya karena dukungan perpustakaan yang melimpah. Kami juga akan mengeksplorasi bagaimana kami dapat menggunakannya dalam persilangan satu sama lain
Cara Menampilkan Gambar Menggunakan Python
Berikut ini adalah daftar pustaka Python yang memungkinkan kita memproses gambar dan melakukan tugas yang sesuai
- OpenCV
- Matplotlib
- Bantal
- Scikit-Gambar
- Tensorflow
Sekarang mari kita lihat cara menampilkan gambar di jendela Python GUI dengan mudah. Mungkin ada banyak modul dan/atau peretasan lain untuk melihat gambar juga, jadi jangan membatasi diri Anda hanya pada 5 modul ini
1. OpenCV untuk Menampilkan Gambar dengan Python
Ini adalah paket yang sangat terkenal, ramah-pemula dan open-source, dan kuat yang bertanggung jawab untuk pemrosesan gambar. Dengan sekumpulan kecil perintah, kita dapat membawa perjalanan Computer Vision kita ke level selanjutnya. Ada dua fungsi utama yang disediakan OpenCV untuk membaca dan menampilkan gambar
- cv2. imread()
- cv2. imshow()
Kode
import sys # to access the system import cv2 img = cv2.imread("sheep.png", cv2.IMREAD_ANYCOLOR) while True: cv2.imshow("Sheep", img) cv2.waitKey(0) sys.exit() # to exit from all the processes cv2.destroyAllWindows() # destroy all windows
Keluaran
Penjelasan
- Impor paket OpenCV untuk mengakses fungsi. Impor juga modul sys untuk paket tambahan
- Buat variabel sebagai img yang menyimpan gambar kita. Panggil cv2. imread() dan mengirimkan jalur gambar/nama gambar sebagai parameter pertama. Kemudian atur cv2. IMREAD_ANYCOLOR adalah parameter selanjutnya untuk membaca setiap warna gambar
- Kemudian, atur while loop dan itu akan membantu kita merender gambar berkali-kali sampai kita keluar dari sistem
- Kemudian gunakan cv2. fungsi imshow() di dalam while loop. Dibutuhkan dua parameter, judul gambar dan variabel jalur gambar img
- CV2. metode waitkey() menunggu hingga kita keluar atau mengklik tombol tutup
- Kemudian hubungi sys. exit() untuk keluar dari teknik dengan aman
- Terakhir, kami menghancurkan semua jendela yang dibuat menggunakan cv2. hancurkan SemuaWindows()
2. Matplotlib
Paket ini terutama untuk visualisasi data. Namun, melalui teknik plotting, kita dapat melihat gambar dalam format grafis di mana setiap piksel terletak pada sumbu x-y 2D.
Library ini juga memiliki fungsi yang setara dengan open cv. Hanya nama paket yang berubah
- matplotlib. gambar. imread()
- matplotlib. pyplot. imshow()
Kode
from matplotlib import pyplot as plt from matplotlib import image as mpimg plt.title("Sheep Image") plt.xlabel("X pixel scaling") plt.ylabel("Y pixels scaling") image = mpimg.imread("sheep.png") plt.imshow(image) plt.show() _
Keluaran
Penjelasan
- Impor modul pylot dan gambar paket Matplotlib
- Tetapkan judul gambar sebagai Gambar Domba menggunakan plt. judul() metode
- Saat matplotlib membaca gambar dalam bidang x-y. Kita memerlukan fungsi label xlabel() dan ylabel() untuk menyebutkan sumbu dan piksel
- Buat variabel sebagai gambar yang menyimpan gambar kita. Panggil mpimg. imread() dan berikan jalur gambar/nama gambar sebagai parameter pertama
- Kemudian, atur while loop dan itu akan membantu kita merender gambar berkali-kali sampai kita keluar dari sistem
- Kemudian gunakan plt. fungsi imshow() yang mengambil variabel gambar img. Tapi itu akan ditampilkan di backend
- Untuk melihatnya di layar, gunakan plt. show() dan kami memiliki gambar kami dengan parameter yang diskalakan dengan benar di layar
3. Bantal
Pustaka ini sering menawarkan metode sederhana untuk manipulasi gambar. Kita dapat mengatakan bahwa ini adalah pustaka khusus gambar karena kesederhanaan dan kemampuan beradaptasinya. Fungsi yang akan kita gunakan adalah open() dan show() dari modul Image PILLOW. Tindakan ini hanya dalam tiga baris kode
Kode
from PIL import Image img = Image.open("sheep.png") img.show()
Keluaran
Penjelasan
- Impor gambar modul dari PIL
- Buat variabel img lalu panggil fungsi open() di dalamnya. Berikan jalur yang memiliki file gambar
- Panggil fungsi show() bersamaan dengan variabel img melalui operator titik “. ”
- Ini menampilkan gambar melalui aplikasi Foto bawaan di OS Anda masing-masing
4. Scikit-Gambar
Scikit-Image adalah sub-modul dari Scikit-Learn. Itu dibangun di atas Python dan perpustakaan yang mendukung Matplotlib sehingga mendapatkan beberapa fungsinya. Metodenya mirip dengan paket sebelumnya yang kita lihat sebelumnya
Kode
from skimage import io img = io.imread("sheep.png") io.imshow(img)
Keluaran
5. Tensorflow
Ini adalah perpustakaan Pembelajaran Mesin yang kuat terutama dari Google. Inc. Ini bekerja pada berbagai aspek Pembelajaran Mesin, Pembelajaran Mendalam, dan konsep terkait. Ini juga memiliki kumpulan data bawaan untuk memulai perjalanan Ilmu Data dan rekayasa ML tanpa kerumitan. Ini bekerja secara khusus pada inti GPU CUDA komputer. Ini membuat pelatihan model lebih efisien dan mengurangi tekanan pada CPU
Kami akan menggunakan perpustakaan ini bersama dengan modul Matplotlib. Karena ini membuat perencanaan dan tampilan gambar jauh lebih mudah
Kode
from warnings import filterwarnings import tensorflow as tf from tensorflow import io from tensorflow import image from matplotlib import pyplot as plt filterwarnings("ignore") tf_img = io.read_file("sheep.png") tf_img = image.decode_png(tf_img, channels=3) print(tf_img.dtype) plt.imshow(tf_img) # plt.show() _
Penjelasan
- Impor TensorFlow. Lalu dari TensorFlow, impor juga io dan gambar.
- Impor modul pyplot matplotlib untuk tujuan plotting
- (Opsional) juga, gunakan paket peringatan untuk menghindari peringatan yang tidak perlu
- Buat variabel gambar TensorFlow "tf_img" dan panggil io. read_file() metode. Berikan jalur gambar di dalamnya
- Ini dibaca sebagai file default. Untuk melihatnya sebagai gambar, kita perlu menggunakan fungsi decode_png() dari gambar agar sistem dapat mengenalinya. Pastikan Anda menggunakan fungsi penentu yang benar. Mereka berbeda untuk setiap jenis gambar. Gunakan saluran = 3. untuk penggunaan GPU default
- Terakhir, tampilkan gambar yang diambil melalui plt. metode imshow()
Keluaran
Kesimpulan
Jadi, ini adalah berbagai cara yang bisa kita gunakan untuk melakukan pemrosesan gambar. Python memiliki banyak opsi untuk setiap tugas unik. Komentari metode dan pustaka mana yang paling Anda sukai yang kami terapkan dalam artikel ini