marksgraham / OCT-Converter

Tools for extracting the raw optical coherence tomography (OCT) and fundus data from proprietary file formats.
https://pypi.org/project/oct-converter/
MIT License
193 stars 70 forks source link

Hi, is there any way to find scaleX in metadata #131

Open big97kai opened 9 months ago

big97kai commented 9 months ago

I found scaley in metadata, but i didn't find out scaleX in this. is there any way I can find scaleX?

marksgraham commented 9 months ago

Hi,

Unfortunately it doesn't seem to be scored directly in the .e2e (I assume you're referring to .e2e here). It looks like you might have to calculate it from other quantities ... there is some disucssion of it here.

big97kai commented 9 months ago

@marksgraham thank you for all your disscussion, it's a gerat help. But have you encountered a situation where posx2-posx1 is 0 or a changing value? This means that the value is not a fixed 20 or 30.

big97kai commented 9 months ago

Unfortunately, I don't think these tricks work. For example, I found that the posx1 and pos2 of the metadata of the same set of pictures changed, which was very strange. Obviously what I saw on Heidelberg was the same. The second problem is that the distance between the viewer and the probe in real space should change with the angle. , the same is 20°. After calculation, the distance changes, and there is a slight difference.

marksgraham commented 9 months ago

Afraid it looks like we're still missing something.. :(

big97kai commented 7 months ago

@marksgraham I finished the time stamp, and double checking that's it's correct(at least it works for my machine), where should I put a global constant..... And there is another question... Since Optical Coherence Tomography (OCT) comes in various types, such as some OCTs having a cross-shaped pattern with 4 or 8 cuts, and others featuring a horizontal pattern with a higher number of cuts, how should I differentiate between them?

marksgraham commented 7 months ago

there is a single time stamp for each .e2e file? could you store with these class attributes: https://github.com/marksgraham/OCT-Converter/blob/1b93b312a84cd57f196c06f66c7903f762016e0f/oct_converter/readers/e2e.py#L37

currently we don't differentiate and assume all scans are just the horizontal patterns you've described. maybe we should, as a minimum, store a 'scan type' parameter somewhere where we can try to describe this? there must be a flag in the .e2e files that encodes this but I have not looked for it, I think all the scans I have previously worked with were the more standard volume shape

big97kai commented 7 months ago

Thank you for your instruction. I finish the timstamp PR, looking forward more testing. LOL

Besides that, I found out something interst which could be relevent to type. I notice that theres a scanType in metadata is that relevent to scanType ...?

marksgraham commented 7 months ago

possibly... does it seem to change with the different types of oct scan you see (e.g. cross, horizontal)?