Short answer: No
RAW values unpacked from RAW file are:
- in linear gamma
- white balance not applied
- black level not subtracted (for most cases; some cameras do black subtraction).
Hi Alex,
Now I am looking for a way to get the process data where you have subtracted the black level, w/ white balance and demosaic, can you please help to explain the procedure? Thanks!
So, to my knowledge, bayer image would be greyscale (but with 10/12/or 14 bit depending on your camera raw image). Is it correct?
If yes, them if I map those Bayer values into (int)(0 -255), would it be similar to the greyscale.jpg (8 bit) file?
Thanks
Hi Alex,
I use the prebuilt library for win 64 and successfully embedded into visual studio. I would like to share my method as following:
1. Extract the binaries for x64.
2. Go into visual project. Open Project Properties, In Configuration Properties:
a. /Debugging/Enviornment: add the path to LibRaw-xxx\bin
b. /C/C++/General/Additional Include Directories: add the path to LibRaw-xxx\
c. /Linker/General/Additional Library Directories: add the path to LibRaw-xxx\lib
/Linker/Input/Additional Dependencies: add libraw.lib and libraw_static.lib
My testing code is following:
int main() {
// Let us create an image processor
LibRaw iProcessor;
// Open the file and read the metadata
iProcessor.open_file("D:/[01]Luan_van_thac_si/PROJECT/Non_Cuda/SLIC/SLICSuperPixel/DSC01042.ARW");
// The metadata are accessible through data fields of the class
cout << "Image width = " << static_cast(iProcessor.imgdata.sizes.width)
<< ", Image height = " << static_cast(iProcessor.imgdata.sizes.height) << endl;
waitKey();
return 0;
}
Results: Image width = 6024, Image height = 4024
I hope this answer will help other users and thanks for wonderful library!
I think its because of the exiftool. The original IIQ image metadata seems different. Do you know an easy way to tell if its in the exif or xmp ? I will ask my coworker to see if we can create a IIQ with gps and no sensitive info but it may take several days.
Thank you for your reply. I don't have any images with GPS from our company that may not be sensitive to post on a forum but I found one having no gps information. I used the exiftool to copy exif metadata from one image (having gps) to this one. Hope that helps.
Assuming, you're using LibRaw's dcraw_emu sample, not some other app that uses LibRaw:
LibRaw's own TIFF writer routine is very simple, it is used to not depend on additional libraries (e.g. libtiff). So only minimal EXIF data is recorded into output.
LibRaw is opensource, we're open to user contribution. So feel free to implement own TIFF writer (w/ extensive EXIF recording) we will be happy to add it to LibRaw (if you wish so).
I did not understand the question. What values you want to access:
- unaltered raw data (as decoded from RAW file)
- linearized data (black level subtracted)
- processed data (w/ white balance, demosaic, data scaling applied)
Ok. Now we are sure. Thanks for looking into it.
Thank you for the sample.
In this sample:
- there is no EXIF/GPS records
- all location information is contained in XMP block
So, LibRaw does not read it
I just sent you a link to the above address. The image was taken directly from the camera this time so it was not modified by exiftool.
LibRaw postprocessing is very similar to dcraw.c's one, so excellent 'dcraw annotated and outlined' site (https://ninedegreesbelow.com/files/dcraw-c-code-annotated-code.html ) may be useful.
Short answer: No
RAW values unpacked from RAW file are:
- in linear gamma
- white balance not applied
- black level not subtracted (for most cases; some cameras do black subtraction).
Hi Alex,
Now I am looking for a way to get the process data where you have subtracted the black level, w/ white balance and demosaic, can you please help to explain the procedure? Thanks!
So, to my knowledge, bayer image would be greyscale (but with 10/12/or 14 bit depending on your camera raw image). Is it correct?
If yes, them if I map those Bayer values into (int)(0 -255), would it be similar to the greyscale.jpg (8 bit) file?
Thanks
Hi Alex,
I use the prebuilt library for win 64 and successfully embedded into visual studio. I would like to share my method as following:
1. Extract the binaries for x64.
2. Go into visual project. Open Project Properties, In Configuration Properties:
a. /Debugging/Enviornment: add the path to LibRaw-xxx\bin
b. /C/C++/General/Additional Include Directories: add the path to LibRaw-xxx\
c. /Linker/General/Additional Library Directories: add the path to LibRaw-xxx\lib
/Linker/Input/Additional Dependencies: add libraw.lib and libraw_static.lib
My testing code is following:
#include "libraw/libraw.h"
#include "opencv2/highgui/highgui.hpp"
#include "iostream"
#include "stdio.h"
using namespace std;
using namespace cv;
int main() {
// Let us create an image processor
LibRaw iProcessor;
// Open the file and read the metadata
iProcessor.open_file("D:/[01]Luan_van_thac_si/PROJECT/Non_Cuda/SLIC/SLICSuperPixel/DSC01042.ARW");
// The metadata are accessible through data fields of the class
cout << "Image width = " << static_cast(iProcessor.imgdata.sizes.width)
<< ", Image height = " << static_cast(iProcessor.imgdata.sizes.height) << endl;
waitKey();
return 0;
}
Results: Image width = 6024, Image height = 4024
I hope this answer will help other users and thanks for wonderful library!
You may send link (to dropbox/mediafire/wetransfer) to info@libraw.org to avoid public file exposure.
I think its because of the exiftool. The original IIQ image metadata seems different. Do you know an easy way to tell if its in the exif or xmp ? I will ask my coworker to see if we can create a IIQ with gps and no sensitive info but it may take several days.
Thank you for the file. In this file
- GPS coordinates are recorded in XMP block, not in GPSDirectory EXIF block
- GPSDirectory does not contains coordinates, only references:
| + [GPS directory with 3 entries]
| | 0) GPSVersionID = 2 3 0 0
| | - Tag 0x0000 (4 bytes, int8u[4]):
| | 6218624: 02 03 00 00 [....]
| | 1) GPSLatitudeRef = S
| | - Tag 0x0001 (2 bytes, string[2]):
| | 6218630: 53 00 [S.]
| | 2) GPSLongitudeRef = E
| | - Tag 0x0003 (2 bytes, string[2]):
| | 621863c: 45 00 [E.]
LibRaw does not parse XMP blocks (and no plans for that), so it is unable to extract GPS data from such file.
Thank you for your reply. I don't have any images with GPS from our company that may not be sensitive to post on a forum but I found one having no gps information. I used the exiftool to copy exif metadata from one image (having gps) to this one. Hope that helps.
http://www.mediafire.com/view/i9we9h6jkt9kfum/C0079_3508_238162.IIQ
Followup: we do not have any IIQ files w/ embedded GPS data. Could you please share some samples with us?
Assuming, you're using LibRaw's dcraw_emu sample, not some other app that uses LibRaw:
LibRaw's own TIFF writer routine is very simple, it is used to not depend on additional libraries (e.g. libtiff). So only minimal EXIF data is recorded into output.
LibRaw is opensource, we're open to user contribution. So feel free to implement own TIFF writer (w/ extensive EXIF recording) we will be happy to add it to LibRaw (if you wish so).
LibRaw 0.19 Win32 binary distribution (downloadable from this site /download page) is built using
nmake -f Makefile.msvc
I do not know what is wrong on your system.
Thanks Alex
Use imgdata.rawdata.* pointers to access data after unpack()
Hi Alex,
Thank you for the quick support.
For now, I think unaltered raw data would be enough for my purpose.
I did not understand the question. What values you want to access:
- unaltered raw data (as decoded from RAW file)
- linearized data (black level subtracted)
- processed data (w/ white balance, demosaic, data scaling applied)
?
yes, raw colorspace is 'as is'
I will look into the code and follow up if I have any questions. Also, what does the RAW colorspace mean? Does it mean the Camera's RGB space?
Dinesh
Use latest public beta.
when will it be compatible with the canon eos T7i camera? :((((((
Yes, it is still valid.
I am trying to activate rawspeed support in libraw, I am following the instruction here:
https://github.com/LibRaw/LibRaw/blob/master/README.RawSpeed.txt
this doc is not updated since 2018, is it still valid?
I check the raw speed:
https://github.com/darktable-org/rawspeed.git
master branch is not updated since 2014.
Pages