Academia.eduAcademia.edu

FRUIT DETECTION

2020

LAPORAN WORKSHOP KOMPUTER VISI MINI PROJECT

LAPORAN WORKSHOP KOMPUTER VISI MINI PROJECT 3 D4 TEKNIK KOMPUTER B KELOMPOK 4 1. M. Johan Arifin 2. Lusiana Diyan Ningrum 3. Firja Hanif Maulana 2210181050 2210181051 2210181056 PRODI SARJANA TERAPAN TEKNIK KOMPUTER DEPARTEMEN TEKNIK INFORMATIKA DAN KOMPUTER POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA WORKSHOP KOMPUTER VISI DETEKSI DAN SEGMENTASI OBJECT Dasar Teori Computer Vision adalah suatu proses transformasi atau perubahan dari data yang berasal dari kamera video maupun foto/gambar kedalam sebuah hasil keputusan ataupun sebuah presentasi yang baru, dimana hasil dari kegiatan transformasi tersebut memiliki kepentingan untuk mencapai suatu tujuan. Data yang dimasukan kedalam kegiatan transformasi tersebut memungkinkan untuk memiliki beberapa informasi yang terkonstektual seperti halnya sebuah foto/gambar yang didalamnya terdapat berbagai objek. Dengan demikian akan didapatkan keputusan-keputusan yang akan diambil pada gambar, misalnya berupa “adakah telapak tangan seseorang pada gambar tersebut?” atau “siapa sajakah orang yang terdapat pada foto tersebut?”. Adapun perubahan kedalam presentasi yang baru seperti perubahan gambar menjadi grayscale atau juga pemotongan objek pada gambar. Grayscaling pada citra merupakan tahap pengkonversian citra gambar warna yang terdiri dari tiga parameter warna yaitu merah, hijau, dan biru (RGB). Jika citra gambar RGB diproses kedalam sistem pengenalan wajah, maka akan lebih sulit untuk diproses karena mengingat citra gambar RGB memiliki tiga parameter warna, oleh karena itu diperlukan suatu penyempitan parameter kedalam warna abu sehingga menjadi lebih mudah dalam hal penyamaan parameter yang akan digunakan pada implementasi sistem. DESKRIPSI IDE Pada mini project ini kami memiliki ide gagasan untuk membuat program yang dapat menangkap gambar dari livecam yang kemudian pada gambar tersebut dilakukan edge detection dimana deteksi objek disini berdasarkan deteksi objek satu warna saja untuk kemudian dilakukan segmentasi. Sebagai contoh pada ilustrasi di bawah ini setelah dilakukan edge detection terlebih dahulu pada buah apel maka proses edge hanya dilakukan untuk buah apel saja sedangkan objek daun dan lainnya tidak akan dibaca untuk proses edge. Kemudian hasil dari deteksi edge pada buah apel ini digunakan untuk segmentasi pada warna buah apel. Peralatan & Bahan 1. Visual Studio 2017 2. OpenCV3.1 Source Code #include #include #include #include #include <opencv2\opencv.hpp> <opencv2/core/core.hpp> <opencv2/highgui/highgui.hpp> "opencv2/imgproc/imgproc.hpp" <iostream> using namespace std; using namespace cv; int main(int argc, char** argv) { VideoCapture cap(0); if (!cap.isOpened()) return -1; Mat Mat int int edges, edges2; frame, hsv, out, mask, awal, out2, out3; iLowH = 170; iHighH = 179; int iLowS = 150; int iHighS = 255; int iLowV = 60; int iHighV = 255; int min_dist = 16, p1 = 100, p2 = 24, minrad = 100, maxrad = 300; while (1) { cap >> frame; Mat drawedframe = frame; Mat gray, hsv, mask, segmentout, treck; char c = (char)waitKey(1); if (c == 27) break; //HSV cvtColor(frame, hsv, COLOR_BGR2HSV); inRange(hsv, Scalar(iLowH, iLowS, iLowV), Scalar(iHighH, iHighS, iHighV), mask); namedWindow("Control", CV_WINDOW_AUTOSIZE); //create a window called "Control" //Create trackbars in "Control" window createTrackbar("LowH", "Control", &iLowH, 179); //Hue (0 - 179) createTrackbar("HighH", "Control", &iHighH, 179); createTrackbar("LowS", "Control", &iLowS, 255); //Saturation (0 - 255) createTrackbar("HighS", "Control", &iHighS, 255); createTrackbar("LowV", "Control", &iLowV, 255);//Value (0 - 255) createTrackbar("HighV", "Control", &iHighV, 255); createTrackbar("Minrad", "Control", &minrad, 400); createTrackbar("Maxrad", "Control", &maxrad, 400); bitwise_and(frame, frame, segmentout, mask); imshow("RED", segmentout); Mat edgeout, viewer; edgeout = segmentout; viewer = drawedframe; cv::cvtColor(segmentout, edgeout, COLOR_BGR2GRAY); medianBlur(edgeout, edgeout, 5); vector<Vec3f> circles; cv::HoughCircles(edgeout, circles, HOUGH_GRADIENT, 1, frame.rows / min_dist, p1, p2, minrad, maxrad); for (size_t i = 0; i < circles.size(); i++) { Vec3i c = circles[i]; Point center = Point(c[0], c[1]); circle(viewer, center, 1, Scalar(0, 100, 100), 3, LINE_AA); int radius = c[2]; circle(viewer, center, radius, Scalar(0, 150, 255), 3, LINE_AA); } imshow("Detected Circle", viewer); cap.read(frame); } waitKey(); return EXIT_SUCCESS; } Hasil Program Ketika program digunakan untuk mendeteksi object berupa buah jeruk, untuk deteksi circle belum bisa muncul tetapi program dapat melakukan segmentasi pada buah jeruk tersebut. Sedangkan ketika saya gunakan untuk membaca tempat headset yang memiliki corak banyak lingkaran dan berwarna merah, deteksi circle membaca banyak lingkaran dan terjadi kerancuan pada deteksi seperti yang terlihat pada gambar diatas. Sedangkan untuk segmentasinya, program sudah dapat melakukan segmentasi untuk objek lingkaran yang berwarna merah saja. Analisa Pada mini project ini, kelompok kami membuat project untuk membuat deteksi object berbentuk circle yang kemudian akan dilakukan segmentasi terhadap object tersebut. Kesimpulan