Cara Membuat Efek Webcam Menakjubkan Menggunakan Java dan Pemrosesan

Cara Membuat Efek Webcam Menakjubkan Menggunakan Java dan Pemrosesan

Pemrosesan adalah alat yang ampuh yang memungkinkan penciptaan seni melalui kode. Ini adalah kombinasi dari perpustakaan Java untuk bekerja dengan grafik, dan lingkungan pengembangan terintegrasi (IDE) yang memungkinkan Anda untuk menulis dan menjalankan kode dengan mudah.





Ada banyak proyek grafis dan animasi pemula yang menggunakan Processing, tetapi juga mampu memanipulasi video langsung.





Hari ini Anda akan membuat tayangan slide video langsung dari berbagai efek yang dikendalikan oleh mouse, menggunakan perpustakaan video Processing. Selain membalik video langsung, Anda akan belajar mengubah ukuran dan mewarnainya, dan cara membuatnya mengikuti kursor mouse.





Pengaturan Proyek

Memulai, unduh Pemrosesan dan buka sketsa kosong. Tutorial ini didasarkan pada sistem Windows, tetapi harus bekerja di komputer mana pun dengan webcam.

Anda mungkin perlu menginstal perpustakaan Pemrosesan Video, yang dapat diakses di bawah Sketsa > Impor Pustaka > Tambah Pustaka . Pencarian untuk Video di kotak pencarian, dan instal perpustakaan dari Yayasan Pemrosesan .



Setelah terinstal, Anda siap untuk pergi. Jika Anda ingin melewati pengkodean, Anda bisa unduh sketsa lengkap . Namun, jauh lebih baik untuk membuatnya sendiri dari awal!

Menggunakan Webcam Dengan Pemrosesan

Mari kita mulai dengan mengimpor perpustakaan, dan membuat mempersiapkan fungsi. Masukkan yang berikut ini ke dalam sketsa Pengolahan kosong:





import processing.video.*;
Capture cam;
void setup(){
size(640,480);
cam = new Capture(this, 640, 480);
cam.start();
}

Setelah mengimpor perpustakaan video, Anda membuat Menangkap contoh disebut jeruk untuk menyimpan data dari webcam. Di dalam mempersiapkan , NS ukuran fungsi mengatur a 640x480 jendela berukuran piksel untuk bekerja.

Baris berikutnya menetapkan jeruk ke contoh baru dari Menangkap , untuk ini sketsa, yang ukurannya sama dengan jendela, sebelum memberi tahu kamera untuk menyala dengan cam.start() .





Jangan khawatir jika Anda tidak memahami setiap bagian dari ini untuk saat ini. Singkatnya, kami telah memberi tahu Processing untuk membuat jendela, menemukan kamera kami, dan menyalakannya! Untuk menampilkannya kita membutuhkan a seri fungsi. Masukkan ini di bawah kode di atas, di luar kurung kurawal.

void draw(){
if (cam.available()){
cam.read();
}
image(cam,0,0);
}

NS seri fungsi dipanggil setiap frame. Ini berarti bahwa berkali-kali setiap detik, jika kamera memiliki data tersedia Anda Baca data darinya.

Data ini kemudian ditampilkan sebagai gambar , pada posisi 0, 0 , yang merupakan kiri atas jendela.

Simpan sketsa Anda, dan tekan tombol putar di bagian atas layar.

Kesuksesan! Data yang disimpan oleh jeruk dicetak dengan benar ke layar setiap frame. Jika Anda mengalami masalah, periksa kode Anda secara menyeluruh. Java membutuhkan setiap tanda kurung dan titik koma di tempat yang tepat! Pemrosesan juga memerlukan beberapa detik untuk mengakses webcam, jadi jika menurut Anda itu tidak berfungsi, tunggu beberapa detik setelah meluncurkan skrip.

Membalik Gambar

Sekarang setelah Anda mendapatkan gambar webcam langsung, mari kita manipulasi. Dalam fungsi undian, ganti gambar(kamera,0,0); dengan dua baris kode ini.

scale(-1,1);
image(cam,-width,0);

Simpan dan jalankan kembali sketsa. Dapatkah Anda melihat perbedaannya? Dengan menggunakan negatif skala nilai, semuanya x nilai (piksel horizontal) sekarang dibalik. Karena itu, kita perlu menggunakan nilai negatif dari jendela lebar untuk memposisikan gambar dengan benar.

Membalik gambar secara terbalik hanya membutuhkan beberapa perubahan kecil.

scale(-1,-1);
image(cam,-width,-height);

Kali ini, keduanya x dan dan nilai dibalik, membalikkan gambar kamera langsung. Sejauh ini Anda telah mengkodekan gambar normal, gambar yang dibalik secara horizontal, dan gambar yang dibalik secara vertikal. Mari kita mengatur cara untuk siklus di antara mereka.

Membuatnya Siklus

Alih-alih menulis ulang kode Anda setiap saat, kami dapat menggunakan angka untuk menggilirnya. Buat yang baru bilangan bulat di bagian atas kode Anda disebut pengalih .

import processing.video.*;
int switcher = 0;
Capture cam;

Kita dapat menggunakan nilai switcher untuk menentukan apa yang terjadi pada gambar kamera. Saat sketsa dimulai, Anda memberinya nilai 0 . Sekarang kita dapat menggunakan logika untuk mengubah apa yang terjadi pada gambar. Perbarui Anda seri metode agar terlihat seperti ini:

void draw(){
if (cam.available()){
cam.read();
}
if(switcher==0){
image(cam,0,0);
}
else if(switcher == 1){
scale(-1,1);
image(cam,-width,0);
}
else if(switcher == 2){
scale(-1,-1);
image(cam,-width,-height);
}
else{
println('Switcher = 0 again');
switcher = 0;
}
}

Sekarang, ketiga variasi kode akan dipicu tergantung pada nilai pengalih. Jika tidak cocok dengan salah satu dari kami jika atau jika tidak pernyataan, lain klausa diatur ulang ke 0. Logika adalah keterampilan pemula yang penting untuk dipelajari, dan Anda dapat mengetahuinya dan lebih banyak lagi dengan Tutorial Pemrograman YouTube yang luar biasa!

Menggunakan Mouse

Pemrosesan memiliki metode bawaan untuk mengakses mouse. Untuk mendeteksi ketika pengguna mengklik mouse, tambahkan mouseDitekan fungsi di bagian bawah skrip Anda.

temukan lagu di video youtube
void mousePressed(){
switcher++;
}

Pemrosesan mendengarkan setiap klik mouse dan menginterupsi program untuk menjalankan metode ini ketika mendeteksinya. Setiap kali metode dipanggil, nilai switcher semakin besar satu per satu. Simpan dan jalankan skrip Anda.

Sekarang, ketika Anda menekan tombol mouse, itu akan berputar melalui orientasi video yang berbeda, sebelum kembali ke aslinya. Sejauh ini Anda baru saja membalik videonya, sekarang mari kita lakukan sesuatu yang sedikit lebih menarik.

Menambahkan Lebih Banyak Efek

Sekarang, Anda akan mengkodekan efek gambar langsung empat warna yang mirip dengan karya seni Andy Warhol yang terkenal. Menambahkan lebih banyak efek semudah menambahkan klausa lain ke logika. Tambahkan ini ke skrip Anda di antara yang terakhir lain jika pernyataan, dan lain .

else if(switcher == 3){
tint(256, 0, 0);
image(cam, 0, 0, width/2, height/2);
tint(0, 256, 0);
image(cam, width/2, 0, width/2, height/2);
tint(0, 0, 256);
image(cam, 0, height/2, width/2, height/2);
tint(256, 0, 256);
image(cam, width/2, height/2, width/2, height/2);
}

Kode ini menggunakan gambar berfungsi untuk membuat empat gambar kamera terpisah di setiap sudut layar dan membuat semuanya menjadi setengah ukuran.

NS warna fungsi menambahkan warna pada setiap gambar kamera. Angka dalam kurung adalah merah, hijau, dan biru (RGB) nilai-nilai. Tint warna semua kode berikut dengan warna yang dipilih.

Simpan dan mainkan untuk melihat hasilnya. Coba ubah nomor RGB di masing-masing warna berfungsi untuk mengubah warna!

Membuatnya Mengikuti Mouse

Terakhir, mari buat gambar langsung mengikuti posisi mouse menggunakan fungsi bermanfaat dari perpustakaan Pemrosesan. Tambahkan ini di atas lain bagian dari logika Anda.

else if(switcher==4 ){
image(cam, mouseX, mouseY, width/2, height/2);
}

Di sini, Anda memposisikan gambar dari kamera Anda di mouseX dan mouseY . Ini dibangun dalam nilai Pemrosesan yang mengembalikan piksel mana yang ditunjuk mouse.

Itu dia! Lima variasi video langsung melalui kode. Namun, ketika Anda menjalankan kode, Anda akan melihat beberapa masalah.

Menyelesaikan Kode

Kode yang Anda buat sejauh ini berfungsi, tetapi Anda akan melihat dua masalah. Pertama, setelah variasi empat warna muncul, semuanya kemudian diwarnai ungu. Kedua, saat Anda memindahkan video dengan mouse, itu meninggalkan jejak. Anda dapat memperbaikinya dengan menambahkan beberapa baris ke bagian atas fungsi undian.

void draw(){
tint(256,256,256);
background(0);
//draw function continues normally here!

Di awal setiap bingkai, kode ini menyetel ulang warna rona menjadi putih, dan menambahkan warna latar belakang hitam untuk menghentikan video yang meninggalkan jejak. Sekarang ketika Anda menguji program, semuanya bekerja dengan sempurna!

Efek Webcam: Seni Dari Kode

Pemrosesan sangat kuat, dan Anda dapat menggunakannya untuk melakukan banyak hal. Ini adalah platform yang sangat baik untuk membuat seni dengan kode, tetapi juga cocok untuk mengendalikan robot!

Jika Java bukan milik Anda, ada pustaka JavaScript berdasarkan Pemrosesan yang disebut p5.js. Ini berbasis browser, dan bahkan pemula dapat menggunakannya untuk membuat animasi reaktif yang fantastis!

Kredit Gambar: Syda_Productions / foto deposit

Membagikan Membagikan Menciak Surel 3 Cara Mengecek Email Asli atau Palsu

Jika Anda menerima email yang terlihat agak meragukan, sebaiknya periksa keasliannya. Berikut adalah tiga cara untuk mengetahui apakah email itu asli.

Baca Selanjutnya
Topik-topik yang berkaitan
  • Pemrograman
  • Jawa
  • Kamera web
  • Pengolahan
  • Tutorial Pengkodean
Tentang Penulis Ian Buckley(216 Artikel Diterbitkan)

Ian Buckley adalah jurnalis lepas, musisi, pemain, dan produser video yang tinggal di Berlin, Jerman. Ketika dia tidak menulis atau di atas panggung, dia mengutak-atik elektronik atau kode DIY dengan harapan menjadi ilmuwan gila.

More From Ian Buckley

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan