- Apa itu Imej?
- Bagaimana komputer menyimpan gambar
- Mengapa mesin sukar mengenal pasti gambar
- Aplikasi dan penggunaan OpenCV
- Memasang OpenCV dengan Python dan Anaconda
- Membuka dan Menyimpan gambar di OpenCV
- Imej Skala Kelabu di OpenCV
- Ruang Warna
- Meneroka komponen individu gambar RGB
- Menukar gambar menjadi komponen RGB individu
- Histogram Perwakilan Imej
- Melukis Imej dan Bentuk menggunakan OpenCV
Seni adalah cara melihat, dan mereka mengatakan melihat adalah percaya, tetapi sebaliknya juga berlaku, percaya adalah melihat dan sangat sukar untuk membayangkan hidup di dunia ini tanpa pemberian penglihatan - mata kita, betapa indahnya menjadi bayi ketika mata kita hanya terbuka kita melihat dunia dan mula mengenali dan melihat dunia di sekeliling kita tetapi seiring dengan berlalunya waktu, pengalaman indah yang sama menjadi perkara biasa. Tetapi ketika kita maju dengan teknologi, kita berada di ambang di mana mesin juga dapat melihat dan memahaminya. Pada masa ini, nampaknya ini bukan sci-fi jika anda membuka kunci telefon dengan wajah anda, tetapi kisah perkembangan penglihatan mesin ini telah wujud sejak lebih dari 20 tahun.
Langkah formal awal dalam bidang ini diambil pada tahun 1999 dalam inisiatif Intel, ketika semua penelitian yang dilakukan dikolaborasikan di bawah OPEN CV (Open Source computer vision), yang awalnya ditulis dalam C ++, dengan peluncuran utama pertama 1.0 pada tahun 2006 pada tahun 2009, ketiga pada tahun 2015 dan keempat baru pada tahun 2018. Kini OpenCV mempunyai antara muka C ++, Python dan Java dan menyokong Windows, Linux, Mac OS, iOS dan Android. Oleh itu, ia boleh dipasang dengan mudah di Raspberry Pi dengan persekitaran Python dan Linux. Dan Raspberry Pi dengan OpenCV dan kamera terpasang dapat digunakan untuk membuat banyak aplikasi pemprosesan gambar masa nyata seperti Pengesanan wajah, kunci muka, penjejakan objek, pengesanan plat nombor kereta, sistem keselamatan Rumah dll.
Sebelum belajar memproses gambar menggunakan openCV, penting untuk mengetahui apa gambar dan bagaimana manusia dan mesin melihat gambar tersebut.
Apa itu Imej?
Imej adalah perwakilan dua dimensi dari spektrum cahaya yang dapat dilihat. Dan spektrum cahaya yang dapat dilihat hanyalah sebahagian daripada spektrum elektromagnetik yang terletak di antara spektrum inframerah dan ultraviolet.
Bagaimana gambar terbentuk: - ketika cahaya memantulkan objek ke filem, sensor atau retina.
Ini adalah bagaimana mata kita berfungsi, menggunakan penghalang untuk menyekat titik cahaya yang paling banyak meninggalkan bukaan kecil di mana cahaya dapat melewati ia disebut sebagai bukaan, dan ia membentuk gambar yang sangat fokus dan merupakan model yang berfungsi untuk kamera lubang pin, tetapi ada masalah pada kamera lubang pin, jumlah cahaya yang sama akan memasuki bukaan, yang tidak sesuai untuk filem atau gambar yang terbentuk juga kita tidak dapat mendapatkan gambar yang fokus, sehingga untuk memfokuskan gambar kita perlu memindahkan filem berulang-alik, tetapi ini bermasalah dalam banyak keadaan.
Atau kita boleh menyelesaikan masalah ini dengan menggunakan lensa, ini memungkinkan kita untuk mengawal ukuran apertur, dan dalam fotografi yang dikenali sebagai f Stop, umumnya menurunkan nilai f Stop lebih baik dalam fotografi.
Ukuran bukaan juga memungkinkan kita masuk ke kedalaman bidang yang bagus yang disebut sebagai Bokeh dalam fotografi, ia membolehkan kita mempunyai latar belakang kabur ketika kita fokus pada gambar.
Bagaimana komputer menyimpan gambar
Anda mungkin pernah mendengar pelbagai format gambar seperti.png,.jpgG dan lain-lain. Semua ini adalah perwakilan digital dari dunia analog kita, komputer melakukannya dengan menterjemahkan gambar ke dalam kod digital untuk penyimpanan dan kemudian menafsirkan kembali fail tersebut menjadi gambar untuk paparan. Tetapi pada asasnya mereka menggunakan platform umum untuk menyimpan gambar, dan hal yang sama berlaku untuk openCV.
OpenCV menggunakan ruang warna RGB (merah, hijau dan biru) secara lalai untuk gambarnya, di mana setiap koordinat piksel (x, y) mengandungi 3 nilai antara intensiti dalam bentuk 8-bit iaitu (0-255, 2 8).
Menggabungkan intensiti yang berbeza dari setiap warna memberi kita spektrum penuh, sebab itulah dalam lukisan atau seni ketiga warna ini dianggap sebagai warna primer dan semua yang lain sebagai warna sekunder, kerana kebanyakan warna sekunder dapat dibentuk oleh warna primer. Seperti kuning, kami mempunyai nilai berikut: Merah - 255; Hijau - 255; Biru - 0.
Kini gambar disimpan dalam tatasusunan pelbagai dimensi. Dalam pengaturcaraan, susunan adalah rangkaian koleksi objek. Dan di sini kita berurusan dengan tiga jenis tatasusunan 1D, 2D dan 3D di mana 'D' bermaksud dimensi.
Gambar berwarna disimpan dalam susunan tiga dimensi, di mana dimensi ketiga mewakili warna RGB (yang akan kita lihat kemudian), dan bersama-sama mereka membentuk intensiti piksel yang berbeza untuk suatu gambar, sementara gambar hitam & putih disimpan dalam tatasusunan dua dimensi dan juga terdapat dua jenis gambar hitam & putih Skala kelabu dan gambar binari.
Imej skala kelabu terbentuk dari warna kelabu dari array dua dimensi, sementara gambar biner adalah piksel sama ada hitam atau putih.
Mengapa mesin sukar mengenal pasti gambar
Penglihatan komputer adalah tugas yang mencabar dengan sendirinya, anda sendiri boleh membayangkan betapa sukarnya memberi penglihatan, pengiktirafan dan pengenalan kepada mesin. Faktor berikut ada yang menjadikan penglihatan komputer menjadi sukar.
- Batasan sensor kamera dan lensa
- Lihat variasi titik
- Menukar pencahayaan
- Penskalaan
- Kesimpulan
- Variasi kelas objek
- Imej yang tidak jelas / Ilusi Optik
Aplikasi dan penggunaan OpenCV
Walaupun sukar, Visi Komputer mempunyai banyak kisah kejayaan
- Navigasi Robotik - Kereta Memandu Sendiri
- Pengesanan & Pengecaman Muka
- Carian Imej Mesin Carian
- Bacaan Plat
- Pengiktirafan Tulisan Tangan
- Penapis Snapchat & Muka
- Pengecaman Objek
- Penjejakan Bola & Pemain dalam Sukan
- Dan banyak lagi!
Memasang OpenCV dengan Python dan Anaconda
OpenCV ditulis dalam C ++, tetapi sangat sukar untuk menerapkannya dengan C ++ dan oleh itu kami memilih untuk menerapkannya dengan bahasa tingkat tinggi sebagai python, dan juga ada faedah tambahan untuk menerapkan OpenCV dengan python kerana Python adalah salah satu bahasa yang paling mudah untuk pemula juga Ia sangat kuat untuk aplikasi sains data dan pembelajaran mesin dan juga menyimpan gambar dalam susunan numpy yang membolehkan kita melakukan beberapa operasi yang sangat kuat dengan mudah.
Pengaturcaraan asas berguna dengan Exposure to High School Level Math, kamera web, Python 2.7 atau 3.6 (Pakej Anaconda lebih disukai).
Langkah 1. Muat turun & Pasang Pakej Anaconda Python
Pergi ke: https://www.anaconda.com/download dan pilih mengikut keadaan mesin anda dengan tetingkap, Linux atau mac dan anda boleh memilih untuk versi python 2.7 atau python 3.7 untuk sistem 64 Bit atau sistem 32 Bit, tetapi sekarang sehari kebanyakan sistem adalah 64 bit.
Pengagihan python Anaconda dilengkapi dengan studio Spyder, notebook jupyter dan anaconda prompt, yang menjadikan python sangat mesra untuk digunakan. Kami akan menggunakan studio pengintip untuk membuat contoh.
Pilihan antara python 2.7 atau 3.7 benar-benar neutral, tetapi bagaimanapun untuk contoh kita akan menggunakan python 3.7 kerana ini adalah masa depan python dan akan mengambil alih python 2.7 dari 2020, juga sebahagian besar perpustakaan sedang dikembangkan di python 3.7 menjaga aspek masa depan python dalam fikiran. Ia juga memberikan hasil yang diharapkan pada operasi matematik asas seperti (2/5 = 2.5), sedangkan ular sawa 2.7 akan mengevaluasinya menjadi 2. Juga mencetak dianggap sebagai fungsi dalam ular sawa 3.7 (cetak ("hello")), jadi ini memberi langsung kepada pengaturcara.
Langkah 2. Membuat platform maya dengan OpenCV
Kami akan memasang OpenCV dengan membuat platform maya untuk spyder dengan menggunakan arahan Anaconda dan fail YML yang dimuat naik di sini.
Dengan fail YML, kami akan memasang semua pakej dan perpustakaan yang diperlukan, tetapi jika anda ingin memasang pakej tambahan, anda boleh memasang dengan mudah melalui arahan anaconda, dengan menjalankan perintah pakej itu.
Pergi ke ikon carian tetingkap anda dan cari terminal cepat anaconda, anda boleh mencarinya di dalam folder anaconda yang baru anda pasang.
Kemudian anda mesti mencari fail YML yang anda muat turun, dan dari sini anda mempunyai dua pilihan sama ada menukar direktori terminal anda ke lokasi di mana fail YML anda dimuat turun atau menyalin fail YML anda ke direktori di mana kebanyakan anaconda anda dipasang sekiranya terdapat di dalam C: \ drive, setelah menyalin fail YML anda ke lokasi yang ditentukan JALANKAN perintah berikut pada prompt anda
conda env buat –f virtual_platform_windows.yml
Oleh kerana sistem saya berjalan pada windows, fail YML dan perintahnya sesuai dengan windows, namun anda dapat mengubahsuai sesuai dengan sistem anda dengan mengganti windows dengan linux atau mac masing-masing.
Catatan: - Sekiranya pengekstrakan paket memberikan ralat, pasang pytorch dan numpy terlebih dahulu dan kemudian jalankan perintah di atas.
Sekarang cari navigator anaconda dan akan ada menu drop down "Aplikasi pada ___" dan dari sana pilih persekitaran maya dan kemudian dari sana anda harus melancarkan Spyder studio.
Dan itu sahaja, anda sudah bersedia untuk memulakan!
Membuka dan Menyimpan gambar di OpenCV
Di sini kami menerangkan beberapa perintah dan terminologi asas untuk menggunakan Python di OpenCV. Kami akan belajar mengenai tiga fungsi asas dalam OpenCV imread, imshow dan imwrite.
#komen di python diberi simbol #
Import opencv dalam python dengan arahan
import cv2
Muatkan gambar menggunakan 'imread' yang menentukan jalan ke gambar
gambar = cv2.imread ('input.jpg')
Sekarang gambar itu dimuat dan disimpan di python sebagai pemboleh ubah yang kami namakan sebagai gambar
Sekarang untuk memaparkan pemboleh ubah gambar kami, kami menggunakan 'imshow' dan parameter pertama untuk fungsi imshow adalah judul yang ditunjukkan pada tetingkap gambar, dan harus dimasukkan ke dalam ('') untuk mewakili nama sebagai string
cv2.imshow ('hello world', gambar)
tombol tunggu membolehkan kami memasukkan maklumat apabila tetingkap gambar dibuka, dengan membiarkannya kosong, hanya menunggu kekunci ditekan sebelum meneruskan, dengan meletakkan nombor (kecuali 0), kami dapat menentukan kelewatan untuk berapa lama anda membiarkan tetingkap terbuka (waktu dalam milisaat di sini).
cv2.waitKey ()
'destrAllWindows' menutup semua tetingkap yang terbuka, kegagalan meletakkan ini akan menyebabkan program anda digantung.
cv2.destroyAllWindows ()
, untuk ini kita akan menggunakan numpy, numpy adalah perpustakaan untuk pengaturcaraan python untuk menambahkan sokongan pada tatasusunan dan matriks multidimensi yang besar.
import cv2 #importing numpy import numpy sebagai np image = cv2.imread ('input.jpg') cv2.imshow ('hello_world', image) #shape function sangat berguna apabila kita melihat dimensi array, ia mengembalikan tuple yang memberikan dimensi cetakan gambar (image.shape) cv2.waitKey () cv2.destroyAllWindows ()
output konsol - (183, 275, 3), Dua dimensi gambar adalah tinggi 183 piksel dan lebar 275 piksel dan 3 bermaksud terdapat tiga komponen lain (R, G, B) yang menjadikan gambar ini (ia menunjukkan bahawa gambar berwarna disimpan dalam susunan tiga dimensi).
cetak ('Tinggi gambar:', (image.shape, 'pixels')) cetak ('Lebar gambar:', (image.shape, 'pixels'))
output konsol - Tinggi gambar: (183, 'piksel')
Lebar gambar: (275, 'piksel')
Menyimpan gambar yang diedit di OpenCV
Kami menggunakan 'imwrite' untuk menentukan nama fail dan gambar yang akan disimpan.
cv2.imwrite ('output.jpg', gambar) cv2.imwrite ('output.png', gambar)
Argumen pertama adalah nama fail yang ingin kita simpan, {untuk membaca atau menyimpan fail yang kita gunakan ('') untuk menunjukkannya sebagai rentetan} dan argumen kedua adalah nama fail.
OpenCV membolehkan anda menyimpan gambar dalam format yang berbeza.
Imej Skala Kelabu di OpenCV
Greyscaling adalah proses di mana gambar ditukar dari warna penuh ke warna kelabu (hitam dan putih)
Dalam opencv, banyak fungsi mengecilkan gambar gambar sebelum memproses. Ini dilakukan kerana mempermudah gambar, bertindak hampir sebagai pengurangan kebisingan dan meningkatkan masa pemprosesan kerana terdapat kurang maklumat dalam gambar (kerana gambar skala kelabu disimpan dalam susunan dua dimensi).
import cv2 # muatkan gambar gambar input kami = cv2.imread ('input.jpg') cv2.imshow ('original', image) cv2.waitKey () #kami menggunakan cvtcolor, untuk menukar ke kelabu kelabu_image = cv2.cvtColor (gambar, cv2.COLOR_BGR2GRAY) cv2.imshow ('grayscale', gray_image) cv2.waitKey () cv2.destroyALLWindows ()
Cara yang lebih mudah untuk menukar gambar menjadi skala kelabu adalah dengan menambahkan argumen 0 dalam fungsi imread selain nama gambar
import cv2 grey_image = cv2.imread ('input.jpg', 0) cv2.imshow ('grayscale', grey_image) cv2.waitKey () cv2.destroyAllWindows ()
import cv2 import numpy sebagai np image = cv2.imread ('input.jpg') print (image.shape) cv2.imshow ('original', image) cv2.waitKey () gray_image = cv2.cvtColor (gambar, cv2.COLOR_BGR2GRAY) cv2.imshow ('skala kelabu', gray_image) cetak (gray_image.shape) cv2.waitKey () cv2.destroyALLWindows ()
Output konsol: - (183, 275, 3) - untuk gambar berwarna
(183, 275) - untuk gambar skala kelabu
Oleh itu jelas menunjukkan bahawa gambar berwarna diwakili oleh susunan tiga dimensi, sementara gambar skala kelabu oleh tatasusunan dua dimensi.
Ruang Warna
Ruang warna adalah cara gambar disimpan. RGB, HSV, CMYK adalah ruang warna yang berbeza, ini hanyalah cara mudah untuk mewakili warna.
RGB - Merah, Hijau dan Biru.
HSV - Warna, Ketepuan dan Nilai.
Dan CMYK biasanya digunakan dalam pencetak inkjet.
Ruang warna RGB atau BGR
Ruang warna lalai OpenCV adalah RGB. RGB adalah model warna aditif yang menghasilkan warna dengan menggabungkan warna biru, hijau dan merah dengan intensiti / kecerahan yang berbeza. Dalam OpenCV kami menggunakan kedalaman warna 8 bit.
- Merah (0-255)
- Biru (0-255)
- Hijau (0-255)
Walau bagaimanapun OpenCV sebenarnya menyimpan warna dalam format BGR.
Fakta Menyeronokkan: - Kami menggunakan pesanan BGR di komputer kerana bagaimana bilangan bulat 32-bit yang tidak ditandatangani disimpan dalam memori, ia tetap disimpan sebagai RGB. Bilangan bulat yang mewakili warna misalnya: - 0X00BBGGRR akan disimpan sebagai 0XRRGGBB.
Ruang warna HSVHSV (Warna, Ketepuan & nilai / Kecerahan) adalah ruang warna yang cuba mewakili warna yang manusia rasakan. Ia menyimpan maklumat warna dalam bentuk silinder dari titik warna RGB.
Hue - nilai warna (0-179)
Ketepuan - Kegemilangan warna (0-255)
Nilai - Kecerahan atau intensiti (0-255)
Format ruang warna HSV berguna dalam segmentasi warna. Dalam RGB, menyaring warna tertentu tidak mudah, namun HSV menjadikannya lebih mudah untuk menetapkan julat warna untuk menyaring warna tertentu seperti yang kita rasakan.
Hue mewakili warna dalam HSV, nilai rona berkisar antara 0 - 180 dan bukan 360 sehingga tidak melengkapkan bulatan penuh sehingga dipetakan secara berbeza daripada yang standard.
Penapis julat warna
- Merah - (165-15)
- Hijau - (45-75)
- Biru - (90-120)
Seperti yang kita tahu gambar yang disimpan di ruang warna RGB (Merah, Hijau dan Biru) dan OpenCV menunjukkan kepada kita sama, tetapi perkara pertama yang perlu diingat mengenai format RGB opencv adalah bahawa ia sebenarnya BGR dan kita dapat mengetahuinya dengan melihat bentuk gambar.
import cv2 import numpy sebagai np image = cv2.imread ('input.jpg') # B, G, R nilai untuk cetakan pertama 0,0 piksel B, G, R = cetakan gambar (B, G, R) (gambar.shape) #sekarang jika kita menerapkannya pada gambar skala abu-abu grey_img = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY) print (gray_img.shape) #gray_image pixel value for 10,50 pixel print (grey_img)
Output Konsol: cetak (B, G, R) - 6 11 10
cetak (gambar. bentuk) - (183, 275, 3)
cetak (grey_img.shape) - (183, 275)
cetak (grey_img) - 69
Sekarang hanya ada dua dimensi dalam gambar skala kelabu, kerana kita ingat gambar warna disimpan dalam tiga dimensi, dimensi ketiga adalah (R, G, B) sedangkan dalam skala abu-abu hanya ada dua dimensi, kerana (R, G, B) tidak ada dan untuk kedudukan piksel tertentu kita hanya mendapat satu nilai sedangkan pada gambar berwarna kita mendapat tiga nilai.
Ruang warna lain yang berguna ialah HSV
import CV2 imej = cv2.imread ('input.jpg') hsv_image = cv2.cvtColor (imej, cv2.COLOR_BGR2HSV) cv2.imshow ('HSV imej', hsv_image) cv2.imshow ('saluran Hue', hsv_image) CV2. imshow ('saturation channel', hsv_image) cv2.imshow ('value channel', hsv_image) cv2.waitKey () cv2.destroyAllWindows ()
Setelah menjalankan kod, anda dapat melihat empat gambar di mana tiga dari masing-masing saluran dan satu adalah gabungan gambar HSV.
Gambar saluran rona agak gelap kerana nilainya hanya berbeza dari 0 hingga 180.
Juga, perhatikan bahawa fungsi imshow cuba menunjukkan gambar RGB atau BGR, tetapi penukaran HSV bertindih.
Juga, saluran nilai akan serupa dengan skala warna abu-abu kerana kecerahannya.
Meneroka komponen individu gambar RGB
import cv2 image = cv2.imread ('input.jpg') # fungsi split opencv membelah gambarinti setiap indeks warna B, G, R = cv2.split (gambar) cv2.imshow ("Merah", R) cv2.imshow ("Hijau", G) cv2.imshow ("Biru", B) #membuat gambar asal dengan menggabungkan komponen warna individu digabungkan = cv2.merge () cv2.imshow ("digabungkan", digabungkan) #menguatkan warna biru bergabung = cv2.merge () cv2.imshow ("digabungkan dengan biru menguatkan", bergabung) # menggambarkan bentuk komponen warna individu. # keluarannya hanya dua dimensi yang tinggi dan lebarnya, kerana elemen ketiga komponen RGB diwakili cetakan cetak (B.shape) (R.bentuk) cetak (G.shape) cv2.waitKey (0) cv2.destroyAllWindows ()
Output konsol: #dimensi gambar dari fungsi bentuk
(183, 275)
(183, 275)
(183, 275)
Menukar gambar menjadi komponen RGB individu
Dalam kod di bawah ini, kami telah membuat matriks sifar dengan dimensi gambar HxW, sifar mengembalikan array yang diisi dengan sifar tetapi dengan dimensi yang sama.
Fungsi bentuk sangat berguna ketika kita melihat dimensi gambar, dan di sini kita telah melakukan pemotongan fungsi bentuk itu. Jadi bentuk akan merebut semuanya hingga titik yang ditentukan iaitu hingga titik yang ditentukan kedua yang akan tinggi dan lebar gambar kerana ketiga mewakili komponen gambar RGB dan kita tidak memerlukannya di sini.
import cv2 import numpy sebagai np image = cv2.imread ('input.jpg') B, G, R = cv2.split (image) nol = np.zeros (image.shape, dtype = "uint8") cv2.imshow ("RED", cv2.merge ()) cv2.imshow ("Green", cv2.merge ()) cv2.imshow ("Blue", cv2.merge ()) cv2.waitKey (0) cv2.destroyAllWindows ()
Histogram Perwakilan Imej
Histogram representasi gambar adalah kaedah memvisualisasikan komponen gambar.
Kod berikut membolehkan anda menganalisis gambar melalui histogram warna komponen gabungan dan warna masing-masing.
import cv2 import numpy sebagai np #kita perlu mengimport matplotlib untuk membuat plot histogram import matplotlib.pyplot sebagai plt image = cv2.imread ('input.jpg') histogram = cv2.calcHist (,, Tidak ada,,) #kita merancang histogram, ravel () meratakan array gambar kita plt.hist (image.ravel (), 256,) plt.show () #viewing saluran warna yang terpisah warna = ('b', 'g', 'r') #kita tahu pisahkan warna dan plot masing-masing dalam histogram untuk i, col dalam bilangan ( warna): histogram2 = cv2.calcHist (,, Tiada,) plt.plot (histogram2, color = col) plt.xlim () plt.show ()
Mari kita fahami fungsi calcHist dengan setiap parameternya
cv2.calcHist (gambar, saluran, topeng, histize , julat)
Imej: ini adalah gambar sumber jenis uint 8 atau float 32. Ia harus diberikan dalam tanda kurung persegi, yaitu "", yang juga menunjukkan susunan tingkat kedua kerana gambar untuk opencv adalah data dalam bentuk array.
Saluran: ia juga diberikan dalam kurungan persegi. Ini adalah indeks saluran yang mana kita menghitung histogram, misalnya jika input adalah gambar skala abu-abu nilainya, untuk gambar warna yang dapat anda lalui, atau untuk mengira histogram saluran biru, hijau dan merah masing-masing.
Topeng: gambar topeng. untuk mencari histogram gambar penuh, ia diberikan sebagai "tidak ada". tetapi jika anda ingin mencari histogram kawasan gambar tertentu, anda harus membuat gambar topeng untuk itu dan memberikannya sebagai topeng.
Histize: Ini mewakili kiraan BIN kami. Perlu diberikan dalam tanda kurung persegi untuk skala penuh yang kita lalui.
Julat: Ini adalah jangkauan kami, biasanya
Melukis Imej dan Bentuk menggunakan OpenCV
Berikut adalah beberapa Contoh untuk melukis garis, segi empat tepat, poligon, bulatan dan lain-lain dalam OpenCV.
import cv2 import numpy sebagai np #creating the black square image = np.zeros ((512,512,3), np.uint8) # kita juga dapat membuatnya dalam warna hitam dan putih, namun tidak akan ada perubahan image_bw = np.zeros ((512,512), np.uint8) cv2.imshow ("segi empat hitam (warna)", gambar) cv2.imshow ("segi empat hitam (B&W)", image_bw)
Garisan
#ciptakan garis di atas kotak hitam # cv2.line (gambar, koordinat permulaan, koordinat akhir, warna, ketebalan) #melukis garis ketebalan pepenjuru 5 piksel gambar = np.zeros ((512,512,3), np.uint8) cv2.line (gambar, (0,0), (511,511), (255,127,0), 5) cv2.imshow ("garis biru", gambar)
Segi empat tepat
# buat segi empat tepat di atas kotak hitam # cv2. segi empat tepat (gambar, koordinat permulaan, koordinat akhir, warna, ketebalan) #melukis segi empat tepat dengan ketebalan 5 piksel gambar = np.zeros ((512,512,3), np.uint8) cv2. segiempat tepat (gambar, (30,50), (100,150), (255,127,0), 5) cv2.imshow ("segi empat tepat", gambar)
Bulatan#ciptakan lingkaran di atas kotak hitam # cv2.circle (gambar, tengah, jejari, warna, isi) gambar = np.zeros ((512,512,3), np.uint8) cv2.circle (gambar, (100,100), (50), (255,127,0), - 1) cv2.imshow ("bulatan", gambar)
Poligon#creating poligon image = np.zeros ((512,512,3), np.uint8) #lets menentukan empat titik pts = np.array (,,,], np.int32) #let kini membentuk semula titik kami dalam bentuk yang diperlukan oleh polylines pts = pts.reshape ((- 1,1,2)) cv2. polylines (gambar,, Benar, (0,255,255), 3) cv2.imshow ("poligon", gambar)
Teks#puting teks menggunakan opencv # cv2.putText (gambar, 'text to display', titik permulaan kiri bawah, fon, saiz fon, warna, ketebalan) image = np.zeros ((512,512,3), np.uint8) cv2. putText (gambar, "hello world", (75,290), cv2.FONT_HERSHEY_COMPLEX, 2, (100,170,0), 3) cv2.imshow ("hello world", gambar) cv2.waitKey (0) cv2.destroyAllWindows ()
Visi Komputer dan OpenCV adalah topik yang sangat luas untuk dibincangkan tetapi panduan ini akan menjadi titik permulaan yang baik untuk mempelajari OpenCV dan pemprosesan imej.