|
|
Line 82: |
Line 82: |
| * Fix the storage of non-expressions by working with upstream SymPy: currently we rely on deprecated functionality in SymPy. | | * Fix the storage of non-expressions by working with upstream SymPy: currently we rely on deprecated functionality in SymPy. |
| * Fix classdef-related issues in Octave itself. | | * Fix classdef-related issues in Octave itself. |
|
| |
| == Improve TIFF image support ==
| |
|
| |
| [https://en.wikipedia.org/wiki/TIFF Tag Image File Format (TIFF)] is the de facto standard for scientific images. Octave uses the [http://www.graphicsmagick.org/ GraphicsMagic] (GM) C++ library to handle [http://www.graphicsmagick.org/formats.html TIFF and many others image formats]. However, GM still has several limitations:
| |
|
| |
| * GM has build option {{codeline|quantum}} which defines the bitdepth to use when reading an image:
| |
| ** Building GM with '''high quantum''' means that images of smaller bitdepth will take a lot more memory when reading.
| |
| ** Building GM with '''low quantum''' will make it impossible to read images of higher bitdepth. It also means that the image needs to always be rescaled to the correct range.
| |
| * GM supports unsigned integers only, thus incorrectly reading files such as TIFF with floating-point data.
| |
| * GM hides details of the image such as whether the image file is indexed. This makes it hard to access the real data stored on file.
| |
|
| |
| This project aims to implement better TIFF image support using [https://en.wikipedia.org/wiki/Libtiff libtiff], while leaving GM handle all other image formats. After writing a [https://octave.org/doc/v6.1.0/classdef-Classes.html classdef] interface to libtiff, improve the Octave functions {{manual|imread}}, {{manual|imwrite}}, and {{manual|imfinfo}} to make use of it.
| |
|
| |
| * '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
| |
| : ~175 hours (medium)
| |
| * '''Required skills'''
| |
| : Octave, C/C++
| |
| * '''Potential mentors'''
| |
| : [https://octave.discourse.group/u/carandraug Carnë Draug]
| |
|
| |
|
| == PolarAxes and Plotting Improvements == | | == PolarAxes and Plotting Improvements == |