1. 16 2月, 2022 1 次提交
  2. 23 12月, 2020 1 次提交
  3. 22 9月, 2020 1 次提交
  4. 03 9月, 2020 1 次提交
  5. 27 8月, 2020 1 次提交
  6. 07 4月, 2020 1 次提交
  7. 27 3月, 2020 1 次提交
    • S
      Merge pull request #16494 from StefanBruens:jpeg2000_openjpeg_port · 8d784000
      StefanBruens 提交于
      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: NVadim Levin <vadim.levin@xperience.ai>
      8d784000