panrafal / depthy

Extract depth map and original from photos made with Google Camera's Lens Blur.
http://depthy.stamina.pl
MIT License
1.31k stars 162 forks source link

Possible Nokia 8 support? #37

Open eriniki opened 6 years ago

eriniki commented 6 years ago

Hi there! No idea if this is still being updated, or if there's any interest in doing so, but; The new Nokia 8 has support for Bokeh/Portrait Mode via its second rear lens capturing a monochrome image, which (assumedly) it uses as the depth map. However, depthy can't read them, claiming they're 'flat as a pancake'.

I've had a quick look into it (v. quick, like why-am-I-starting-this-at-2am quick), and from reading the file metadata it seems it does use Google's Camera setup, referencing the same GFocus/GDepth/GImage xml namespaces depthy uses in scripts/classes/GDepthEncoder.js (as well as GCamera, also). However, for some reason it references some different tags to Depthy, and seems to outright lack other tags that Depthy uses (as referenced in scripts/vendor/LensBlurDepthExtractor.js ).

The tags found in the metadata are: GCamera:SpecialTypeID (of type DEPTH_TYPE, I guess just so you know it's extra depthy!) GFocus:BlurAtInfinity GFocus:FocusPointX GFocus:FocusPointY (as opposed to focalPointX/Y perhaps?) GDepth:Mime (AS/depthmap) GDepth:Manufacturer (ArcSoft) GDepth:Data GImage:Mime GImage:Data

It seems to outright lack GFocus:focalDistance/focalPoint, and GDepth:Format/Near/Far, plus has the focal/focusPoints differences. Amusingly, the rdf:about tag contains "EdgarTest:BasicDepthMapRDF", which honestly makes me wonder if it was a good old case of 'prototype becoming finished product', in this case by a dev at HMD Global named Edgar, haha.

I'll attach a sample image, unfortunately sizeable (as I don't want to mess with it and risk losing the metadata), and probably look into more later too, if that helps. Thanks! img_20171210_045941