Very often the area you want to track is too big for one camera to cover. In this case, the first thought is usually to run computer vision algorithms on each camera separately as shown below:
However, the approach above, while there is nothing wrong with it, is not the most efficient and is definitely the more tedious. Especially if you need to correct perspective warps (for example, if the cameras are not perpendicular to the floor, but are tilted at an angle).
For this reason, we’ve created CV Canvas node.
It allows you to combine several cvMats into one and adjust perspective warp at the same time.
As you can see in the image above, cvMat combines all the incoming cvMats into one depending on how you adjust the warp points.
Usage
When you insert a cvMat node, you first need to click on Add input button to add the inputs.
Then, you can adjust the output resolution in its properties on the right. It will be the resolution of the combined cvMat and in order to keep things as efficient as possible, you should keep it as low as possible.
There, you should also click on Setup window button to open the setup window.
The user interface is similar to Canvas setup window. To save on the cost, Real-time preview checkbox is disabled by default. This means that the contents of the inputs (they are vertically stacked on the left side) update only when you hover over them with your mouse. Feel free to enable it though.
If you double-click on any of the inputs on the left side, they will appear on the canvas on the right side together with 4 warp points.
When you are satisfied, you can close the window and connect the Output of the CV Canvas node to a computer vision node of your choice.
In the example above, we’ve used Optical Flow and the overall cost is lower this way compared to if we used 3 optical flow nodes – one for each cvMat.