node-red/node-red-nodes

Feature Request: Extracting EXIF Data for Camera Orientation and Positioning

joaquimjeferson opened this issue · 4 comments

Hello,

I'd like to suggest an enhancement for the node-red-node-exif node involving the extraction of additional EXIF data related to camera orientation and positioning. Specifically, it would be highly beneficial to include the extraction of Pitch, Yaw, Roll, Camera Pitch, Camera Yaw, and Camera Roll data.

These parameters are crucial for applications requiring detailed understanding of the camera's orientation and positioning at the time the photo was taken. This feature would greatly enhance the node's utility in scenarios like 3D modeling, augmented reality, and advanced photographic analysis.

The addition of these data points would provide a more comprehensive set of EXIF information, enabling users to gain deeper insights into the conditions under which their images were captured.

Not a bad idea - do you have an example image I can work with to help develop this ?
Though I thought it did send all the data it found as msg.exif.
Thanks

Of course, you can try with this files and use https://exif.tools/ or https://exiftool.org/ to compare

images.zip

ah right - the library we use doesn't handle the latest exif spec so the DJI data isn't there (I can't see it in the other file anyway)... there is another library that you could use temporarily by importing it in a function node eg

[{"id":"59dd31043dab5cd2","type":"function","z":"1cf395c5f3a1c332","name":"function 1","func":"msg.exif = ExifReader.load(msg.payload);\nfor (const p in msg.exif) {\n    msg.exif[p] = msg.exif[p].description\n    if (!isNaN(Number(msg.exif[p])))  {\n        msg.exif[p] = Number(msg.exif[p])\n    }\n}\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[{"var":"ExifReader","module":"exifreader"}],"x":300,"y":580,"wires":[["ef14805137d4c140"]]}]

But the way it reports values is a real PITA - so I'm not going to jump to that as-is - will keep looking for a better one.

OK - have updated the node to use the newer supported exifreader library... This is a breaking change as the returned object is now much flatter - but does now support the newer extensions that drones use, etc.
released as v1.0.0