GPU-accelerated Image Processing library using OpenCL

Overview

pyclesperanto

Build License Website GitHub stars GitHub forks

pyclesperanto is a python package for clEsperanto - a multi-language framework for GPU-accelerated image processing. clEsperanto uses OpenCL kernels from CLIJ. This package relies on the CLIc back-end for processing.

Usage

Note: This project is under heavy development. Functions and parameters are subject to change.

from skimage.io import imread
from pyclesperanto import cle

image = imread("https://imagej.nih.gov/ij/images/blobs.gif")

# push and create buffer
gpu_output = cle.create(image.shape)
gpu_input = cle.push(image)

# apply kernel
cle.add_image_and_scalar(input_image=gpu_input, output_image=gpu_output, scalar=100)

# visualize result
cle.imshow(gpu_output)

# get result as numpy array
result = cle.pull(gpu_output)

Example gallery

Segment + analyze blobs

Cell segmentation + Voronoi labeling

3D image filtering

Find local maxima

3D Tribolium nuclei segmentation

Explore application programming interface (API)

More usage and example can be found as notebooks in the user documentation folder

Installation

Download the repository and update the associated submodules:

git clone https://github.com/clEsperanto/pyclesperanto.git
cd pyclesperanto && git submodule update --init --recursive

Here, we assume that your system has an OpenCL valid device and that all its drivers are correctly installed. Using anaconda (or miniconda), create a virtual environment and activate it:

conda create --name pycle python=3.9
conda activate pycle

Finally, install pyclesperanto and all its dependencies by running the command:

pip install -e .

For MacOS users, Please install the following package:

conda install -c conda-forge -y ocl_icd_wrapper_apple

For Linux users, Please install the following package:

conda install -c conda-forge -y ocl-icd-system

Contributing

Contributions are very welcome. Before spending effort on coding and filing a pull-request, please get in touch, file an issue, and let's discuss your potential contribution.

License

Distributed under the terms of the BSD-3 license, "py-clesperanto" is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

Issues
  • Build fails

    Build fails

    Hi Stephane @StRigaud ,

    I just tried to build on the current #9 but it didn't work anymore on my machine (error below, it's not very informative though). I'm pushing my last branch which still worked to github as https://github.com/clEsperanto/pyclesperanto/tree/old_branch_builds

    You can see the differences between the old_branch_builds that works on my machine and the current code here.

    Do I interpret it correctly, there is an issue in the CMAKE configuration?

    Any hint is welcome!

    Thanks! Robert

    (bio_39) C:\structure\code\pyclesperanto>pip install -e .
    Obtaining file:///C:/structure/code/pyclesperanto
      Installing build dependencies ... done
      Checking if build backend supports build_editable ... done
      Getting requirements to build wheel ... done
      Preparing metadata (pyproject.toml) ... done
    Installing collected packages: pyclesperanto
      Running setup.py develop for pyclesperanto
        error: subprocess-exited-with-error
    
        × python setup.py develop did not run successfully.
        │ exit code: 1
        ╰─> [381 lines of output]
            C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\setuptools\command\easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
              warnings.warn(
            Not searching for unused variables given on the command line.
            -- The C compiler identification is MSVC 19.29.30136.0
            -- Detecting C compiler ABI info
            -- Detecting C compiler ABI info - failed
            -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
            -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - broken
            CMake Error at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message):
              The C compiler
    
                "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
    
              is not able to compile a simple test program.
    
              It fails with the following output:
    
                Change Dir: C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeTmp
    
                Run Build Command(s):C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/ninja/data/bin/ninja cmTC_ed0a6 && [1/2] Building C object CMakeFiles\cmTC_ed0a6.dir\testCCompiler.c.obj
                [2/2] Linking C executable cmTC_ed0a6.exe
                FAILED: cmTC_ed0a6.exe
                cmd.exe /C "cd . && C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\cmake\data\bin\cmake.exe -E vs_link_exe --intdir=CMakeFiles\cmTC_ed0a6.dir --rc=rc --mt=CMAKE_MT-NOTFOUND --manifests  -- C:\PROGRA~2\MICROS~3\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo CMakeFiles\cmTC_ed0a6.dir\testCCompiler.c.obj  /out:cmTC_ed0a6.exe /implib:cmTC_ed0a6.lib /pdb:cmTC_ed0a6.pdb /version:0.0 /machine:x64  /debug /INCREMENTAL /subsystem:console  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
                RC Pass 1: command "rc /fo CMakeFiles\cmTC_ed0a6.dir/manifest.res CMakeFiles\cmTC_ed0a6.dir/manifest.rc" failed (exit code 0) with the following output:
                The system cannot find the file specified
                ninja: build stopped: subcommand failed.
    
    
    
    
    
              CMake will not be able to correctly generate this project.
            Call Stack (most recent call first):
              CMakeLists.txt:3 (ENABLE_LANGUAGE)
    
    
            -- Configuring incomplete, errors occurred!
            See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
            See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeError.log".
            Not searching for unused variables given on the command line.
            CMake Error at CMakeLists.txt:2 (PROJECT):
              Generator
    
                Visual Studio 17 2022
    
              could not find any instance of Visual Studio.
    
    
    
            -- Configuring incomplete, errors occurred!
            See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
            Not searching for unused variables given on the command line.
            -- The C compiler identification is MSVC 19.29.30136.0
            -- Detecting C compiler ABI info
            -- Detecting C compiler ABI info - failed
            -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
            -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - broken
            CMake Error at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message):
              The C compiler
    
                "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
    
              is not able to compile a simple test program.
    
              It fails with the following output:
    
                Change Dir: C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeTmp
    
                Run Build Command(s):C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/ninja/data/bin/ninja cmTC_c45bc && [1/2] Building C object CMakeFiles\cmTC_c45bc.dir\testCCompiler.c.obj
                [2/2] Linking C executable cmTC_c45bc.exe
                FAILED: cmTC_c45bc.exe
                cmd.exe /C "cd . && C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\cmake\data\bin\cmake.exe -E vs_link_exe --intdir=CMakeFiles\cmTC_c45bc.dir --rc=rc --mt=CMAKE_MT-NOTFOUND --manifests  -- C:\PROGRA~2\MICROS~3\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo CMakeFiles\cmTC_c45bc.dir\testCCompiler.c.obj  /out:cmTC_c45bc.exe /implib:cmTC_c45bc.lib /pdb:cmTC_c45bc.pdb /version:0.0 /machine:x64  /debug /INCREMENTAL /subsystem:console  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
                RC Pass 1: command "rc /fo CMakeFiles\cmTC_c45bc.dir/manifest.res CMakeFiles\cmTC_c45bc.dir/manifest.rc" failed (exit code 0) with the following output:
                The system cannot find the file specified
                ninja: build stopped: subcommand failed.
    
    
    
    
    
              CMake will not be able to correctly generate this project.
            Call Stack (most recent call first):
              CMakeLists.txt:3 (ENABLE_LANGUAGE)
    
    
            -- Configuring incomplete, errors occurred!
            See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
            See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeError.log".
            Not searching for unused variables given on the command line.
            -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
            -- The C compiler identification is MSVC 19.29.30136.0
            -- Detecting C compiler ABI info
            -- Detecting C compiler ABI info - done
            -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
            -- Detecting C compile features
            -- Detecting C compile features - done
            -- The CXX compiler identification is MSVC 19.29.30136.0
            CMake Warning (dev) at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake:162 (if):
              Policy CMP0054 is not set: Only interpret if() arguments as variables or
              keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
              details.  Use the cmake_policy command to set the policy and suppress this
              warning.
    
              Quoted variables like "MSVC" will no longer be dereferenced when the policy
              is set to NEW.  Since the policy is not set the OLD behavior will be used.
            Call Stack (most recent call first):
              CMakeLists.txt:4 (ENABLE_LANGUAGE)
            This warning is for project developers.  Use -Wno-dev to suppress it.
    
            CMake Warning (dev) at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake:183 (elseif):
              Policy CMP0054 is not set: Only interpret if() arguments as variables or
              keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
              details.  Use the cmake_policy command to set the policy and suppress this
              warning.
    
              Quoted variables like "MSVC" will no longer be dereferenced when the policy
              is set to NEW.  Since the policy is not set the OLD behavior will be used.
            Call Stack (most recent call first):
              CMakeLists.txt:4 (ENABLE_LANGUAGE)
            This warning is for project developers.  Use -Wno-dev to suppress it.
    
            -- Detecting CXX compiler ABI info
            -- Detecting CXX compiler ABI info - done
            -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
            -- Detecting CXX compile features
            -- Detecting CXX compile features - done
            -- Configuring done
            -- Generating done
            -- Build files have been written to: C:/structure/code/pyclesperanto/_cmake_test_compile/build
            -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
            -- WARNING: No ICD found in virtual environment.
            -- Build project code coverage: OFF
            -- Build CLIc as shared lib: OFF
            -- Build tests: ON
            -- Build documentation: ON (WIP)
            -- Build benchmark: ON
            -- CMAKE_CONFIGURATION_TYPES: Release;Debug;MinSizeRel;RelWithDebInfo
            -- CMAKE_GENERATOR: Multi-config
            -- CMAKE_GENERATOR: Visual Studio 16 2019
            -- CMAKE_REGISTRY_FOLDER: OFF
            -- Found pybind11: C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/pybind11/include (found version "2.9.2")
            -- Configuring done
            -- Generating done
            -- Build files have been written to: C:/structure/code/pyclesperanto/_skbuild/win-amd64-3.9/cmake-build
            Microsoft (R) Build Engine version 16.11.1+3e40a09f8 for .NET Framework
            Copyright (C) Microsoft Corporation. All rights reserved.
    
              Checking Build System
              Generating cle_preamble header.
              Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
              Generating kernels header from clij opencl files.
              Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
              Generating cleKernelList header.
              Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
              Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\CLIc\clic\CLIc.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\CLIc\clic\CLIc.vcxproj]
              cleKernel.cpp
              clesperanto.cpp
              cleAbsoluteKernel.cpp
              cleAddImageAndScalarKernel.cpp
              cleAddImagesWeightedKernel.cpp
              cleBinaryAndKernel.cpp
              cleBinaryNotKernel.cpp
              cleBinaryOrKernel.cpp
              cleBinarySubtractKernel.cpp
              cleBinaryXorKernel.cpp
              cleBlockEnumerateKernel.cpp
              cleCopyKernel.cpp
              cleDetectMaximaKernel.cpp
              cleDilateSphereKernel.cpp
              cleEqualConstantKernel.cpp
              cleEqualKernel.cpp
              cleErodeSphereKernel.cpp
              cleExecuteSeparableKernel.cpp
              cleFlagExistingLabelsKernel.cpp
              cleGaussianBlurKernel.cpp
              Generating Code...
              Compiling...
              cleGreaterConstantKernel.cpp
              cleGreaterKernel.cpp
              cleGreaterOrEqualConstantKernel.cpp
              cleGreaterOrEqualKernel.cpp
              cleMaskKernel.cpp
              cleMaximumBoxKernel.cpp
              cleMaximumXProjectionKernel.cpp
              cleMaximumYProjectionKernel.cpp
              cleMaximumZProjectionKernel.cpp
              cleMeanBoxKernel.cpp
              cleMeanSphereKernel.cpp
              cleMinimumBoxKernel.cpp
              cleMinimumXProjectionKernel.cpp
              cleMinimumYProjectionKernel.cpp
              cleMinimumZProjectionKernel.cpp
              cleNonzeroMinimumBoxKernel.cpp
              cleNotEqualConstantKernel.cpp
              cleNotEqualKernel.cpp
              cleOnlyzeroOverwriteMaximumBoxKernel.cpp
              cleOnlyzeroOverwriteMaximumDiamondKernel.cpp
              Generating Code...
              Compiling...
              cleReplaceIntensitiesKernel.cpp
              cleReplaceIntensityKernel.cpp
              cleSetColumnKernel.cpp
              cleSetKernel.cpp
              cleSetNonzeroPixelsToPixelindexKernel.cpp
              cleSmallerConstantKernel.cpp
              cleSmallerKernel.cpp
              cleSmallerOrEqualConstantKernel.cpp
              cleSmallerOrEqualKernel.cpp
              cleSobelKernel.cpp
              cleSumReductionKernel.cpp
              cleSumXProjectionKernel.cpp
              cleSumYProjectionKernel.cpp
              cleSumZProjectionKernel.cpp
              cleExtendLabelingViaVoronoiKernel.cpp
              cleMaximumOfAllPixelsKernel.cpp
              cleMinimumOfAllPixelsKernel.cpp
              cleSumOfAllPixelsKernel.cpp
              cleCloseIndexGapsInLabelMapKernel.cpp
              cleDifferenceOfGaussianKernel.cpp
              Generating Code...
              Compiling...
              cleHistogramKernel.cpp
              cleConnectedComponentsLabelingBoxKernel.cpp
              cleThresholdOtsuKernel.cpp
              cleMaskedVoronoiLabelingKernel.cpp
              cleVoronoiOtsuLabelingKernel.cpp
              Generating Code...
              CLIc.vcxproj -> C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\CLIc\clic\Release\CLIc.lib
              Building Custom Rule C:/structure/code/pyclesperanto/CMakeLists.txt
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
              pyclesperanto.cpp
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
              pydata.cpp
            cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
              pygpu.cpp
              pytier1.cpp
              pytier2.cpp
            cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
              pytier3.cpp
              pytier4.cpp
            C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11\detail/init.h(79,1): error C2512: 'PyData': no appropriate default constructor available (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp) [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11\detail/init.h(79,1): message : No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp) [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11\detail/init.h(206): message : see reference to function template instantiation 'Class *pybind11::detail::initimpl::construct_or_initialize<PyData,,0>(void)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
                      with
                      [
                          Class=PyData
                      ] (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp)
            C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11/pybind11.h(1615): message : see reference to function template instantiation 'void pybind11::detail::initimpl::constructor<>::execute<pybind11::class_<PyData,std::shared_ptr<PyData>>,,0>(Class &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
                      with
                      [
                          Class=pybind11::class_<PyData,std::shared_ptr<PyData>>
                      ] (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp)
            C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11/pybind11.h(1615): message : see reference to function template instantiation 'void pybind11::detail::initimpl::constructor<>::execute<pybind11::class_<PyData,std::shared_ptr<PyData>>,,0>(Class &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
                      with
                      [
                          Class=pybind11::class_<PyData,std::shared_ptr<PyData>>
                      ] (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp)
            C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp(27): message : see reference to function template instantiation 'pybind11::class_<PyData,std::shared_ptr<PyData>> &pybind11::class_<PyData,std::shared_ptr<PyData>>::def<,>(const pybind11::detail::initimpl::constructor<> &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
            C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp(27): message : see reference to function template instantiation 'pybind11::class_<PyData,std::shared_ptr<PyData>> &pybind11::class_<PyData,std::shared_ptr<PyData>>::def<,>(const pybind11::detail::initimpl::constructor<> &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
              File "C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\setuptools_wrap.py", line 645, in setup
                cmkr.make(make_args, install_target=cmake_install_target, env=env)
              File "C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\cmaker.py", line 660, in make
                self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
              File "C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\cmaker.py", line 684, in make_impl
                raise SKBuildError(
            An error occurred while building with CMake.
              Command:
                cmake --build . --target install --config Release --
              Install target:
                install
              Source directory:
                C:\structure\code\pyclesperanto
              Working directory:
                C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build
            Please check the install target is valid and see CMake's output for more information.
    
    
            --------------------------------------------------------------------------------
            -- Trying "Ninja (Visual Studio 17 2022 x64 v143)" generator
            --------------------------------
            ---------------------------
            ----------------------
            -----------------
            ------------
            -------
            --
            --
            -------
            ------------
            -----------------
            ----------------------
            ---------------------------
            --------------------------------
            -- Trying "Ninja (Visual Studio 17 2022 x64 v143)" generator - failure
            --------------------------------------------------------------------------------
    
    
    
            --------------------------------------------------------------------------------
            -- Trying "Visual Studio 17 2022 x64 v143" generator
            --------------------------------
            ---------------------------
            ----------------------
            -----------------
            ------------
            -------
            --
            --
            -------
            ------------
            -----------------
            ----------------------
            ---------------------------
            --------------------------------
            -- Trying "Visual Studio 17 2022 x64 v143" generator - failure
            --------------------------------------------------------------------------------
    
    
    
            --------------------------------------------------------------------------------
            -- Trying "Ninja (Visual Studio 16 2019 x64 v142)" generator
            --------------------------------
            ---------------------------
            ----------------------
            -----------------
            ------------
            -------
            --
            --
            -------
            ------------
            -----------------
            ----------------------
            ---------------------------
            --------------------------------
            -- Trying "Ninja (Visual Studio 16 2019 x64 v142)" generator - failure
            --------------------------------------------------------------------------------
    
    
    
            --------------------------------------------------------------------------------
            -- Trying "Visual Studio 16 2019 x64 v142" generator
            --------------------------------
            ---------------------------
            ----------------------
            -----------------
            ------------
            -------
            --
            --
            -------
            ------------
            -----------------
            ----------------------
            ---------------------------
            --------------------------------
            -- Trying "Visual Studio 16 2019 x64 v142" generator - success
            --------------------------------------------------------------------------------
    
            Configuring Project
              Working directory:
                C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build
              Command:
                cmake 'C:\structure\code\pyclesperanto' -G 'Visual Studio 16 2019' '-DCMAKE_INSTALL_PREFIX:PATH=C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-install\pyclesperanto' '-DPYTHON_EXECUTABLE:FILEPATH=C:\Users\rober\miniconda3\envs\bio_39\python.exe' -DPYTHON_VERSION_STRING:STRING=3.9.10 '-DPYTHON_INCLUDE_DIR:PATH=C:\Users\rober\miniconda3\envs\bio_39\Include' '-DPYTHON_LIBRARY:FILEPATH=C:\Users\rober\miniconda3\envs\bio_39\libs\python39.lib' -DSKBUILD:INTERNAL=TRUE '-DCMAKE_MODULE_PATH:PATH=C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\resources\cmake' -T v142 -A x64 -DCMAKE_BUILD_TYPE:STRING=Release
    
            Traceback (most recent call last):
    
            [end of output]
    
        note: This error originates from a subprocess, and is likely not a problem with pip.
    error: subprocess-exited-with-error
    
    × python setup.py develop did not run successfully.
    │ exit code: 1
    ╰─> [381 lines of output]
        C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\setuptools\command\easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
          warnings.warn(
        Not searching for unused variables given on the command line.
        -- The C compiler identification is MSVC 19.29.30136.0
        -- Detecting C compiler ABI info
        -- Detecting C compiler ABI info - failed
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - broken
        CMake Error at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message):
          The C compiler
    
            "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
    
          is not able to compile a simple test program.
    
          It fails with the following output:
    
            Change Dir: C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeTmp
    
            Run Build Command(s):C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/ninja/data/bin/ninja cmTC_ed0a6 && [1/2] Building C object CMakeFiles\cmTC_ed0a6.dir\testCCompiler.c.obj
            [2/2] Linking C executable cmTC_ed0a6.exe
            FAILED: cmTC_ed0a6.exe
            cmd.exe /C "cd . && C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\cmake\data\bin\cmake.exe -E vs_link_exe --intdir=CMakeFiles\cmTC_ed0a6.dir --rc=rc --mt=CMAKE_MT-NOTFOUND --manifests  -- C:\PROGRA~2\MICROS~3\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo CMakeFiles\cmTC_ed0a6.dir\testCCompiler.c.obj  /out:cmTC_ed0a6.exe /implib:cmTC_ed0a6.lib /pdb:cmTC_ed0a6.pdb /version:0.0 /machine:x64  /debug /INCREMENTAL /subsystem:console  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
            RC Pass 1: command "rc /fo CMakeFiles\cmTC_ed0a6.dir/manifest.res CMakeFiles\cmTC_ed0a6.dir/manifest.rc" failed (exit code 0) with the following output:
            The system cannot find the file specified
            ninja: build stopped: subcommand failed.
    
    
    
    
    
          CMake will not be able to correctly generate this project.
        Call Stack (most recent call first):
          CMakeLists.txt:3 (ENABLE_LANGUAGE)
    
    
        -- Configuring incomplete, errors occurred!
        See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
        See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeError.log".
        Not searching for unused variables given on the command line.
        CMake Error at CMakeLists.txt:2 (PROJECT):
          Generator
    
            Visual Studio 17 2022
    
          could not find any instance of Visual Studio.
    
    
    
        -- Configuring incomplete, errors occurred!
        See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
        Not searching for unused variables given on the command line.
        -- The C compiler identification is MSVC 19.29.30136.0
        -- Detecting C compiler ABI info
        -- Detecting C compiler ABI info - failed
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - broken
        CMake Error at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message):
          The C compiler
    
            "C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
    
          is not able to compile a simple test program.
    
          It fails with the following output:
    
            Change Dir: C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeTmp
    
            Run Build Command(s):C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/ninja/data/bin/ninja cmTC_c45bc && [1/2] Building C object CMakeFiles\cmTC_c45bc.dir\testCCompiler.c.obj
            [2/2] Linking C executable cmTC_c45bc.exe
            FAILED: cmTC_c45bc.exe
            cmd.exe /C "cd . && C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\cmake\data\bin\cmake.exe -E vs_link_exe --intdir=CMakeFiles\cmTC_c45bc.dir --rc=rc --mt=CMAKE_MT-NOTFOUND --manifests  -- C:\PROGRA~2\MICROS~3\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo CMakeFiles\cmTC_c45bc.dir\testCCompiler.c.obj  /out:cmTC_c45bc.exe /implib:cmTC_c45bc.lib /pdb:cmTC_c45bc.pdb /version:0.0 /machine:x64  /debug /INCREMENTAL /subsystem:console  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
            RC Pass 1: command "rc /fo CMakeFiles\cmTC_c45bc.dir/manifest.res CMakeFiles\cmTC_c45bc.dir/manifest.rc" failed (exit code 0) with the following output:
            The system cannot find the file specified
            ninja: build stopped: subcommand failed.
    
    
    
    
    
          CMake will not be able to correctly generate this project.
        Call Stack (most recent call first):
          CMakeLists.txt:3 (ENABLE_LANGUAGE)
    
    
        -- Configuring incomplete, errors occurred!
        See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
        See also "C:/structure/code/pyclesperanto/_cmake_test_compile/build/CMakeFiles/CMakeError.log".
        Not searching for unused variables given on the command line.
        -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
        -- The C compiler identification is MSVC 19.29.30136.0
        -- Detecting C compiler ABI info
        -- Detecting C compiler ABI info - done
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
        -- Detecting C compile features
        -- Detecting C compile features - done
        -- The CXX compiler identification is MSVC 19.29.30136.0
        CMake Warning (dev) at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake:162 (if):
          Policy CMP0054 is not set: Only interpret if() arguments as variables or
          keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
          details.  Use the cmake_policy command to set the policy and suppress this
          warning.
    
          Quoted variables like "MSVC" will no longer be dereferenced when the policy
          is set to NEW.  Since the policy is not set the OLD behavior will be used.
        Call Stack (most recent call first):
          CMakeLists.txt:4 (ENABLE_LANGUAGE)
        This warning is for project developers.  Use -Wno-dev to suppress it.
    
        CMake Warning (dev) at C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/cmake/data/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake:183 (elseif):
          Policy CMP0054 is not set: Only interpret if() arguments as variables or
          keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
          details.  Use the cmake_policy command to set the policy and suppress this
          warning.
    
          Quoted variables like "MSVC" will no longer be dereferenced when the policy
          is set to NEW.  Since the policy is not set the OLD behavior will be used.
        Call Stack (most recent call first):
          CMakeLists.txt:4 (ENABLE_LANGUAGE)
        This warning is for project developers.  Use -Wno-dev to suppress it.
    
        -- Detecting CXX compiler ABI info
        -- Detecting CXX compiler ABI info - done
        -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
        -- Detecting CXX compile features
        -- Detecting CXX compile features - done
        -- Configuring done
        -- Generating done
        -- Build files have been written to: C:/structure/code/pyclesperanto/_cmake_test_compile/build
        -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
        -- WARNING: No ICD found in virtual environment.
        -- Build project code coverage: OFF
        -- Build CLIc as shared lib: OFF
        -- Build tests: ON
        -- Build documentation: ON (WIP)
        -- Build benchmark: ON
        -- CMAKE_CONFIGURATION_TYPES: Release;Debug;MinSizeRel;RelWithDebInfo
        -- CMAKE_GENERATOR: Multi-config
        -- CMAKE_GENERATOR: Visual Studio 16 2019
        -- CMAKE_REGISTRY_FOLDER: OFF
        -- Found pybind11: C:/Users/rober/AppData/Local/Temp/pip-build-env-uqm4ap4f/overlay/Lib/site-packages/pybind11/include (found version "2.9.2")
        -- Configuring done
        -- Generating done
        -- Build files have been written to: C:/structure/code/pyclesperanto/_skbuild/win-amd64-3.9/cmake-build
        Microsoft (R) Build Engine version 16.11.1+3e40a09f8 for .NET Framework
        Copyright (C) Microsoft Corporation. All rights reserved.
    
          Checking Build System
          Generating cle_preamble header.
          Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
          Generating kernels header from clij opencl files.
          Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
          Generating cleKernelList header.
          Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
          Building Custom Rule C:/structure/code/pyclesperanto/CLIc/clic/CMakeLists.txt
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\CLIc\clic\CLIc.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\CLIc\clic\CLIc.vcxproj]
          cleKernel.cpp
          clesperanto.cpp
          cleAbsoluteKernel.cpp
          cleAddImageAndScalarKernel.cpp
          cleAddImagesWeightedKernel.cpp
          cleBinaryAndKernel.cpp
          cleBinaryNotKernel.cpp
          cleBinaryOrKernel.cpp
          cleBinarySubtractKernel.cpp
          cleBinaryXorKernel.cpp
          cleBlockEnumerateKernel.cpp
          cleCopyKernel.cpp
          cleDetectMaximaKernel.cpp
          cleDilateSphereKernel.cpp
          cleEqualConstantKernel.cpp
          cleEqualKernel.cpp
          cleErodeSphereKernel.cpp
          cleExecuteSeparableKernel.cpp
          cleFlagExistingLabelsKernel.cpp
          cleGaussianBlurKernel.cpp
          Generating Code...
          Compiling...
          cleGreaterConstantKernel.cpp
          cleGreaterKernel.cpp
          cleGreaterOrEqualConstantKernel.cpp
          cleGreaterOrEqualKernel.cpp
          cleMaskKernel.cpp
          cleMaximumBoxKernel.cpp
          cleMaximumXProjectionKernel.cpp
          cleMaximumYProjectionKernel.cpp
          cleMaximumZProjectionKernel.cpp
          cleMeanBoxKernel.cpp
          cleMeanSphereKernel.cpp
          cleMinimumBoxKernel.cpp
          cleMinimumXProjectionKernel.cpp
          cleMinimumYProjectionKernel.cpp
          cleMinimumZProjectionKernel.cpp
          cleNonzeroMinimumBoxKernel.cpp
          cleNotEqualConstantKernel.cpp
          cleNotEqualKernel.cpp
          cleOnlyzeroOverwriteMaximumBoxKernel.cpp
          cleOnlyzeroOverwriteMaximumDiamondKernel.cpp
          Generating Code...
          Compiling...
          cleReplaceIntensitiesKernel.cpp
          cleReplaceIntensityKernel.cpp
          cleSetColumnKernel.cpp
          cleSetKernel.cpp
          cleSetNonzeroPixelsToPixelindexKernel.cpp
          cleSmallerConstantKernel.cpp
          cleSmallerKernel.cpp
          cleSmallerOrEqualConstantKernel.cpp
          cleSmallerOrEqualKernel.cpp
          cleSobelKernel.cpp
          cleSumReductionKernel.cpp
          cleSumXProjectionKernel.cpp
          cleSumYProjectionKernel.cpp
          cleSumZProjectionKernel.cpp
          cleExtendLabelingViaVoronoiKernel.cpp
          cleMaximumOfAllPixelsKernel.cpp
          cleMinimumOfAllPixelsKernel.cpp
          cleSumOfAllPixelsKernel.cpp
          cleCloseIndexGapsInLabelMapKernel.cpp
          cleDifferenceOfGaussianKernel.cpp
          Generating Code...
          Compiling...
          cleHistogramKernel.cpp
          cleConnectedComponentsLabelingBoxKernel.cpp
          cleThresholdOtsuKernel.cpp
          cleMaskedVoronoiLabelingKernel.cpp
          cleVoronoiOtsuLabelingKernel.cpp
          Generating Code...
          CLIc.vcxproj -> C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\CLIc\clic\Release\CLIc.lib
          Building Custom Rule C:/structure/code/pyclesperanto/CMakeLists.txt
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
          pyclesperanto.cpp
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
          pydata.cpp
        cl : command line warning D9002: ignoring unknown option '-fPIC' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
          pygpu.cpp
          pytier1.cpp
          pytier2.cpp
        cl : command line warning D9002: ignoring unknown option '-fvisibility=hidden' [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
          pytier3.cpp
          pytier4.cpp
        C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11\detail/init.h(79,1): error C2512: 'PyData': no appropriate default constructor available (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp) [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11\detail/init.h(79,1): message : No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp) [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11\detail/init.h(206): message : see reference to function template instantiation 'Class *pybind11::detail::initimpl::construct_or_initialize<PyData,,0>(void)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
                  with
                  [
                      Class=PyData
                  ] (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp)
        C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11/pybind11.h(1615): message : see reference to function template instantiation 'void pybind11::detail::initimpl::constructor<>::execute<pybind11::class_<PyData,std::shared_ptr<PyData>>,,0>(Class &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
                  with
                  [
                      Class=pybind11::class_<PyData,std::shared_ptr<PyData>>
                  ] (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp)
        C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\pybind11\include\pybind11/pybind11.h(1615): message : see reference to function template instantiation 'void pybind11::detail::initimpl::constructor<>::execute<pybind11::class_<PyData,std::shared_ptr<PyData>>,,0>(Class &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
                  with
                  [
                      Class=pybind11::class_<PyData,std::shared_ptr<PyData>>
                  ] (compiling source file C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp)
        C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp(27): message : see reference to function template instantiation 'pybind11::class_<PyData,std::shared_ptr<PyData>> &pybind11::class_<PyData,std::shared_ptr<PyData>>::def<,>(const pybind11::detail::initimpl::constructor<> &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
        C:\structure\code\pyclesperanto\pyclesperanto\pydata.cpp(27): message : see reference to function template instantiation 'pybind11::class_<PyData,std::shared_ptr<PyData>> &pybind11::class_<PyData,std::shared_ptr<PyData>>::def<,>(const pybind11::detail::initimpl::constructor<> &)' being compiled [C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build\_pyclesperanto.vcxproj]
          File "C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\setuptools_wrap.py", line 645, in setup
            cmkr.make(make_args, install_target=cmake_install_target, env=env)
          File "C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\cmaker.py", line 660, in make
            self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
          File "C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\cmaker.py", line 684, in make_impl
            raise SKBuildError(
        An error occurred while building with CMake.
          Command:
            cmake --build . --target install --config Release --
          Install target:
            install
          Source directory:
            C:\structure\code\pyclesperanto
          Working directory:
            C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build
        Please check the install target is valid and see CMake's output for more information.
    
    
        --------------------------------------------------------------------------------
        -- Trying "Ninja (Visual Studio 17 2022 x64 v143)" generator
        --------------------------------
        ---------------------------
        ----------------------
        -----------------
        ------------
        -------
        --
        --
        -------
        ------------
        -----------------
        ----------------------
        ---------------------------
        --------------------------------
        -- Trying "Ninja (Visual Studio 17 2022 x64 v143)" generator - failure
        --------------------------------------------------------------------------------
    
    
    
        --------------------------------------------------------------------------------
        -- Trying "Visual Studio 17 2022 x64 v143" generator
        --------------------------------
        ---------------------------
        ----------------------
        -----------------
        ------------
        -------
        --
        --
        -------
        ------------
        -----------------
        ----------------------
        ---------------------------
        --------------------------------
        -- Trying "Visual Studio 17 2022 x64 v143" generator - failure
        --------------------------------------------------------------------------------
    
    
    
        --------------------------------------------------------------------------------
        -- Trying "Ninja (Visual Studio 16 2019 x64 v142)" generator
        --------------------------------
        ---------------------------
        ----------------------
        -----------------
        ------------
        -------
        --
        --
        -------
        ------------
        -----------------
        ----------------------
        ---------------------------
        --------------------------------
        -- Trying "Ninja (Visual Studio 16 2019 x64 v142)" generator - failure
        --------------------------------------------------------------------------------
    
    
    
        --------------------------------------------------------------------------------
        -- Trying "Visual Studio 16 2019 x64 v142" generator
        --------------------------------
        ---------------------------
        ----------------------
        -----------------
        ------------
        -------
        --
        --
        -------
        ------------
        -----------------
        ----------------------
        ---------------------------
        --------------------------------
        -- Trying "Visual Studio 16 2019 x64 v142" generator - success
        --------------------------------------------------------------------------------
    
        Configuring Project
          Working directory:
            C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-build
          Command:
            cmake 'C:\structure\code\pyclesperanto' -G 'Visual Studio 16 2019' '-DCMAKE_INSTALL_PREFIX:PATH=C:\structure\code\pyclesperanto\_skbuild\win-amd64-3.9\cmake-install\pyclesperanto' '-DPYTHON_EXECUTABLE:FILEPATH=C:\Users\rober\miniconda3\envs\bio_39\python.exe' -DPYTHON_VERSION_STRING:STRING=3.9.10 '-DPYTHON_INCLUDE_DIR:PATH=C:\Users\rober\miniconda3\envs\bio_39\Include' '-DPYTHON_LIBRARY:FILEPATH=C:\Users\rober\miniconda3\envs\bio_39\libs\python39.lib' -DSKBUILD:INTERNAL=TRUE '-DCMAKE_MODULE_PATH:PATH=C:\Users\rober\AppData\Local\Temp\pip-build-env-uqm4ap4f\overlay\Lib\site-packages\skbuild\resources\cmake' -T v142 -A x64 -DCMAKE_BUILD_TYPE:STRING=Release
    
        Traceback (most recent call last):
    
        [end of output]
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
    
    opened by haesleinhuepf 6
  • More functions and examples

    More functions and examples

    Hey Stephane @StRigaud ,

    here come some more functions + a workflow benchmark notebook for the Tribolium dataset. Looks very good!

    I'll continue tomorrow with the docstrings and likely some more functions.

    Cheers, Robert

    opened by haesleinhuepf 2
  • Potential width/height mixup in separable filters

    Potential width/height mixup in separable filters

    Hi Stephane @StRigaud ,

    as just discussed, there might be an issue with images that don't have the same width/height in CLIc. In order reproduce the issue, you may need to checkout this branch of pyclesperanto:

    https://github.com/clEsperanto/pyclesperanto/tree/cle_API_pimped

    and then run this code:

    from skimage.io import imread, imshow
    from pyclesperanto import Clesperanto
    
    cle = Clesperanto()
    image = imread("blobs.tif")
    blurred = cle.gaussian_blur(image, sigma_x=16, sigma_y=16, sigma_z=16)
    
    imshow(cle.pull(blurred))
    

    It will then look like this:

    image

    Let me know if you need anything else!

    Thanks!

    Best, Robert

    bug 
    opened by haesleinhuepf 2
  • Fix axis order

    Fix axis order

    Related to:

    • #11

    Enforce dimensions flip when switching from python to c++ and reverse in the wrapper code

    Also needed to change create_like to provide the shape as numpy standards

    This is a quick fix, other modification would be required.

    opened by StRigaud 1
  • Cle api

    Cle api

    Hi Stephane @StRigaud ,

    here comes the promised potential clesperanto gateway API. Goal was to be able to call things in a way like

    a = cle.push(...)
    b = cle.create(...)
    c = cle.gaussian_blur(a, b, ...)
    result = cle.pull(c)
    

    I'm going to send a more pimped version in a follow-up PR. This may serve as base for discussion.

    Best, Robert

    opened by haesleinhuepf 0
  • detect_maxima_box has no radius parameter

    detect_maxima_box has no radius parameter

    There's a minor difference between pyclesperanto_prototype and pyclesperanto: The function detect_maxima_box() has no radius_x,... parameters in pyclesperanto. Is this intentional?

    low_priority 
    opened by haesleinhuepf 2
  • Kernel wishlist

    Kernel wishlist

    Hi Stephane @StRigaud ,

    I'm just attempting to implement some basic workflows and some operations are missing. I'll list them here and would consider them as high priority. These are not necessary before I2K, but nice to have.

    • subtract_image_from_scalar for inverting an image
    • dilate_labels for segmenting the rim of nuclei
    • multiply_images
    • divide_images

    I'll extend that list in the coming days.

    No rush!

    opened by haesleinhuepf 5
  • Projection operation are very slow

    Projection operation are very slow

    When benchmarking the histogram I have notice that pyclesperanto is very slow. I identified the issue to the SumYProjection operation at the end to sum the partial histogram into a final one.

    Projection (minimum, maximum, and sum) are costly without any good reason. We need to solve this issue.

    Possible things to check:

    • Only tested Y and Z direction, is it the same for X?
    • Is the GlobalNDRange correct?

    Projection kernels are very basics, I fail to understand why they can be so slow ...

    bug 
    opened by StRigaud 2
  • Using conda package ocl-icd instead of system ocl-icd-loader

    Using conda package ocl-icd instead of system ocl-icd-loader

    related to:

    • https://github.com/clEsperanto/pyclesperanto/pull/6

    To work, we compile against an ICD-loader. This can be provided by the system (through the OS, vendors, etc.) or we can use on provided in the virtual environment through a package ocl-icd. The latest is the one used by pyopencl and pocl, and it make more sense in Python to rely on the environment than on the system.

    This currently work at the condition that pyopencl is called once before, which is not acceptable. See:

    • https://github.com/clEsperanto/pyclesperanto/pull/6#issuecomment-1091843577
    bug help wanted 
    opened by StRigaud 1
  • Cle api pimped

    Cle api pimped

    Hi Stephane @StRigaud ,

    here comes the pimped API as follow up of #8 . It allows cle-functions to consume numpy-arrays instead of opencl-data. Furthermore, if output-images are not set, they are automatically created. Hence, this works:

    a = np.zeros((10,10))
    b = cle.gaussian_blur(a, sigma_x=2, sigma_y=2)
    

    We're coming close to the prototype API :-) !

    Best, Robert

    opened by haesleinhuepf 4
Owner
GPU-accelerated image processing across languages and platforms
null
NVIDIA Merlin is an open source library providing end-to-end GPU-accelerated recommender systems, from feature engineering and preprocessing to training deep learning models and running inference in production.

NVIDIA Merlin NVIDIA Merlin is an open source library designed to accelerate recommender systems on NVIDIA’s GPUs. It enables data scientists, machine

null 260 Jun 21, 2022
GPU-accelerated PyTorch implementation of Zero-shot User Intent Detection via Capsule Neural Networks

GPU-accelerated PyTorch implementation of Zero-shot User Intent Detection via Capsule Neural Networks This repository implements a capsule model Inten

Joel Huang 14 Aug 9, 2021
(Py)TOD: Tensor-based Outlier Detection, A General GPU-Accelerated Framework

(Py)TOD: Tensor-based Outlier Detection, A General GPU-Accelerated Framework Background: Outlier detection (OD) is a key data mining task for identify

Yue Zhao 100 Jun 27, 2022
GPU Accelerated Non-rigid ICP for surface registration

GPU Accelerated Non-rigid ICP for surface registration Introduction Preivous Non-rigid ICP algorithm is usually implemented on CPU, and needs to solve

Haozhe Wu 92 Jun 13, 2022
Multiple types of NN model optimization environments. It is possible to directly access the host PC GUI and the camera to verify the operation. Intel iHD GPU (iGPU) support. NVIDIA GPU (dGPU) support.

mtomo Multiple types of NN model optimization environments. It is possible to directly access the host PC GUI and the camera to verify the operation.

Katsuya Hyodo 24 Mar 2, 2022
High performance Cross-platform Inference-engine, you could run Anakin on x86-cpu,arm, nv-gpu, amd-gpu,bitmain and cambricon devices.

Anakin2.0 Welcome to the Anakin GitHub. Anakin is a cross-platform, high-performance inference engine, which is originally developed by Baidu engineer

null 502 Jun 26, 2022
GrabGpu_py: a scripts for grab gpu when gpu is free

GrabGpu_py a scripts for grab gpu when gpu is free. WaitCondition: gpu_memory >

tianyuluan 3 Jun 18, 2022
Third party Pytorch implement of Image Processing Transformer (Pre-Trained Image Processing Transformer arXiv:2012.00364v2)

ImageProcessingTransformer Third party Pytorch implement of Image Processing Transformer (Pre-Trained Image Processing Transformer arXiv:2012.00364v2)

null 57 May 27, 2022
A python comtrade load library accelerated by go

Comtrade-GRPC Code for python used is mainly from dparrini/python-comtrade. Just patch the code in BinaryDatReader.parse for parsing a little more eff

Bo 1 Dec 27, 2021
A fast poisson image editing implementation that can utilize multi-core CPU or GPU to handle a high-resolution image input.

Poisson Image Editing - A Parallel Implementation Jiayi Weng (jiayiwen), Zixu Chen (zixuc) Poisson Image Editing is a technique that can fuse two imag

Jiayi Weng 22 Jun 22, 2022
Accelerated deep learning R&D

Accelerated deep learning R&D PyTorch framework for Deep Learning research and development. It focuses on reproducibility, rapid experimentation, and

Catalyst-Team 3k Jun 25, 2022
3D ResNet Video Classification accelerated by TensorRT

Activity Recognition TensorRT Perform video classification using 3D ResNets trained on Kinetics-400 dataset and accelerated with TensorRT P.S Click on

Akash James 35 Apr 15, 2022
Hardware accelerated, batchable and differentiable optimizers in JAX.

JAXopt Installation | Examples | References Hardware accelerated (GPU/TPU), batchable and differentiable optimizers in JAX. Installation JAXopt can be

Google 504 Jun 25, 2022
Fast and scalable uncertainty quantification for neural molecular property prediction, accelerated optimization, and guided virtual screening.

Evidential Deep Learning for Guided Molecular Property Prediction and Discovery Ava Soleimany*, Alexander Amini*, Samuel Goldman*, Daniela Rus, Sangee

Alexander Amini 60 Jun 19, 2022
meProp: Sparsified Back Propagation for Accelerated Deep Learning

meProp The codes were used for the paper meProp: Sparsified Back Propagation for Accelerated Deep Learning with Reduced Overfitting (ICML 2017) [pdf]

LancoPKU 108 Apr 12, 2022
Implements pytorch code for the Accelerated SGD algorithm.

AccSGD This is the code associated with Accelerated SGD algorithm used in the paper On the insufficiency of existing momentum schemes for Stochastic O

null 202 Jun 10, 2022
meProp: Sparsified Back Propagation for Accelerated Deep Learning (ICML 2017)

meProp The codes were used for the paper meProp: Sparsified Back Propagation for Accelerated Deep Learning with Reduced Overfitting (ICML 2017) [pdf]

LancoPKU 108 Apr 12, 2022
Real-time pose estimation accelerated with NVIDIA TensorRT

trt_pose Want to detect hand poses? Check out the new trt_pose_hand project for real-time hand pose and gesture recognition! trt_pose is aimed at enab

NVIDIA AI IOT 748 Jun 27, 2022