-
-
Notifications
You must be signed in to change notification settings - Fork 41
Open
Labels
enhancementNew feature or requestNew feature or request
Description
When I tried Linear I noticed a performance/usability problem for my use case.
public Image Linear(double[] a, double[] b, bool? uchar = null);I only wanted to multiply/add everything by a single values, not arrays. This is possible with the native API but not with the managed bindings.
The easy workaround is to create the arrays but the additional allocations can become costly...
using var scaled = image.Linear (new double [] { f }, new double [] { a });Also while looking inside Linear implementation I noticed that a VOption instance is created, even if not needed for the call. That's another non-required memory allocation and it means some additional calls (e.g. in Call) gets executed when they are not needed.
I ended up doing
using var scaled = (Image) Operation.Call ("linear", null, image, f, a);to avoid the issues but it's much less readable.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request