Re: Looking for contributions to my optimistic image library

2020-06-10 Thread AMoura
@mratsim I agree with you but I'm a little frustate because I love Nim and in 
my job I use OpenCV. I would like use both in my free time :(

The binding is not the best choice especially if it is not official but it 
allows developpers of others languages to reuse his favorit library (when the 
binding works well). It is easier to use a language when you can use popular 
library or similar but that's another debate.

Nim is young, ecosystem grows up and welcome inumon.


Re: Looking for contributions to my optimistic image library

2020-06-10 Thread mratsim
Bindings are good until they are not.

Typically for my own tensor library I used bindings for optimized matrix 
multiplication but people have difficulties installing those dependencies on 
Linux.

Also for Nim, you could do a lot of precomputation at compile-time which you 
cannot do for bindings.

Many of the recent languages: Go and Java but even Python have their own pure 
image manipulation library.

And lastly, if you want to do image manipulation in production, sure use 
OpenCV, but a lot of Nim developers are here because they find the language fun 
and they don't have something to ship in 2 months but they have time and the 
willingness to learn both a language and an application domain.

It's a lot more fun (usually) and obviously better for learning to write 
something from scratch than to wrap something already ready.


Re: Looking for contributions to my optimistic image library

2020-06-10 Thread AMoura
Hello.

@Voltist, thanks for this library in pure Nim to open Jpeg and PNJ file and 
made some simple manipulation. If your objective is to made a big lib there is 
a wrapper for OpenCV 
([https://github.com/dom96/nim-opencv](https://github.com/dom96/nim-opencv)) 
and for me it a better idea to make every effort required for improve 
compatibility.

OpenCV is very used in computer vision and machine learning, it's a reference 
in this field. OpenCV is already bind in Java, Python and Javascript, why not 
Nim. 


Re: Looking for contributions to my optimistic image library

2020-06-10 Thread geotre
Seeing as we're talking about image library wishes, I'd love to see an 
implementation of [hqx](https://en.wikipedia.org/wiki/Hqx) in Nim


Re: Looking for contributions to my optimistic image library

2020-06-09 Thread digitalcraftsman
Currently I'm learning Nim and have some little projects in mind that involve 
image manipulation. For my needs it doesn't have to be anything advanced. There 
are already packages on Nimble for reading and writing JPEG and PNG files, 
conversion between different color spaces etc.

But it would be great to have something similar to Go's 
[image](https://pkg.go.dev/image?tab=doc) package. That would provides a 
unified way of representing images of different formats, colors and procedures 
to manipulate them.


Re: Looking for contributions to my optimistic image library

2020-06-09 Thread mratsim
Note that I have started some image manipulation low-level primitives and also 
benchmarks in Impulse 
[https://github.com/SciNim/impulse](https://github.com/SciNim/impulse)

For example to apply an image filter I have benchmarked 5 low-level primitives 
here: 
[https://github.com/SciNim/impulse/blob/26e25e70/benchmarks/image_filters/filter2d_separable.nim](https://github.com/SciNim/impulse/blob/26e25e70/benchmarks/image_filters/filter2d_separable.nim),
 and the same with parallel implementation via Weave here: 
[https://github.com/SciNim/impulse/blob/26e25e70/benchmarks/image_filters/filter2d_separable_parallel.nim](https://github.com/SciNim/impulse/blob/26e25e70/benchmarks/image_filters/filter2d_separable_parallel.nim)

Besides, I've also added a RGB to YUV420 / Y'CbCr conversion to 
Trace-of-Radiance here with BT601 color matrix support (Jpeg and BT.709 for HD 
video is straightforward) 
[https://github.com/mratsim/trace-of-radiance/blob/99f7d85d/trace_of_radiance/io/color_conversions.nim](https://github.com/mratsim/trace-of-radiance/blob/99f7d85d/trace_of_radiance/io/color_conversions.nim)

In general I don't mind adding pure Nim primitives, potentially parallelized 
and vectorized for high-level image libraries provided I know what you need ;) 
(though my ultimate goal is to have something like Halide in pure Nim 
[https://halide-lang.org](https://halide-lang.org)/ instead of 2 stages 
code-generation).

I.e. you can raise an issue on your need in Impulse 
[https://github.com/SciNim/impulse](https://github.com/SciNim/impulse).

I've also wrapped PocketFFT C++ which provides multidimensional parallel FFTs 
(complex and real), DCT and DST (Discret Cosine Transform and Discrete Sine 
Transform) here though still wondering about the high level API: 
[https://github.com/SciNim/impulse/blob/26e25e70/impulse/fft/pocketfft.nim](https://github.com/SciNim/impulse/blob/26e25e70/impulse/fft/pocketfft.nim)
 I tried to implement a FFT in one weekend™ but it's too complex for a weekend 
task. If you're interested in resurrecting that code, that commits has a 
skeleton and plenty of documentation to build your own high performance FFT: 
[https://github.com/SciNim/impulse/tree/49b81323/impulse/fft](https://github.com/SciNim/impulse/tree/49b81323/impulse/fft)

I do think there is quite an interest in image procesing in Nim so maybe a new 
channel on the Discord or a Gitter channel might have enough interest?


Re: Looking for contributions to my optimistic image library

2020-06-08 Thread Voltist
Don't worry, its not all at one project :)


Re: Looking for contributions to my optimistic image library

2020-06-08 Thread SolitudeSF
> but a combination of poor documentation, inelegant or unstable APIs, 
> unresponsive developers

hey, im trying