2013-07-28 17 views
12

Obecnie mam dużo trudności z myśleniem o dobrej metodzie usuwania gradientu z obrazu, który otrzymałem.usunąć gradient obrazu bez obrazu porównania

Zdjęcie to zdjęcie zrobione aparatem mikroskopowym, które ma pośrodku jasne światło. Obraz ma wzór przechodzący przez obraz. Jednak mam usunąć jasne światło na obrazie utworzonym przez światło kamery.

Niestety ze względu na naturę aparatu nie można zrobić zdjęcia na czarnym tle ze światłem, aby znaleźć rozkład gradientu. Nie mam też obrazu porównawczego bez gradientu. (uwaga - lokalizacja jasnego olśnienia zawsze będzie się składać podczas robienia zdjęcia)

W łatwiejszy sposób, jak w przypadku zdjęcia z lampą błyskową, ale chcę się pozbyć lampy błyskowej. Jedyny problem polega na tym, że nie mam możliwości uzyskania obrazu bez lampy błyskowej, aby porównać go z czarnym fleszem lub nawet uzyskać czarny obraz z samą lampą błyskową.

Moja obecna myśl polega na wykrywaniu krawędzi i otrzymywaniu próbek w określonych miejscach z dala od krawędzi (z powodu różnicy kolorów) i używam tego do określenia rozkładu gradientu, ponieważ te obszary powinny mieć stosunkowo identyczne kolory. Jednak zastanawiałem się, czy był łatwiejszy i lepszy sposób na zrobienie tego.

W razie potrzeby opublikuję przykładowy obraz później.

W tej chwili mam preferowanie rozwiązania tego w C++ przy użyciu opencv, jeśli to ułatwia.

z góry dziękuję za wszelkie możliwe pomysły na ten problem. Jeśli istnieje inny link, samouczek lub wpis, który może rozwiązać mój problem, bardzo bym go docenił.

enter image description here

jak można powiedzieć, że jest to ów świetlne są shinned na img jak można powiedzieć z białą plamą. a góra jest lżejsza niż bottome ze względu na światło, kolor wewnątrz owalu jest rzeczywiście inny, gdy zdjęcie jest zrobione w kolorze. Jednak kolor między pudełkiem a owalem powinien być jednolity. Mój oryginalny pomysł był do być może spróbować tylko te obszary, niektóre jak i zbudować profil, który mogę wykorzystać, aby usunąć światło, ale jestem pewien, jak skuteczne byłoby czy istnieje lepszy sposób

EDIT:

Cóż, wypróbowałem sugestię Rogera, a wyniki były niezłe. Wykorzystując rozmycie gaussowskie w rozmiarze 110, by znaleźć oświetlenie i przewodzić CLAHE. (Oba wykonane w OpenCV)

enter image description here Jednak moja Colleage powiedział mi, że obraz nie wygląda idealnie jednorodna i wskazał, że na całym obszarze, gdzie światło jest wykorzystywane do być nieco jaśniejsze. Zasugerował próbę selektywnego rozmycia gaussowskim, w którym obszary powyżej określonych wartości progowych pikseli nie są rozmyte, a reszta obrazu jest rozmyta.

Czy ktoś ma opinie na ten temat i może link, samouczek lub przykład czegoś podobnego?Większość rzeczy znajdę wydają się być selektywne rozmycie dla programów takich jak Photoshop i gimp

EDIT2:

enter image description here

trudno jest powiedzieć z tylko oczy, ale wierzę, że osiągnęliśmy stosunkowo blisko ujednolicenie za pomocą prostego algorytmu dopasowania płaszczyzny ((- A * x - B * y)/C) (x, y, z) gdzie z jest wartością piksela. Myślę, że można to poprawić, wykorzystując być może funkcję dopasowania sinusa? nie jestem pewien. Ale jestem stosunkowo zadowolony z wyników. Wielkie dzięki dla Rogera za świetne pomysły.

Wierzę, że za pomocą kilku zdjęć i uzyskanie avg byłoby kolejną dobrą metodą (sugerowaną przez Rogera), ale Unofruntely nie byłem w stanie zaimplementować tego, ponieważ nie byłem dostarczany z różnymi obrazami i maszyna jest w trakcie modyfikacji więc nie mogłem go użyć.

+0

Możesz spróbować użyć rozmycia Gaussa z bardzo dużym jądrem, aby przekształcić obraz w przybliżenie gradientu tła. Trudno powiedzieć bez oglądania obrazu. –

+0

Czy dystrybucja przez rozmycie byłaby wystarczająco skuteczna, aby w pełni stworzyć równomierny rozkład jasności na całym obrazie? – user2427671

+1

Bardzo podoba mi się to pytanie i jego odpowiedzi.Podobne pytanie (http://stackoverflow.com/questions/19035835/correct-image-for-local-dark-light-spots-equalise-luminance-intensity-loca) opublikowałem miesiąc temu, ale odpowiedzi tutaj są dużo lepszy. – Leo

Odpowiedz

8

Wcześniej zrobiłem trochę pracy w tym obszarze i odkryłem, że duże jądro rozmycia Gaussa może wytworzyć rozsądne przybliżenie do podświetlenia tła. Postaram się, aby coś działało na twoim przykładowym obrazie, ale w międzyczasie, oto przykład twojego obrazu po rozmyciu Gaussa o promieniu 50 pikseli, co może pomóc ci zdecydować, czy warto się rozwijać.

Blurred

UPDATE

Tylko grając z tego obrazu, można rzeczywiście uzyskać wystarczającą poprawę przy użyciu adaptacyjnego wyrównanie histogramu (użyłem CLAHE) - patrz poniżej - porównanie żadnego pożytku?

CLAHE

będę aktualizować tę odpowiedź więcej szczegółów jak postępy.

+0

dzięki za te informacje. Spróbuję tego jutro i zobaczę, jak to działa. Ale czy rozmiar rozmycia nie jest najlepszy, aby rozmycie gausów było jak największe? czy jest jakiś słodki punkt dla optymalnych wartości? – user2427671

+0

@ user2427671 To naprawdę trochę próba i błąd, ponieważ Twój obraz może mieć promień 60 pikseli, chociaż może być konieczne zwiększenie gradientu za pomocą np. Kontrastowy odcinek, inaczej za bardzo go podlejesz. Zależy to również od algorytmu używanego do wyprowadzenia profilu tła. Nie za dużo czasu, wkrótce do Ciebie wrócę! –

+0

@ user2427671 ewentualna alternatywa (CLAHE) dodana do odpowiedzi. Komentarze? –

4

Chciałbym skierować cię do tego artykułu: http://www.cs.berkeley.edu/~ravir/dirtylens.pdf, ale, moim zdaniem, bez żadnego obrazu kalibracyjnego/porównawczego wykonanego apriori, trudno jest wydobyć podstawową prawdę z rozszerzonego obrazu.

Jednakże, jeśli próbujesz po prostu przedstawić obraz bez flary obiektywu, lekceważąc faktyczne dane naukowe za rozchyloną częścią, przełączysz się na domenę obrazowania. Algorytm Criminsiego, opisany w tym dokumencie: http://research.microsoft.com/pubs/67276/criminisi_tip2004.pdf i objaśniony/uproszczony w tych dwóch linkach: http://cs.brown.edu/courses/csci1950-g/results/final/eboswort/http://www.cc.gatech.edu/~sooraj/inpainting/, wykona bardzo dobrą robotę w przywracaniu informacji o fakturze do rozwiniętych regionów. (Jeśli naprawdę chcesz zastosować to podejście, wspomnij o tym.).

Jednak biorąc pod uwagę fakt, że mamy do czynienia z danymi mikroskopowymi, wątpię, czy chciałbyś stracić dane naukowe zawarte w danym regionie obrazu. W takim przypadku, naprawdę myślę, że musisz znaleźć obejście, aby określić model błysku lampy błyskowej/źródła światła w soczewce, której używasz.

Mam nadzieję, że ktoś inny może rzucić więcej światła na ten temat.

+0

P.S: Udostępnij obraz plz. – metsburg

+0

Niestety, nie mogę sobie pozwolić na usunięcie czegokolwiek z pliku img. Muszę zachować wszystko nienaruszone i usunąć sztuczne oświetlenie – user2427671

Powiązane problemy