Want to remove white patches of a image

Guys, I have a problem this is a jewelry photo that i have uploaded what i need to do is remove the white bright spot that is often appearing on the gold surfaces as well as the gemstones, these are the reflection of the lighting setup. What i am planning to do is find out the region of high white intensity that is with RGB values over 220 and then replace them by the average shade of the pixels around them, thus removing those white patches. Is this possible? Thanks a lot guys.

 Risposta accettata

Image Analyst
Image Analyst il 8 Lug 2014
This is a standard photography problem - not really a MATLAB problem. First of all, use diffuse illumination, like a softbox. Then, put a polarizing sheet in front of it and put a rotatable polarizer on the camera lens. Rotate the polarizer until the specular reflections go away. This is the well known "crossed polarizers" or "cross polars" method that so well known to any photographer. It's much better to prevent the problem in the first place than to fix it.
I don't know why you want to get rid of them anyway. In fact jewelry stores go to special efforts to get those glints and specular reflections to appear. They use multiple point sources of light to create them. You'll notice you will never see broad fluorescent lamp panels in a jewelry store because those don't create glints.

8 Commenti

Thanks analyst, I know I have to make the lighting even more diffused but in my purpose any reflection must be cut off and I am working on it, but I thought if I could do it using MATLAB as well?
Why waste your time? If you want to do it just as an exercise, you can convert to graylevel, then threshold, then dilate, and then use roifill().
Image Analyst
Image Analyst il 9 Lug 2014
Modificato: Image Analyst il 9 Lug 2014
See attached code to produce the image below. However I really recommend you don't do it at all and if you have to do it, do it with polarizers and not image processing. Anyway, who wants to buy or look at boring, flat, non-sparkly jewelry? Be sure to change the filename/path in the code to your image.
The top middle photo should say "gray scale image" and will be correct in the code.
Hey analyst, I am not a jewelry seller :p , its for my project work and yes your code is perfect :)
Nurul Fajrin Alifah
Nurul Fajrin Alifah il 24 Ott 2017
Modificato: Image Analyst il 24 Ott 2017
I have have tested your code with my picture, but the result is still not good. This is picture I used:
and the result is like this:
can you help me to fix that? thank you before
Exactly what do you want to do with that input image? I doubt some jewelry program will work for your image without some kind of adaptation. You may need a totally different algorithm.
Maybe you should start your own question and post your code and images there.
i want to remove the white bright in my eye picture, maybe you can help me, thanks before
Image Analyst
Image Analyst il 2 Apr 2018
Modificato: Image Analyst il 3 Apr 2018
nurul: The white spot is definitely gone in nurul's image, so I don't know what there is to "fix". It needs to be removed, and it was removed, so what's the problem?
emilia, you'd probably be best off starting your own question with your own image attached, NOT here (not anywhere on this page!) under nurul's question.

Accedi per commentare.

Più risposte (1)

Abhishek
Abhishek il 23 Set 2024
I have this image with me, I want to remove the background blurred white spots and create a outline for the forground bubbles, can you please help me for this?

6 Commenti

Define "foreground" and "background" in the context of this image. What apparent, measurable properties separate the two?
Thing is that, it is the issue first I tried to separate pixel value 200 to separate the background , it successfully worked, but there are some pixels of value 255 in the image ( lets say the maked one and there are more of this), they are blurred and located in the background and of different sizes. I have used 'bwareaopen' and selected a suitable area threshold value, but as they are of different sizes it did not worked, I have also used imregionfill but as majority of infocus bubble surfaces have pixel value of 255, it did not worked as well, I tried to adjust the lights and recapture the images but there are always these whit spots which are coming from reflection from the bubble surfaces which stays outside the focus regions. Depth map could be an option ,but is not possible to have the depth map with the camera that I am using. regading the property I can say the white spots are blurred as compared to infocus white areas.
I'm pretty sure I saw this image in a different place and said to try stdfilt to find smooth/blurred and rough/variable places. Rather than hijack @arjun's question, why don't you post your own question, in a new thread, and attach the original image and code where you're trying stdfilt() to find the blurred regions.
Yeah. It might be nice to have depth information, but I can understand why that's not an option for high speed setups. Otherwise, we're pretty much left trying to infer depth from sharpness, so something like @Image Analyst's suggestion would probably be a start.
Hello Sir (@Image Analyst) , thanks for your valuable advice, I tried this stdfilt() with different settings, but it did not worked.Regarding posting this image posting here, actually I was trying to reach you ( @Image Analyst) , but not able to find where I can find , so I thought lets comment in a portion where you have commented or adviced something . Later on I saw your profile where you mentioned 'ask me anything'. But sorry for the trouble, please guide me in this regard, if this is possible for you. I will share the possible way and the result , at your place so that it will be helpful for you.
Regarding your reply sir (@DGM) , and also thanking you for understanding the problem Regarding depth map and sharpness.
Again, let's start a new discussion thread rather than work on your problem here in @arjun's post. Click on the Ask link up above just below the blue banner. Otherwise @arjun will get an email for every post we do here on his 10 year old post.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by