mirror of
https://github.com/opencv/opencv.git
synced 2024-12-03 00:10:21 +08:00
8d78400052
Jpeg2000 OpenJPEG port * OpenJPEG based JPEG2000 decoder implementation Currently, the following input color spaces and depth conversions are supported: - 8 bit -> 8 bit - 16 bit -> 16 bit (IMREAD_UNCHANGED, IMREAD_ANYDEPTH) - RGB(a) -> BGR - RGBA -> BGRA (IMREAD_UNCHANGED) - Y(a) -> Y(a) (IMREAD_ANYCOLOR, IMREAD_GRAY, IMREAD_UNCHANGED)) - YCC -> Y (IMREAD_GRAY) * Check for OpenJPEG availability This enables OpenJPEG based JPEG2000 imread support by default, which can be disabled by -DWITH_OPENJPEG=OFF. In case OpenJPEG is enabled and found, any checks for Jasper are skipped. * Implement precision downscaling for precision > 8 without IMREAD_UNCHANGED With IMREAD_UNCHANGED, values are kept from the input image, without it components are downscaled to CV_8U range. * Enable Jpeg2K tests when OpenJPEG is available * Add support for some more color conversions Support IMREAD_GRAY when input color space is RGB or unspecified. Support YUV input color space for BGR output. * fix: problems with unmanaged memory * fix: CMake warning - HAVE_OPENJPEG is undefined Removed trailing whitespaces * fix: CMake find_package OpenJPEG add minimal version * Basic JPEG2K encoder Images with depth CV_8U and CV_16U are supported, with 1 to 4 channels. * feature: Improved code for OpenJPEG2000 encoder/decoder - Removed code duplication - Added error handlers - Extracted functions * feature: Update conversion openjpeg array from/to Mat * feature: Extend ChannelsIterator to fulfill RandomAccessIterator named requirements - Removed channels split in copyFromMatImpl. With ChannelsIterator no allocations are performed. - Split whole loop into 2 parts in copyToMat -> where std::copy and std::transforms are called. * fix: Applied review comments. - Changed `nullptr` in CV_LOG* functions to `NULL` - Added `falls through` comment in decoder color space `switch` - Added warning about unsupported parameters for the encoder * feature: Added decode from in-memory buffers. Co-authored-by: Vadim Levin <vadim.levin@xperience.ai>
169 lines
3.5 KiB
C
169 lines
3.5 KiB
C
#ifndef OPENCV_CVCONFIG_H_INCLUDED
|
|
#define OPENCV_CVCONFIG_H_INCLUDED
|
|
|
|
/* OpenCV compiled as static or dynamic libs */
|
|
#cmakedefine BUILD_SHARED_LIBS
|
|
|
|
/* OpenCV intrinsics optimized code */
|
|
#cmakedefine CV_ENABLE_INTRINSICS
|
|
|
|
/* OpenCV additional optimized code */
|
|
#cmakedefine CV_DISABLE_OPTIMIZATION
|
|
|
|
/* Compile for 'real' NVIDIA GPU architectures */
|
|
#define CUDA_ARCH_BIN "${OPENCV_CUDA_ARCH_BIN}"
|
|
|
|
/* Create PTX or BIN for 1.0 compute capability */
|
|
#cmakedefine CUDA_ARCH_BIN_OR_PTX_10
|
|
|
|
/* NVIDIA GPU features are used */
|
|
#define CUDA_ARCH_FEATURES "${OPENCV_CUDA_ARCH_FEATURES}"
|
|
|
|
/* Compile for 'virtual' NVIDIA PTX architectures */
|
|
#define CUDA_ARCH_PTX "${OPENCV_CUDA_ARCH_PTX}"
|
|
|
|
/* AMD's Basic Linear Algebra Subprograms Library*/
|
|
#cmakedefine HAVE_CLAMDBLAS
|
|
|
|
/* AMD's OpenCL Fast Fourier Transform Library*/
|
|
#cmakedefine HAVE_CLAMDFFT
|
|
|
|
/* Clp support */
|
|
#cmakedefine HAVE_CLP
|
|
|
|
/* Cocoa API */
|
|
#cmakedefine HAVE_COCOA
|
|
|
|
/* NVIDIA CUDA Runtime API*/
|
|
#cmakedefine HAVE_CUDA
|
|
|
|
/* NVIDIA CUDA Basic Linear Algebra Subprograms (BLAS) API*/
|
|
#cmakedefine HAVE_CUBLAS
|
|
|
|
/* NVIDIA CUDA Deep Neural Network (cuDNN) API*/
|
|
#cmakedefine HAVE_CUDNN
|
|
|
|
/* NVIDIA CUDA Fast Fourier Transform (FFT) API*/
|
|
#cmakedefine HAVE_CUFFT
|
|
|
|
/* DirectX */
|
|
#cmakedefine HAVE_DIRECTX
|
|
#cmakedefine HAVE_DIRECTX_NV12
|
|
#cmakedefine HAVE_D3D11
|
|
#cmakedefine HAVE_D3D10
|
|
#cmakedefine HAVE_D3D9
|
|
|
|
/* Eigen Matrix & Linear Algebra Library */
|
|
#cmakedefine HAVE_EIGEN
|
|
|
|
/* Geospatial Data Abstraction Library */
|
|
#cmakedefine HAVE_GDAL
|
|
|
|
/* GTK+ 2.0 Thread support */
|
|
#cmakedefine HAVE_GTHREAD
|
|
|
|
/* GTK+ 2.x toolkit */
|
|
#cmakedefine HAVE_GTK
|
|
|
|
/* Halide support */
|
|
#cmakedefine HAVE_HALIDE
|
|
|
|
/* Vulkan support */
|
|
#cmakedefine HAVE_VULKAN
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#cmakedefine HAVE_INTTYPES_H 1
|
|
|
|
/* Intel Integrated Performance Primitives */
|
|
#cmakedefine HAVE_IPP
|
|
#cmakedefine HAVE_IPP_ICV
|
|
#cmakedefine HAVE_IPP_IW
|
|
#cmakedefine HAVE_IPP_IW_LL
|
|
|
|
/* JPEG-2000 codec */
|
|
#cmakedefine HAVE_OPENJPEG
|
|
#cmakedefine HAVE_JASPER
|
|
|
|
/* IJG JPEG codec */
|
|
#cmakedefine HAVE_JPEG
|
|
|
|
/* libpng/png.h needs to be included */
|
|
#cmakedefine HAVE_LIBPNG_PNG_H
|
|
|
|
/* GDCM DICOM codec */
|
|
#cmakedefine HAVE_GDCM
|
|
|
|
/* NVIDIA Video Decoding API*/
|
|
#cmakedefine HAVE_NVCUVID
|
|
|
|
/* NVIDIA Video Encoding API*/
|
|
#cmakedefine HAVE_NVCUVENC
|
|
|
|
/* OpenCL Support */
|
|
#cmakedefine HAVE_OPENCL
|
|
#cmakedefine HAVE_OPENCL_STATIC
|
|
#cmakedefine HAVE_OPENCL_SVM
|
|
|
|
/* NVIDIA OpenCL D3D Extensions support */
|
|
#cmakedefine HAVE_OPENCL_D3D11_NV
|
|
|
|
/* OpenEXR codec */
|
|
#cmakedefine HAVE_OPENEXR
|
|
|
|
/* OpenGL support*/
|
|
#cmakedefine HAVE_OPENGL
|
|
|
|
/* PNG codec */
|
|
#cmakedefine HAVE_PNG
|
|
|
|
/* Posix threads (pthreads) */
|
|
#cmakedefine HAVE_PTHREAD
|
|
|
|
/* parallel_for with pthreads */
|
|
#cmakedefine HAVE_PTHREADS_PF
|
|
|
|
/* Qt support */
|
|
#cmakedefine HAVE_QT
|
|
|
|
/* Qt OpenGL support */
|
|
#cmakedefine HAVE_QT_OPENGL
|
|
|
|
/* Intel Threading Building Blocks */
|
|
#cmakedefine HAVE_TBB
|
|
|
|
/* Ste||ar Group High Performance ParallelX */
|
|
#cmakedefine HAVE_HPX
|
|
|
|
/* TIFF codec */
|
|
#cmakedefine HAVE_TIFF
|
|
|
|
/* Win32 UI */
|
|
#cmakedefine HAVE_WIN32UI
|
|
|
|
/* Define if your processor stores words with the most significant byte
|
|
first (like Motorola and SPARC, unlike Intel and VAX). */
|
|
#cmakedefine WORDS_BIGENDIAN
|
|
|
|
/* VA library (libva) */
|
|
#cmakedefine HAVE_VA
|
|
|
|
/* Intel VA-API/OpenCL */
|
|
#cmakedefine HAVE_VA_INTEL
|
|
|
|
/* Lapack */
|
|
#cmakedefine HAVE_LAPACK
|
|
|
|
/* Library was compiled with functions instrumentation */
|
|
#cmakedefine ENABLE_INSTRUMENTATION
|
|
|
|
/* OpenVX */
|
|
#cmakedefine HAVE_OPENVX
|
|
|
|
/* OpenCV trace utilities */
|
|
#cmakedefine OPENCV_TRACE
|
|
|
|
/* Library QR-code decoding */
|
|
#cmakedefine HAVE_QUIRC
|
|
|
|
#endif // OPENCV_CVCONFIG_H_INCLUDED
|