Cara mengonversi aliran webcam menjadi gambar garis hitam putih menggunakan OpenCV dan Python. Juga, cara menyesuaikan parameter saat menjalankan streaming langsung
Lihat hasilnya di sini
Hal-hal yang perlu Anda gunakan
Ada dua hal yang perlu Anda gunakan untuk mendapatkan gambar garis yang bagus dari gambar Anda
- untuk memuluskan gambar, karena garis pendeteksi sensitif terhadap noise
- yang mendeteksi garis
Gaussian blur disarankan menggunakan filter 5×5. Canny kemudian harus melakukan ambang parameter. Untuk menemukan nilai optimal untuk setelan Anda, kami telah memasukkan dua trackbar tempat Anda dapat menyetelnya ke nilai apa pun seperti melihat hasilnya
Dalam tutorial OpenCV dengan Python ini, kita akan membahas cara menggambar berbagai bentuk pada gambar dan video Anda. Sangat umum untuk ingin menandai objek yang terdeteksi dengan cara tertentu, jadi kita sebagai manusia dapat dengan mudah melihat apakah program kita berfungsi seperti yang kita harapkan. Contohnya adalah salah satu gambar yang ditampilkan sebelumnya
Untuk contoh sementara ini, saya akan menggunakan gambar berikut
Anda dianjurkan untuk menggunakan gambar Anda sendiri. Seperti biasa, kode awal kita bisa seperti ini
import numpy as np import cv2 img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)Selanjutnya, kita bisa mulai menggambar, seperti
cv2.line(img,(0,0),(150,150),(255,255,255),15) cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows()_CV2. line() mengambil parameter berikut. dimana, koordinat awal, koordinat akhir, warna (bgr), ketebalan garis
Hasilnya di sini
Baiklah, keren, mari menjadi absurd dengan beberapa bentuk lagi. Selanjutnya, persegi panjang
cv2.rectangle(img,(15,25),(200,150),(0,0,255),15)Parameter disini adalah gambar, koordinat kiri atas, koordinat kanan bawah, warna, dan ketebalan garis
Bagaimana dengan lingkaran?
cv2.circle(img,(100,63), 55, (0,255,0), -1)Parameter disini adalah gambar/bingkai, pusat lingkaran, jari-jari, warna, dan kemudian ketebalan. Perhatikan kami memiliki -1 untuk ketebalan. Artinya objek tersebut akan benar-benar terisi, jadi kita akan mendapatkan lingkaran yang terisi
Garis, persegi panjang, dan lingkaran semuanya keren, tetapi bagaimana jika kita menginginkan segi lima, atau segi delapan, atau segi delapan?. Tidak masalah
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32) # OpenCV documentation had this code, which reshapes the array to a 1 x 2. I did not # find this necessary, but you may: #pts = pts.reshape((-1,1,2)) cv2.polylines(img, [pts], True, (0,255,255), 3)_Pertama, kita beri nama pts, kependekan dari poin, sebagai susunan koordinat yang numpy. Kemudian, kami menggunakan cv2. polyline untuk menggambar garis. Parameternya adalah sebagai berikut. ke mana objek ditarik, koordinatnya, haruskah kita "menghubungkan" titik akhir dan awal, warna, dan lagi ketebalannya
Pada artikel ini, kita akan membahas cara menggunakan cv2. fungsi line() di OpenCV Python untuk menggambar garis. Anda mungkin perlu menggunakan OpenCV untuk menggambar garis guna menandai objek dalam gambar atau untuk penggunaan kreatif lainnya. Kami akan membahas cv2. sintaks line() dengan beberapa contoh untuk membantu pemula memahaminya dengan lebih baik
Baris di OpenCV Python. cv2. garis()
Menggunakan cv2. line() di OpenCV Python, kita dapat dengan mudah membuat garis. Mari kita lihat sintaks untuk fungsi ini —
cv2. baris(img, pt1, pt2,warna,ketebalan,geser)
Sintaksis
- img – Gambar di mana garis harus digambar
- pt1 - Titik awal garis
- pt2 – Titik akhir garis
- warna – Warna garis
- ketebalan – Ketebalan garis
- lineType – Jenis garis
- bergeser – Tidak. bit pecahan dari koordinat titik
Fungsi ini menggambar garis pada gambar aslinya, artinya garis tersebut digambar secara permanen pada gambar
Contoh cv2. baris() di Python OpenCV
Impor Perpustakaan yang Diperlukan
Mari kita mulai dengan contoh dengan mengimpor pustaka yang diperlukan, seperti yang ditunjukkan di bawah ini
Iklan
Di [1]
import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inlineFungsi Utilitas untuk Membuat Gambar Kosong
Kami akan menulis fungsi utilitas yang menghasilkan gambar 512 × 512 kosong dengan tiga saluran warna tempat kami menggambar garis sebagai contoh
Di [2]
def generate_empty_image(): return np.ones(shape=(512,512,3), dtype=np.int16)_Mari kita periksa fungsi ini dengan memanggilnya di bawah ini. Ini akan bertindak sebagai kanvas tempat kita dapat menggambar garis menggunakan fungsi cv2 lines
Di [3]
sample_img = generate_empty_image() plt.imshow(sample_img)Keluar[3]
Contoh 1. Gambar Garis Sederhana dengan cv2. garis()
Pada contoh pertama, kita akan menggambar garis sederhana dengan hanya menggunakan parameter wajib dari fungsi cv2 line()
Di sini kita telah melewati koordinat awal dan akhir garis (masing-masing pt1 dan pt2) bersama dengan parameter warna sebagai hijau (0,255,0)
Dapat dilihat bahwa garis pada keluaran sangat tipis dan nyaris tidak terlihat. Ini karena kami belum melewati nilai ketebalan dan secara default diambil sebagai 1 yang menghasilkan garis yang sangat tipis
Di [4]
image1 = generate_empty_image() pt1 = (100, 100) pt2 = (400, 350) color = (0, 255, 0) cv2.line(image1, pt1, pt2,color) plt.imshow(image1)_Keluar[4]
Contoh – 2. Gambar Garis dengan Ketebalan dengan cv2. garis()
Mari kita perpanjang contoh di atas dan sertakan parameter ketebalan dalam fungsi cv2 line(). Terlihat garis tebal dan terlihat jelas sekarang
Di [5]
image2 = generate_empty_image() pt1 = (100, 100) pt2 = (400, 350) color = (0, 255, 0) thickness=10 cv2.line(image2, pt1, pt2,color,thickness) plt.imshow(image2)_Keluar[5]
Contoh – 3. Gambar Garis pada Gambar dengan cv2. garis()
Dalam contoh ini, kita akan menggambar garis pada gambar kucing dengan warna merah. Kami telah menghitung titik awal dan akhir secara manual untuk meletakkan garis di sepanjang gambar
Di [6]
image3 = cv2.imread('cat.jpg') pt1 = (100, 100) pt2 = (1000, 1150) color = (255, 0, 0) thickness=20 cv2.line(image3, pt1, pt2,color,thickness) plt.imshow(image3)Keluar[6]
- Baca Juga – Belajar Menggambar Persegi Panjang di OpenCV Python menggunakan cv2. persegi panjang() dengan Contoh
Kesimpulan
Saya harap Anda menemukan tutorial menggambar garis OpenCV singkat ini bermanfaat. Kita membahas sintaks fungsi cv2 line(), serta beberapa contoh, untuk membantu pemula memahaminya dengan lebih baik
Referensi – dokumentasi OpenCV
Membagikan
Ada apa
Telegram
Artikel sebelumnya Tutorial untuk K Means Clustering di Python Sklearn
Artikel selanjutnya Tutorial Diagram Lingkaran dalam Bahasa Pemrograman Base R
MLK
MLK adalah platform komunitas berbagi pengetahuan untuk penggemar pembelajaran mesin, pemula, dan pakar. Mari kita bersama-sama membuat hub yang kuat untuk Membuat AI Sederhana bagi semua orang