How could I correct for glare when processing image?

11 次查看(过去 30 天)
I'm working on a code to track the postion of debris. The code converts the image first to gray scale and then to binary. It then takes the median value of the x-component of all pixels which are black. This gives the approximate x position of the debris (since the debris is darker than the water). However, when light reflects off the block, that portion does not get picked up, shifting the calculated position. Is there a way to adjust for this?
image.png

回答(1 个)

Image Analyst
Image Analyst 2018-12-9
It's so much easier to prevent it in the first place than to correct it, which can't be done perfectly and without artifacts. Why don't you ust use crossed polarizers, or HDR photography?
  14 个评论
Ephraim Bryski
Ephraim Bryski 2018-12-12
The debris definitely does influence the background with shadows and reflections. The sediment on the bottom of the flume also moves around a bit changing the background. I don't think we would be able to physically change the background, as we need to finish the experiment very soon.
Image Analyst
Image Analyst 2018-12-12
Then you may just have to fallback onto manual tracing since you have so little time - not enough to develop a robust algorithm. See my two attached demos for imfreehand.
If you just want to count things, you could use impoint() or ginput() and count the number of times the user clicked on debris objects. Use imfreehand or it's newer replacement drawfreehand() if you need areas of objects.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by