VSourceOpenCv C++ lib. Video capture and video source control based on OpenCV

€200.00

VSourceOpenCv C++ library version 1.1.1 provides video capture and video source control function based on OpenCV.

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

Add To Cart
Technical support service
Options:

Purchase options

You can by this software online by card or 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

Overview

VSourceOpenCv C++ library provides video capture and video source control function based on OpenCV (version >= 4.5). The library inherits interface from open source VSource interface class. VSource.h file contains data structures VSourceParams class (contains video source params and provides methods for serialization/deserialization params), VSourceCommand enum (describes video source action commands), VSourceParam enum (describes video source params) and includes VSourceLibCamera class declaration. VSourceOpenCv depends on: OpenCV (version >= 4.5), VSource interface class and open source Logger library which provides method to write logs. The library supports C++17 standard and provide simple interface.

Simple interface

class VSourceOpenCv : public VSource
{
public:
    
    /// Get string of current library version.
    static std::string getVersion();
    
    /// Open video source.
    bool openVSource(std::string& initString) override;
    
    /// Init video source. All params will be set according to structure.
    bool initVSource(VSourceParams& params) override;
    
    /// Get open status.
    bool isVSourceOpen() override;
    
    /// Close video source.
    void closeVSource() override;
    
    /// Get new video frame.
    bool getFrame(Frame& frame, int32_t timeoutMsec = 0) override;
    
    /// Set video source param.
    bool setParam(VSourceParam id, float value) override;
    
    /// Get video source param value.
    float getParam(VSourceParam id) override;
    
    /// Get video source params.
    void getParams(VSourceParams& params) override;
    
    /// Execute command.
    bool executeCommand(VSourceCommand id) override;
    
    /// Decode and execute command.
    bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};

Simple example

#include <iostream>
#include "VSourceOpenCv.h"

// Entry point.
int main(void)
{
    // Open camera with certain resolution.
    cr::video::VSource* source = new cr::video::VSourceOpenCv();
    if (source->openVSource("0;640;480"))
        return -1;

    // Main loop.
    cr::video::Frame frame;
    while (true)
    {
        // Wait new frame 1 sec.
        if (!source->getFrame(frame, 1000)) {
            std::cout << "No input frame" << std::endl;
            continue;
        }

        // Prepare OpenCV frame to display.
        cv::Mat openCvFrame(frame.height, frame.width, CV_8UC3, frame.data);

        // Display frame.
        cv::imshow("VIDEO", openCvFrame);
        cv::waitKey(1);
    }
    return 1;
}
VSourceV4L2 C++ lib. Video capture and video source control based on V4L2 API
€1,500.00
VOutputV4L2 C++ lib. Simple interface to write video frame to V4L2 output devices
€600.00
VSourceLibCamera C++ lib. Video capture and video source control based on Libcamera API
€1,500.00