Skip to content

[GSoC] Julia Bindings - Phase 1 #2994

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion modules/julia/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,21 @@ OpenCV Julia Bindings
============================
This module contains some limited functionality that allows OpenCV functions be used from Julia. Upon installation the binding files are automatically registered with Julia's package manager like any normal package.

This module requires Julia 1.4 and the CxxWrap.jl 0.10.
This module requires Julia 1.4 and the CxxWrap.jl 0.10 when built from source. To use the compiled binary distributions Julia 1.6 is recommended.

Using Prebuilt Binaries
---
The easiest way to use OpenCV from Julia bindings is to use the version registered with Julia's package manager. This is also the only tested way to use Julia bindings on Windows. To do that simply start the Julia REPL. Hit `]` and then type `add OpenCV`.

```bash
$ julia
...
julia> ]
pkg> add OpenCV
```

---
The following steps walk over a source build of the Julia bindings.

CxxWrap Installation
----
Expand Down Expand Up @@ -31,6 +45,8 @@ Install
-------
By default the Julia package is installed in `CMAKE_BINARY_DIR`, you can change this by setting the `JULIA_PKG_INSTALL_PATH` cmake variable. The package is automatically registered with the Julia package manager.

---

Run
---

Expand Down
15 changes: 14 additions & 1 deletion modules/julia/tutorials/julia.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@ The OpenCV bindings for Julia are created automatically using Python scripts at

The generation process and the method by which the binding works are similar to the Python bindings. The only major difference is that CxxWrap.jl does not support optional arguments. As a consequence, it's necessary to define the optional arguments in Julia code which adds a lot of additional complexity.

How To Install The Bindings
-----------------------
The easiest and recommended way to install the bindings is using Julia's inbuilt package manager. OpenCV is available as a registered package for Julia and is supported on all major platforms and architectures. The following steps checked for correctness on Julia v1.6.1

TO install start the Julia REPL. Hit `]` and then type `add OpenCV`.

```bash
$ julia
...
julia> ]
pkg> add OpenCV
```

How To Build The Bindings
-----------------------
Expand Down Expand Up @@ -130,8 +142,9 @@ Note: The sample might take some time to load.
Contributors
------------

Below is the list of contributors of OpenCV.js bindings and tutorials.
Below is the list of contributors of OpenCV.jl bindings and tutorials.

- Archit Rungta (Author of the initial version and GSoC student, Indian Institute of Technology, Kharagpur)
- Sayan Sinha (GSoC mentor, Indian Institute of Technology, Kharagpur)
- Mosè Giordano (GSoC Phase 2 mentor)
- Vadim Pisarevsky (GSoC mentor)