0
Skip to Content
Home
RapidPixel SDK
Consulting
Constant Robotics
Constant Robotics
Home
RapidPixel SDK
Consulting
Constant Robotics
Constant Robotics
Home
RapidPixel SDK
Consulting
Home GasLeakDetector C++ lib. Fast library to emphasize motion on video for gas leak detection and motion magnification
gasleakdetector_thumbai.png Image 1 of
gasleakdetector_thumbai.png
gasleakdetector_thumbai.png

GasLeakDetector C++ lib. Fast library to emphasize motion on video for gas leak detection and motion magnification

€4,000.00

GasLeakDetector C++ library version 1.0.0 is a versatile library that allows users to enhance and amplify subtle motion and temporal variations in digital video content.

LICENSE: We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.

Add To Cart

GasLeakDetector C++ library version 1.0.0 is a versatile library that allows users to enhance and amplify subtle motion and temporal variations in digital video content.

LICENSE: We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.

Technical support service technical_support_thumbai.png (Copy) technical_support_thumbai.png (Copy)
Technical support service
from €700.00
Options:

GasLeakDetector C++ library version 1.0.0 is a versatile library that allows users to enhance and amplify subtle motion and temporal variations in digital video content.

LICENSE: We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.

Purchase options

You can buy the software by bank transfer. Bank transfer available only for companies. To buy software by bank transfer please send us request to info@constantrobotics.com. Also, you can buy technical support service for this product.

Downloads

Programmer’s manual: DOWNLOAD

Demo application to check algorithms performance on your video: DOWNLOAD

Overview

GasLeakDetector C++ library amplifies subtle motion and temporal variations in digital video content. It implements Eulerian Video Magnification algorithms (optimized for Gas Leaking Detection scenario for thermal cameras). The library represents video filtering function and can be used not only for Gas Leaking Detection but for motion magnification. The library is implemented in C++ (C++17 standard). This library is suitable for various types of cameras (daylight, SWIR, MWIR and LWIR). Each instance of the GasLeakDetector C++ class object performs frame-by-frame processing of a video data stream, processing each video frame independently. The library is only intended for not moving (or moving slowly) cameras or for PTZ cameras when observing in a certain sector. The algorithm works only on one CPU core. The library depends on open source VFilter library (provides interface as well as defines data structures for various video filters implementation, source code included, Apache 2.0 license) and OpenCV (version >= 4.5, linked, Apache 2.0 license). Additionally demo application depends on open source SimpleFileDialog (provides dialog to open files, source code included, Apache 2.0 license).

Demo video

VFilter compatible interface

namespace cr
{
namespace video
{
/// Gas leak detector class.
class GasLeakDetector : public VFilter
{
public:
    /// Get string of current library version.
    static std::string getVersion();

    /// Initialize detector.
    bool initVFilter(VFilterParams& params) override;
    
    /// Set detector parameter.
    bool setParam(VFilterParam id, float value) override;

    /// Get detector parameter value.
    float getParam(VFilterParam id) override;

    /// Get all detector parameters.
    void getParams(VFilterParams& params) override;

    /// Execute action command.
    bool executeCommand(VFilterCommand id) override;

    /// Process frame.
    bool processFrame(cr::video::Frame& frame) override;
    
    /// Set detector mask.
    bool setMask(cr::video::Frame mask) override;

    /// Decode and execute command.
    bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};
}
}

Simple example

#include <opencv2/opencv.hpp>
#include "GasLeakDetector.h"

int main(void)
{
    // Open video file "test.mp4".
    cv::VideoCapture videoSource;
    if (!videoSource.open("test.mp4"))
        return -1;

    // Create frames.
    cv::Mat bgrImg;
    int width = (int)videoSource.get(cv::CAP_PROP_FRAME_WIDTH);
    int height = (int)videoSource.get(cv::CAP_PROP_FRAME_HEIGHT);
    cr::video::Frame frameYuv(width, height, cr::video::Fourcc::YUV24);

    // Create gas leak detector and set initial params.
    cr::video::GasLeakDetector filter;
    filter.setParam(cr::video::VFilterParam::MODE, 1); // Enable.
    filter.setParam(cr::video::VFilterParam::LEVEL, 50); // 50% level.

    // Main loop.
    while (true)
    {
        // Capture next video frame. Default BGR pixel format.
        videoSource >> bgrImg;
        if (bgrImg.empty())
        {
            // Set initial video position to replay.
            videoSource.set(cv::CAP_PROP_POS_FRAMES, 0);
            continue;
        }

        // Convert BGR to YUV for filter.
        cv::Mat yuvImg(height, width, CV_8UC3, frameYuv.data);
        cv::cvtColor(bgrImg, yuvImg, cv::COLOR_BGR2YUV);

        // Magnify movement with default params.
        filter.processFrame(frameYuv);

        // Convert result YUV to BGR to display.
        cv::cvtColor(yuvImg, bgrImg, cv::COLOR_YUV2BGR);

        // Show video.
        cv::imshow("VIDEO", bgrImg);
        if (cv::waitKey(1) == 27)
            return 0;
    }
    return 1;
}

You Might Also Like

DigitalZoom C++ lib. Digital zoom implementation based on OpenCV
DigitalZoom C++ lib. Digital zoom implementation based on OpenCV
€10.00
ImageFlip C++ lib. Simple image flip implementation based on OpenCV
ImageFlip C++ lib. Simple image flip implementation based on OpenCV
€10.00
MotionMagnificator C++ lib. Fast library to emphasize motion on video for better detection
MotionMagnificator C++ lib. Fast library to emphasize motion on video for better detection
€4,000.00
Dehazer C++ lib. Fast video dehaze/defog algorithm
Dehazer C++ lib. Fast video dehaze/defog algorithm
€600.00

ABOUT US

ConstantRobotics conducts scientific research in video processing, control protocols, and data exchange. Our diverse team of engineers develops software libraries and applications to simplify complex problems. Customers can test our libraries on their own data before making a purchase. Detailed documentation is available on our website. Our main focus is creating real-time algorithms that run on any platform.

CONTACTS

ConstantRobotics Sp. z o.o. Warsaw, Poland, VAT ID: PL5252930273, info@constantrobotics.com

LICENSES FOR SOFTWARE

Our software libraries are distributed under perpetual licenses. We don't restrict distribution of software libraries as a part of your hardware and software products. Our library prices are the same for all our clients and are based on the following principle: you can create a counterpart of our algorithms with the same or better characteristics, but the cost of your own research will be significantly higher than buying ready-made libraries. By purchasing our libraries you get a solution with proven performance. Two licenses are available for our products: a perpetual license for the compiled version of the library and a perpetual license for the source code. You pay once at the time of purchase. Download licenses:

  • LICENSE FOR SOURCE CODE OF SOFTWARE

  • LICENSE FOR COMPILED VERSION OF SOFTWARE

SEND US MESSAGE

Thank you! We will connect you soon.


© 2025 ConstantRobotics

Privacy Policy | Terms & Conditions | Archive