Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Simple and fast C++ image processing library with focus on heterogeneous systems

License

NotificationsYou must be signed in to change notification settings

manekenpix/penguinV

 
 

Repository files navigation

PenguinV is a powerfulimage processing library with focus on heterogeneous systems.The library is designed with an idea to have common API for CPUs and GPUs simplifying developer's work on context switching between devices.Core features of the library:

  • heterogeneous system support (CPUs and GPUs)
  • CUDA, OpenCL and SIMD (SSE, AVX, NEON) support
  • Python support
  • multithreading support
  • cross-platform (Windows, Linux, MacOS)
  • compactness
  • ability to process separate parts of an image (ROI)
  • user-defined image types and more.

What can it do?

You can develop a software within minutes of your time to obtainhigh performance andaccuracy.It is up to developer to decide which device (CPU or GPU) would execute the code or give such control to the library.

Example code for below images could look like this:

Image red = ExtractChannel( image, RED_CHANNEL );Image binary = Threshold( red,// thresholdGetThreshold(// get weighted thresholdHistogram( red ) ) ) );// get image histogramBlobDetection detection;...detection.find( binary );...Image rgb = ConvertToRgb( binary );rgb = BitwiseAnd( image, rgb );...rgb = BitwiseOr( image, rgb );

The trick behind the code is that you have asingle interface for CPU as well as for GPU!

onetwothreefourfivesix

Contribution

Actions StatusTotal alerts

We welcome and appreciate any help, even if it's a tiny text or code change.Please readcontribution page before starting work on a pull request.Not sure what to start with? Feel free to refer togood first issue orhelp wanted tags.

Requirements

To compile the source code your compiler must support at leastC++ 11 version.

How to install

The library is distributed in the form of source code. To use the library you need to include necessary files into your application project. That's it! No more extra moves!

How to compile an example

Open README.md file in any ofexample directories and follow instructions.

Multithreading support

The library contains it's own thread pool which creates multiple tasks to run image processing function for a given image via multiple threads. Such tenchnique gives a big boost on machines with major CPU usage.

GPU support

All source code and descriptions related to CUDA or OpenCL are located in separatesrc/cuda andsrc/opencl directories respectively. Read full description about CUDA or OpenCL support inREADME file in the directory.

License

This project is under 3-clause BSD License. Please refer to fileLICENSE for more details.

API description

Directorydoc contains latest and valid information and description of library's API.

About

Simple and fast C++ image processing library with focus on heterogeneous systems

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++85.9%
  • Cuda10.3%
  • CMake1.7%
  • Makefile0.8%
  • C0.7%
  • SWIG0.3%
  • Other0.3%

[8]ページ先頭

©2009-2025 Movatter.jp