LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Does IMAQ Convolute take advantage of separable convolution filters for a speed increase like Matlab does?

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.


global variables make robots angry


0 Kudos
Message 1 of 4
(2,842 Views)

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.

Vision and Motion Enthusiast
Certified LabVIEW Associate Developer
0 Kudos
Message 2 of 4
(2,817 Views)

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

0 Kudos
Message 3 of 4
(2,812 Views)

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.

0 Kudos
Message 4 of 4
(2,805 Views)