Jak usunąć plamy z obrazów?

10

wprowadź opis zdjęcia tutaj

Mam ten niezwykle zniekształcony i poplamiony obraz

Czy można usunąć tę plamę? Czy obraz może pomóc w malowaniu?

Proszę pomóż

EDYCJA: Kolejny obraz

wprowadź opis zdjęcia tutaj

Po zastosowaniu dyfuzji anizotropowej i przedstawieniu obrazu za pomocą imagesc (MATLAB)

wprowadź opis zdjęcia tutaj

Próbowałem malować, ale wynik nie jest wystarczająco dobry

wprowadź opis zdjęcia tutaj

Czy w każdym razie mógłbym poprawić tę wydajność?

vini
źródło
Cóż, właśnie o to chodzi w przetwarzaniu obrazu, aby komputer zrobił to za mnie
vini
3
Na twoim zdjęciu plamy są oczywiście na osobnej płaszczyźnie ostrości. Dlatego pomyślałbym o tym, jak rozłożyć obraz według płaszczyzn ostrości. Wrzuć trochę malowania i powinieneś skończyć :)
Emre
2
@vini Czy masz kilka zdjęć, czy tylko ten? Mogę uzyskać „dobre” wyniki, ręcznie tworząc maskę i malując. Czy to rozwiązanie Cię zainteresuje?
Lorem Ipsum
3
Nie możesz po prostu wyczyścić okien?
endolith,
2
Obrazy wydają się podwójnie naświetlone, a także poplamione. Czy tak jest w przypadku?
Charna

Odpowiedzi:

8

Nie jest to jednak pełna i wyraźna odpowiedź, pozostawiam wam przynajmniej trochę podejścia do walki. (Byłbym bardzo zadowolony, gdybyś uzyskał wyniki).

Spójrz na te pytania:

Usuwanie odblasków z obrazu
Jak usunąć odblaski i jasność obrazu (wstępne przetwarzanie obrazu)?

Zasadniczo próbują rozwiązać ten sam problem.

Istnieją dwie części problemu,

za. Identyfikacja miejsca / plamy b. Zastąpienie plamy tym, co byłoby w miejscu okluzji.

Charakter pytania polega na rozwiązaniu dokładnego problemu (w pewnym sensie).

To nie jest banalne. Jednak w obu pytaniach istnieje pewien unikalny wzorzec, który można wykorzystać.

  1. We wszystkich przypadkach nakładający się element, który należy usunąć, nazywa się tutaj jako (plama, odblask, jasny punkt), nakładka ma unikalny i wyraźny odcień / kolor, który odróżnia się od zwykłych obiektów / sceny.

  2. P[x,y]=(1α[x,y])S[x,y]+α[x,y]OverlayHue
    S~[x,y]=(P[x,y]OverlayHueα~[x,y])/(1α~[x,y])
    P[x,y]S[x,y]OverlayHueS~[x,y]α~[x,y]
  3. Wartość OverlayHue można niezależnie oszacować, ręcznie segmentując regiony pikseli, w których wyraźnie dominuje Plama lub Flash.

  4. S~R[x,y]=(PR[x,y]OverlayHueRα~[x,y])/(1α~[x,y])
    S~G[x,y]=(PG[x,y]OverlayHueGα~[x,y])/(1α~[x,y])
    S~B[x,y]=(PB[x,y]OverlayHueBα~[x,y])/(1α~[x,y])
  5. αS~

  6. αα

  7. S~[x,y]α~[x,y]

To może nie być idealne rozwiązanie, ale może być lepsze niż najbardziej oczywiste niż przycinanie na poziomie pikseli lub zabawa z nasyceniem itp. Szczerze proszę, abyś spróbował tego w końcu i pokazał nam wyniki (mój stół warsztatowy jest obecnie w chaosie, więc nie mogłem nie rób tego!)

Mam nadzieję że to pomoże.

Dipan Mehta
źródło