32-bit tiff files are not supported (Feature #955)
Description
I can read successfully 16-bit GeoTIFF files with OpenCV (GeoTIFF format is fully compliant with TIFF 6.0) but I can't read 32-bit files. GeoTIFF is the most common format in geoinformatics so supporting of TIFF format with all depths and signs is critical for OpenCV to be applicable in this field.
You can download samples of GeoTIFF files here: ftp://ftp.remotesensing.org/pub/geotiff/samples
Example of a 32-bit file (13 Mb):
ftp://ftp.remotesensing.org/pub/geotiff/samples/made_up/ilatlon_float.tif
I've used following code to check a loaded format:
Mat image = imread("ilation_float.tif", CV_LOAD_IMAGE_UNCHANGED);
cout << (image.type() == CV_8UC1) << endl;
This code prints "1" but "$identify ilation_float.tif" returns 32-bit Grayscale.
P.S. Now 16-bit signed integers are converted to unsigned format when reading a tiff file. Full support for signed format is also desirable.
Associated revisions
Added reading of floating point tiff data: 32- and 64-bit (ticket #955)
Merge pull request #955 from SpecLad:symlink
Merge remote-tracking branch 'origin/2.4' into merge-2.4
Merged pull requests:
#890 from caorong:patch-1
#893 from jet47:gpu-arm-fixes
#933 from pengx17:2.4_macfix_cont
#935 from pengx17:2.4_filter2d_fix
#936 from bitwangyaoyao:2.4_perf
#937 from bitwangyaoyao:2.4_fixPyrLK
#938 from pengx17:2.4_surf_sample
#939 from pengx17:2.4_getDevice
#940 from SpecLad:autolock
#941 from apavlenko:signed_char
#946 from bitwangyaoyao:2.4_samples2
#947 from jet47:fix-gpu-arm-build
#948 from jet47:cuda-5.5-support
#952 from SpecLad:jepg
#953 from jet47:fix-bug-3069
#955 from SpecLad:symlink
#957 from pengx17:2.4_fix_corner_detector
#959 from SpecLad:qt4-build
#960 from SpecLad:extra-modules
Conflicts:
modules/core/include/opencv2/core/core.hpp
modules/gpu/CMakeLists.txt
modules/gpu/include/opencv2/gpu/device/vec_math.hpp
modules/gpu/perf/perf_video.cpp
modules/gpuimgproc/src/cuda/hough.cu
modules/ocl/include/opencv2/ocl/ocl.hpp
modules/ocl/src/pyrlk.cpp
samples/gpu/driver_api_multi.cpp
samples/gpu/driver_api_stereo_multi.cpp
samples/ocl/surf_matcher.cpp
History
Updated by Vadim Pisarevsky almost 14 years ago
since the workaround is found, the priority and the type of the ticket is changed.
Updated by Ilya Lysenkov almost 14 years ago
Thank you for this ticket. Fixed in -r5326.
- Status set to Done
- (deleted custom field) set to fixed
Updated by Ilya Lysenkov almost 14 years ago
No, thank you for fixing! I will check out trunk.