Video: Review: Quiz 1 2025
Fail data yang tidak berstruktur terdiri daripada satu siri bit. Fail ini tidak memisahkan bit dari satu sama lain dengan cara apapun. Anda tidak boleh melihat ke dalam fail dan melihat struktur apa-apa kerana tidak ada yang dapat dilihat. Format fail yang tidak berstruktur bergantung kepada pengguna fail untuk mengetahui cara mentafsir data.
Sebagai contoh, setiap piksel fail gambar boleh terdiri daripada tiga medan 32-bit. Mengetahui bahawa setiap bidang adalah 32 bit yang terpulang kepada anda. Tandukan pada permulaan fail mungkin memberi petunjuk tentang menafsirkan fail itu, tetapi walaupun begitu, terpulang kepada anda untuk mengetahui cara berinteraksi dengan fail tersebut.
Contoh ini menunjukkan bagaimana untuk bekerja dengan gambar sebagai fail tidak berstruktur. Imej contohnya adalah tawaran domain awam dari komun. wikimedia. org. Untuk bekerja dengan imej, anda perlu mengakses pustaka imej-imej, yang merupakan koleksi percuma algoritma yang digunakan untuk pemprosesan imej. Berikut adalah tutorial untuk perpustakaan ini.
Tugas pertama adalah untuk dapat memaparkan imej pada skrin dengan menggunakan kod berikut. (Kod ini memerlukan sedikit masa untuk dijalankan. Imej siap apabila penunjuk sibuk menghilang dari tab Notebook IPython.)
dari sketch. io import imread
dari skimage. ubah saiz import
daripada import impot matplotlib sebagai plt
import matplotlib. cm sebagai cm
example_file = (" // upload. wikimedia.org /" +
"wikipedia / commons / 7 / 7d / Dog_face.png" Benar)
plt. imshow (imej, cmap = cm kelabu)
Kod bermula dengan mengimport beberapa perpustakaan. Ia kemudian membuat rentetan yang menunjuk ke contoh fail dalam talian dan meletakkannya di
example_file
. Rentetan ini adalah sebahagian daripada panggilan kaedah
imread ()
, bersama dengan
as_grey
, yang ditetapkan kepada
Benar
. Argumen
as_grey
memberitahu Python untuk menjadikan imej warna menjadi skala kelabu. Mana-mana imej yang sudah berada dalam grayscale kekal seperti itu.
Sekarang bahawa anda mempunyai imej yang dimuatkan, sudah tiba masanya untuk menjadikannya (bersiap untuk dipaparkan pada skrin. Fungsi
imshow ()
melakukan rendering dan menggunakan peta warna skala kelabu. > menunjukkan ()
berfungsi sebenarnya memaparkan
imej
untuk anda.
Imej muncul pada skrin selepas anda membuat dan memaparkannya
Tutup imej apabila anda selesai melihatnya. (Asterisk dalam
entri memberitahu anda bahawa kod itu masih berjalan dan anda tidak boleh beralih ke langkah seterusnya.) Tindakan penutupan imej menamatkan segmen kod. kini mempunyai imej dalam memori, dan anda mungkin ingin mengetahui lebih lanjut mengenainya.Apabila anda menjalankan kod berikut, anda dapat melihat jenis dan saiz imej:
print ("jenis data:% s, bentuk:% s"%
(jenis (imej), imej bentuk) Output dari panggilan ini memberitahu anda bahawa jenis imej adalah
numpy. ndarray
dan saiz imej adalah 90 piksel dengan 90 piksel. Imej sebenarnya adalah pelbagai piksel yang anda boleh memanipulasi dalam pelbagai cara. Sebagai contoh, jika anda ingin memajukan imej, anda boleh menggunakan kod berikut untuk memanipulasi array imej:
image2 = image [5: 70, 0: 70]
plt. imshow (image2, cmap = cm kelabu)
plt. tunjukkan ()
The
numpy. ndarray
di
image2
lebih kecil daripada yang ada di
gambar
, jadi output juga lebih kecil. Keputusan biasa ditunjukkan di bawah. Tujuan penanaman imej adalah untuk menjadikannya saiz tertentu. Kedua-dua imej mestilah saiz yang sama untuk anda menganalisisnya. Tanaman adalah salah satu cara untuk memastikan bahawa imej adalah ukuran yang tepat untuk analisis.
Memotong imej menjadikannya lebih kecil.
Kaedah lain yang anda boleh gunakan untuk menukar saiz imej ialah mengubah saiznya. Kod berikut mengubah saiz imej kepada saiz tertentu untuk analisis:
image3 = saiz semula (image2, (30, 30), mod = "terdekat")
(jenis (image3), image3 bentuk))
Output dari < Fungsi print ()
memberitahu anda bahawa imej kini 30 piksel dengan saiz 30 piksel. Anda boleh membandingkannya dengan mana-mana imej dengan dimensi yang sama.
Selepas anda mempunyai semua imej dalam saiz yang betul, anda perlu meratakannya. Barisan tetapkan data sentiasa dimensi tunggal, bukan dua dimensi. Imej itu pada masa ini adalah 30 piksel sebanyak 30 piksel, jadi anda tidak boleh menjadikannya sebahagian daripada set data. Kod berikut meratakan
image3
supaya ia menjadi pelbagai 900 elemen yang disimpan dalam
image_row
:
image_row = image3. meratakan ()
cetak ("jenis data:% s, bentuk:% s"%
(jenis (image_row), image_row bentuk))
ndarray
. Anda boleh menambah array ini pada set data dan kemudian gunakan set data untuk tujuan analisis. Saiznya 900 elemen, seperti yang dijangkakan.
