07-01-2012 02:08 PM
I notice that several of the predefined convolution (image filtering) kernels are separable. It's widely used practice to perform image convolution in two steps when using a separable kernel because this can greatly increase performance and convolution is a computationally intense process. For instance, Matlab tests a kernel to see if it's separable before applying a convolution.
Does Labview optimize performance in this way?
Separability test attached.
07-02-2012 03:22 PM
I would post this to the machine vision forum. It will get much more visibility from vision specific users and you'll have a much better chance of getting an answer that way. The vision guys at NI also follow that forum pretty closely, so you may get lucky and get a response from one of them.
07-02-2012 05:36 PM
Hi Root Canal,
I wanted to clarify, are you looking for if the Convulte takes advantage of parallized performance or if there is the possibility for multiple kernel updates at one time?
Thanks,
Kira T
07-02-2012 06:07 PM
I wanted to clarify, are you looking for if the Convulte takes advantage of parallized performance or if there is the possibility for multiple kernel updates at one time?
I think the question is whether the IMAQ Convolute routine separates a 2D Kernel into two 1D kernels, and applies it using sequential 1D convolutions along the X and Y directions, which is much faster than the equivalent 2D convolution. My guess is that no, it doesn't separate the kernel, but only because it seems much slower than a hand-written 1D convolution.