» VL: OpenCV is in da house!
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

VL: OpenCV is in da house!


we're starting to collect the fruits of our hard efforts of making it easy to use thirdparty libraries. please give a warm welcome to VL.OpenCV

What the?

remember the amazing ImagePack initiated by @elliotwoods years ago? VL.OpenCV is essentially the same, only for vl: a collection of nodes for computer-vision tasks based on the industry standard library OpenCV.

OpenCV is a vast library with an endless number of interesting features. elliot back in the days did a great job in hand-picking some of the most interesting ones and wrapping them into easy to use nodes for evvvveryone.

meanwhile OpenCV has progressed and so we thought we'd give it a try and make it accessible for everyone in vl. watch this first episode of vvvvTv where ravazquez who has been working on this for the past 2.5 months, explains how you can use the prerelease package today.


if we haven't missed anything, most of the functionality you know from the ImagePack should already be available, except some special video input devices, StructuredLight and FeatureDetection stuff but on the other hand already much more:

so we have:

  • sources: ImageFile, VideoFile, VideoIn (Directshow)
  • sinks: ImageFile, VideoFile
  • filters: Blur, EdgeDetection, Average, FrameDifference...
  • different background substraction options
  • optical flow
  • camera/projector calibration
  • trackers: contours, face recognizer, houghlines, object detection (via haarcascades), different 2d tracker options
  • ar marker tracking and pose estimation
  • utils: Info, CountNonZero, FindNonZero, Resize, Crop, Insert, Split, Merge, Delaunay, Voronoi,...

and most of the nodes and pins come with documentation in the tooltips!


as opposed to the ImagePack, this library is completely free of the complexities of threading. instead a user can use the threading regions of vl to define their own threading. while this indeed puts a bit more effort on the user we hope that the flexibility in dealing with their own threading outweighs the cons of this.


the library is open for everyone to contribute. since it is mostly done in pure vl, with hardly any c# written, it is quite accessible for everyone to extend. so please do so and best join us in the chat to discuss matters when they arise.

joreg, Thursday, Mar 29th 2018 Digg | Tweet | Delicious 9 comments  
m9dfukc 29/03/2018 - 17:33

Haha, vvvvtv hilarious! Great to hear that openCv is now working in vl!

cvTester 29/03/2018 - 18:48

Great news!
Thank you so much.

metrowave 29/03/2018 - 23:16

Thanks guys, love the OpenCV stuff and vvvvTV is a cool idea!

ggml 30/03/2018 - 05:36

how does it look for dedicated videoins ? are they still required for optimal performance ?

joreg 30/03/2018 - 09:17

glad you like it...

@ggml not sure if dedicated devices have to do anything with performance necessarily, more with features not supported by directshow. so here is one eg https://github.com/vvvv/VL.Devices.uEye others should be as simple to do.

fleg 30/03/2018 - 11:24

where can i hear the full version of the intro jingle?

tonfilm 30/03/2018 - 16:21

@fleg download an old beta with the infamous crack.exe and start it ;)

catweasel 08/05/2018 - 14:32

type nuget install VL.OpenCV -prerelease <----you need this flag to install via Nuget

catweasel 08/05/2018 - 22:16

From the Matrix for adding other fucntions

So the basic idea is that we are using this C# opencv wrapper called OpenCVSharp
in the end for us to be able to use an opencv function it need to be supported by the wrapper
you can go to their website and check, but the easiest way would be to (in VL) open any of the currently available VL.OpenCV nodes, and once you are inside the VL.OpenCV document, just double click and type the name of the function you want to add, if it shows up you are already on the right track, if its not, it is probably not supported by the wrapper

if it does show up, then you can have a look at similar nodes we already added, and have a look at how we did it. In most cases its very straightforward (like the MinMaxLoc), some cases require a bit more work, but with that you should be able to explore already, and of course we are here to help with any questions/problems you might find

  • 1

anonymous user login


~1d ago

woei: everyone who likes or has to work with 3d models: something you might wanna try scenegraph

~3d ago

tonfilm: Saving and loading your own data types to disk was never easier: vl-serialization #vvvv #vl #dotNet #visualprogramming

~5d ago

stulloyd: @dominikKoller my little brother works for them.

~10d ago

vasilis: @readme I already did this...but when I reopen my patch and make some changes I press save all..and then the same again. It opens 2

~10d ago

readme: vasilis, Alt+R in your vvvv instance, delete it from vvvv root, save. Otherwise vvvv loads up the patch by default.

~10d ago

vasilis: And even if I go in the root patch and delete them. when i save my patch again it duplicates.

~10d ago

vasilis: Anyone know why when I save my patch and close vvvv, when I try again to reopen it, it opens two patches (two the same)?