Dunia hari ini penuh dengan semua jenis data dan imej adalah bahagian yang sangat penting daripadanya. Walau bagaimanapun, untuk ia berguna, kita perlu memproses imej ini. Pemprosesan imej ialah proses menganalisis dan memanipulasi imej digital dengan tujuan untuk meningkatkan kualitinya atau mengekstrak beberapa maklumat daripadanya dan kemudian menggunakannya dalam beberapa cara.
Tugas biasa dalam pemprosesan imej termasuk memaparkan imej, operasi asas (seperti memotong, membalikkan, berputar, dll.), pembahagian imej, pengelasan dan pengekstrakan ciri, pemulihan imej dan pengecaman imej, dsb. Python ialah pilihan terbaik untuk tugas pemprosesan imej kerana semakin popular bahasa pengaturcaraan saintifik ini dan ketersediaan percuma banyak alat pemprosesan imej terkini.
Mari kita lihat beberapa perpustakaan Python yang biasa digunakan untuk tugas pemprosesan imej.
scikit-image ialah pakej Python sumber terbuka berdasarkan tatasusunan numpy. Ia melaksanakan algoritma dan utiliti untuk penyelidikan, pendidikan dan aplikasi perindustrian. Ia adalah perpustakaan yang agak mudah walaupun untuk mereka yang baru menggunakan Python. Kod perpustakaan adalah berkualiti tinggi dan telah disemak oleh rakan sebaya, ditulis oleh komuniti sukarelawan yang aktif.
Contoh penggunaan: penapisan imej, padanan templat.
Perpustakaan boleh diimport menggunakan "skimage". Kebanyakan fungsi boleh didapati dalam submodul.
import matplotlib.pyplot as plt %matplotlib inline from skimage import data,filters image = data.coins() # ... or any other NumPy array! edges = filters.sobel(image) plt.imshow(edges, cmap='gray')
Padanan templat (menggunakan fungsi templat_padan)
Contoh penggunaan: Gunakan Numpy untuk menyahpekakan imej:
import numpy as np from skimage import data import matplotlib.pyplot as plt %matplotlib inline image = data.camera() type(image) numpy.ndarray #Image is a numpy array mask = image < 87 image[mask]=255 plt.imshow(image, cmap='gray')
3 Scipy
Contoh penggunaan: Gunakan penapis Gaussian SciPy untuk mengaburkan imej:
from scipy import misc,ndimage face = misc.face() blurred_face = ndimage.gaussian_filter(face, sigma=3) very_blurred = ndimage.gaussian_filter(face, sigma=5) #Results plt.imshow(<image to be displayed>)
4 PIL (Python Imaging Library) ialah perpustakaan bahasa pengaturcaraan Python percuma yang menambah sokongan untuk membuka, memproses dan menyimpan banyak format fail imej yang berbeza. Walau bagaimanapun, perkembangannya telah terhenti dan kemas kini terakhirnya adalah pada tahun 2009. Nasib baik, PIL mempunyai garpu dalam pembangunan aktif yang dipanggil Bantal, yang sangat mudah dipasang. Bantal berjalan pada semua sistem pengendalian utama dan menyokong Python 3. Pustaka mengandungi fungsi pemprosesan imej asas, termasuk operasi titik, penapisan menggunakan set kernel konvolusi terbina dalam, dan penukaran ruang warna.
Contoh penggunaan: Gunakan ImageFilter untuk mempertingkatkan imej dalam Bantal:from PIL import Image, ImageFilter #Read image im = Image.open( 'image.jpg' ) #Display image im.show() from PIL import ImageEnhance enh = ImageEnhance.Contrast(im) enh.enhance(1.8).show("30% more contrast")
SimpleCV juga merupakan rangka kerja sumber terbuka untuk membina aplikasi penglihatan komputer. Ia menyediakan akses kepada perpustakaan penglihatan komputer berprestasi tinggi seperti OpenCV tanpa perlu terlebih dahulu memahami kedalaman bit, format fail atau ruang warna. Ia lebih mudah untuk dipelajari daripada OpenCV, dan seperti kata slogan mereka, "Ia menjadikan penglihatan komputer mudah." Beberapa perkara yang memihak kepada SimpleCV ialah:
Contoh penggunaan
Mahotas adalah satu lagi untuk visi Komputer dan perpustakaan pemprosesan imej untuk Python. Ia mengandungi fungsi pemprosesan imej tradisional (seperti penapisan dan operasi morfologi) serta fungsi penglihatan komputer yang lebih moden untuk pengiraan ciri (termasuk pengesanan titik minat dan deskriptor setempat). Antara muka adalah dalam Python, sesuai untuk pembangunan pesat, tetapi algoritma dilaksanakan dalam C++ dan dioptimumkan untuk kelajuan. Pustaka Mahotas adalah pantas, kodnya mudah, dan kebergantungannya (pada perpustakaan lain) adalah minimum. Adalah disyorkan untuk membaca dokumentasi rasmi mereka untuk mengetahui lebih lanjut.
Contoh Penggunaan
Pustaka Mahotas menggunakan kod mudah untuk menyelesaikan kerja. Untuk masalah "Mencari Wally", Mahotas melakukan kerja yang hebat dengan jumlah kod yang sangat kecil.
ITK (Segmentasi Wawasan dan Kit Alat Pendaftaran) ialah sistem silang platform sumber terbuka yang menyediakan pembangun dengan Satu set lengkap alat perisian untuk analisis imej. Antaranya, SimpleITK ialah lapisan ringkas yang dibina di atas ITK, bertujuan untuk mempromosikan penggunaannya dalam prototaip pantas, pendidikan dan bahasa skrip. SimpleITK ialah kit alat analisis imej dengan sejumlah besar komponen yang menyokong operasi penapisan umum, pembahagian imej dan pendaftaran. SimpleITK sendiri ditulis dalam C++, tetapi tersedia untuk sejumlah besar bahasa pengaturcaraan, termasuk Python.
Berikut ialah beberapa buku nota Jupyter yang menggambarkan cara menggunakan SimpleITK untuk aktiviti pendidikan dan penyelidikan. Buku nota menunjukkan cara menggunakan SimpleITK untuk analisis imej interaktif menggunakan bahasa pengaturcaraan Python dan R.
Contoh Penggunaan
Animasi di bawah ialah visualisasi proses pendaftaran CT/MR yang ketat yang dibuat menggunakan SimpleITK dan Python.
pgmagick ialah pembungkus berasaskan Python bagi pustaka GraphicsMagick. Sistem pemprosesan imej GraphicsMagick kadangkala dipanggil Pisau Tentera Swiss bagi pemprosesan imej. Ia menyediakan koleksi alat dan perpustakaan yang berkuasa dan cekap yang menyokong pembacaan, penulisan dan manipulasi imej dalam lebih daripada 88 format utama, termasuk format penting seperti DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM dan TIFF .
Contoh penggunaan: penskalaan imej, pengekstrakan tepi
Penskalaan imej
Pengestrakan tepi
Pycairo ialah satu set pengikatan ular sawa untuk perpustakaan grafik cairo. Kaherah ialah perpustakaan grafik 2D untuk melukis grafik vektor. Grafik vektor adalah menarik kerana ia tidak kehilangan kejelasan apabila diubah saiz atau diubah. Pustaka Pycairo boleh memanggil arahan cairo daripada Python.
Penggunaan: Pycairo boleh melukis garisan, bentuk asas dan kecerunan jejari.
Di atas ialah beberapa pustaka Python pemprosesan imej yang percuma dan sangat baik. Ada yang terkenal yang anda mungkin sudah tahu atau pernah menggunakannya, dan ada yang mungkin baru kepada anda. Kemudian tiba masanya untuk bermula sekarang dan mencubanya!
Atas ialah kandungan terperinci 10 Alat Pemprosesan Imej Terbaik dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!