Home / Pemrograman / C# / Cara Menghitung FPS (Frame Per Seconds)

Cara Menghitung FPS (Frame Per Seconds)

Cara Menghitung FPS Pada Kamera

Pada tutorial kali ini saya akan membahas sedikit tentang cara menghitung lama proses capture dari sebuah camera. Cara ini dilakukan agar kita dapat mengetahui seberapa cepat kamera dalam melakukan proses capture gambar. Biasanya kecepatan proses capture ini dinyatakan dalam satuan FPS (frame per seconds) atau gambar per detik.
Pada project kali ini kita akan menampilkan nilai waktu dari proses capture 1 buah gambar pada sebuah textbox. Silahkan buka kembali project latihan capture kamera yang kemarin telah saya posting disini http://eko-rudiawan.com/webcam-viewer-dengan-c-dan-emgucv/. Anda dapat merubah sedikit tampilannya dengan menambahkan sebuah textbox sebagai tempat untuk menampilkan nilai waktunya. Tampilan GUI nya seperti di bawah ini.

Untuk menghitung kecepatan kamera mengcapture sebuah gambar, kita akan memanfaatkan class DateTime. Nantinya kita akan mengambil nilai waktu sebelum dan sesudah proses capture. Kemudian menghitung lama proses capturenya dengan cara mengurangi nilai waktu sesudah capture dan nilai waktu sebelum capture.
Sourcecode lengkap dari program dapat Anda lihat di bawah ini.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.Util;
using Emgu.CV.Structure;

namespace WebcamViewer
{
    public partial class Form1 : Form
    {
        Capture capture;      
        bool captureProgress;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (capture == null)
            {
                try
                {
                    capture = new Capture();
                }
                catch (NullReferenceException excpt)
                {
                    MessageBox.Show(excpt.Message);
                }
            }
            if (capture != null)
            {
                if (captureProgress)
                {
                    Application.Idle -= ProcessFrame;
                }
                else
                {
                    Application.Idle += ProcessFrame;
                }
                captureProgress = !captureProgress;
            }
        }

        private void ProcessFrame(object sender, EventArgs arg)
        {
            DateTime startTime = DateTime.Now;
            Image<bgr, byte=""> ImageFrame = capture.QueryFrame();
            imageBox1.Image = ImageFrame.Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR, true);
            DateTime endTime = DateTime.Now;        
            textBox1.Text = (endTime-startTime).ToString() ;
        }

        private void ReleaseData()
        {
            if (capture != null)
            {
                capture.Dispose();
            }
        }
    }
}

Coba jalankan aplikasinya, kemudian lihat pada bagian textbox berapa nilai waktu yang ditampilkan. Hasil perhitungan waktu capture dari camera saya dapat dilihat pada gambar di bawah ini.

Cara Menghitung FPS
Cara Menghitung FPS

Disitu terlihat proses capture satu buah gambar adalah sekitar 25 milliseconds. Sehingga dapat kita simpulkan bahwa kamera memiliki kecepatan capture sebesar 40 FPS (1 seconds/25 milliseconds). Tiap kamera memiliki kecepatan capture yang berbeda-beda. Coba jalankan aplikasi ini pada komputer/laptop Anda. Kemudian cek apakah kecepatan capture kamera Anda lebih cepat atau lebih lambat dari milik saya 🙂

Sekian tutorial kali ini, semoga bermanfaat 🙂

About Eko Rudiawan

Seorang lelaki yang punya ketertarikan dengan dunia elektronika dan robot yang saat ini sedang serius belajar tentang dunia bisnis dan internet marketing. My dream to be success technopreneur

2 comments

  1. siang kak..
    boleh nanya kak..
    ini cara pengolaan citra (image processing) y kak??

Leave a Reply

Your email address will not be published. Required fields are marked *

3 − 3 =