Skip to content
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

Support for MSVC compilers #46

Open
wants to merge 17 commits into
base: 35-investigate-migrating-to-meson
Choose a base branch
from
Open
Prev Previous commit
Next Next commit
Update README.md
Some restructuring to make the flow of the READEME file better.
ErichZimmer authored Apr 13, 2024
commit 65fd88f7ae2135dd83aebcfd8ddc95e5549d3c2e
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -12,11 +12,12 @@ This project is the result of the collaborative effort of numerous researchers i
* Perform digital PIV analysis including subpixel estimation
* and more!

Additionally, two examples are provided to demonstrate how the library can be used for background subtraction of images and multi-threaded PIV analysis.
## Image Loaders

## Supported Image Formats:
Loading and storing images are crucial for any PIV software. Due to this requirement, openpiv-c--qt implements image loaders that can load, convert, and store images.
Currently, there are a few extensions that are supported, but more are under development.

|Extensions | Decode | Encode |
|Supported Extensions | Decode | Encode |
|-------------------------|--------|--------|
| .b16 (PCO CamWare :tm: )| Planned| - |
| .bmp | Planned| Planned|
@@ -26,6 +27,13 @@ Additionally, two examples are provided to demonstrate how the library can be us
| .tif | x | x |
| .webp | Planned| Planned|

## Examples

To demonstrate how this library can perform, two examples are provided in the /examples folder. The first example,
[average_subtract](examples/average_subtract/README.md), is a utility that reads n images, calculates the average, and
writes out n new images with the average subtracted. Additionally, a second example, [process](examples/process/README.md),
is a straight-forward PIV cross correlator that reads two images and performs cross-correlation on them.

## Build

There are some external dependencies under external/, so when cloning use:
@@ -40,21 +48,22 @@ Building uses meson, and is simplified by using meson wrap files to specify the
* (linux) pkg-config (e.g. `apt install pkg-config`)
* curl, zip, unzip, tar (e.g. `apt install curl zip unzip tar`)
* ninja (e.g. `apt install ninja-build`)
* meson (e.g., pip install --user meson)
* meson (e.g., `pip install --user meson`)

Unix users can also use the method used for the Windows build environment as detailed below.

On Windows, the following can be used:
* install TDM-GCC or any other Windows GNU distribution
* install miniconda or venv and setup virtual environment
* install Visual Studio 2019 or 2022. Alternatively, MinGW without POSIX thread model is also known to work.
* install miniconda or python along with venv and setup virtual environment
* pip install cmake (optional)
* pip install ninja
* pip install meson

To build:
* `meson setup builddir` Note, it is good practice to setup --prefix flags so files are not installed on the system.
* `meson setup builddir` Note, it is good practice to setup `--prefix` flags so files are not installed on the system.
* `meson compile -C builddir`

Meson provides multiple build types such as debug, debugoptimized, and release. To change the build type, use the --buildtype flag. For example, `meson setup builddir --buildtype debugoptimized`.
Meson provides multiple build types such as debug, debugoptimized, and release. To change the build type, use the `--buildtype` flag. For example, `meson setup builddir --buildtype debugoptimized`.

To run tests:

@@ -208,7 +217,7 @@ This is about 230us per interrogation area (7 cores, 3696 interrogation areas, 0

## Dependencies

These are captured in `<dependency>.wrap`:
These are captured in `<dependency>.wrap` and are downloaded under the hood:

* c++17 compiler e.g. clang++-5.0, gcc7
* python3
@@ -220,13 +229,6 @@ These are captured in `<dependency>.wrap`:
* libjpeg-turbo
* zlib

## Examples

* under build/examples are two simple applications:
* [process](examples/process/README.md): a straight-forward PIV cross correlator
* [average_subtract](examples/average_subtract/README.md): a utility to read in n
images, find the average and write out n new images with the mean subtracted

# TODO

* build