-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Description
We have talked before how this project bears a lot of design mistakes in the API. Now that we've joined it with libmir, I'd strongly suggest we join forces and redesign the API, before going into development of new features.
Some of examples we have talked about before:
- remove dcv.core.image Remove dcv.core.image.Image #64
- solid design of high level algorithm API (optical flow, rht, stereo matching etc.)
- talk about separating low level API from high level. This also mixes with the story of
nothrow @nogclibrary without druntime - I believe we have agreed that ideally low level API should not use druntime? - @9il's hint on global function design error : DCV API has similar issues: a function should not change params or it should be a procedure and return void. I assume you we're referring to the idea of pre-allocated buffers as input? If you are, I totally agree and think this is bad and hybrid design that has to be changed.
- latest talk on separated filters Filters should be separated #85, and on filters of fixed size Filters with fixed size #86. Currently there's no filtering specialization in API - e.g. there's no function for sobel edges, which would be good for performance reason, instead we rely on general purpose convolution function which is slower.
- what else...?
@9il if you're interested, I'd be willing to do the heavy lifting on this task, but I'd really like you to follow through each change, and not let me repeat some of those mistakes. What do you think? Of course, anyone else willing to join revision board is more than welcome!
And of course, everyone interested in project is welcome to share his/her opinion on the matter.
timotheecour