Bir Görüntüden Parlama / Kırpılmış Parlaklık Nasıl Kaldırılır?


20

Bir resmim var

resim açıklamasını buraya girin

Parlak beyaz lekeleri çıkarmanın herhangi bir yolu var mı? Lütfen yardım teşekkürler

Düzenle:

Gauss ile çalıştıktan sonra imagesc kullanarak görüntülendikten sonra parlak kırmızı noktaları açıkça gösteren aşağıdaki çıktıyı alın. Onlardan nasıl kurtulurum

resim açıklamasını buraya girin

Kırmızı Kanal:

resim açıklamasını buraya girin

Yeşil kanal:

resim açıklamasını buraya girin

Mavi kanal:

resim açıklamasını buraya girin

Düzenleme 2:

Gabor filtresi kullanarak hata tespiti

resim açıklamasını buraya girin

Histogramı:

resim açıklamasını buraya girin

Uygun eşiği uyarlanabilir şekilde nasıl hesaplanır?


Işıkların düzeni biliniyor mu?
nav

Hayır aslında, bunları filtreleme vb. Yoluyla lekelere çıkarmanın bir yolu yok mu?
vini

4
Genel olarak, bu kötü bir sorundur. Çok fazla bilinmeyeniniz var ve sezgisel tabanlı bir çözüme başvurmak zorunda kalacaksınız. Bir cevap seçerken iyi şanslar.
nav

Yanıtlar:


19

Parlama kısımlarının görüntüdeki tek doygun alanlar olduğunu varsayalım. Algılama, yoğunluğun (Mathematica'daki kod) eşleştirilmesiyle gerçekleştirilebilir:

saturated = Binarize[ColorConvert[img, "Grayscale"], .9]

resim açıklamasını buraya girin

O zaman sadece görüntünün doygunluk maskesi etrafındaki kısımlarını değiştirmemiz gerekir (maskeyi büyütmek morfolojik fonksiyon tarafından yapılır Dilation). Doku sentezini (işlevini kullanarak Inpaint) kullanarak inpainting bu örnekte iyi çalışıyor gibi görünse de, kusur algılama algoritmanıza girdi olarak test edemiyorum:

Inpaint[img, Dilation[saturated, DiskMatrix[20]]]

resim açıklamasını buraya girin


matlab'da bir inpaint yöntemi var mı?
vini

Üzgünüm, bunun cevabını bilmiyorum.
Matthias Odisio

Kusur tespiti mükemmel ancak MATLAB'da yerleşik bir fonksiyon olmadığından inpainting uygulanmalıdır
vini

1
Yanıtın sorunu çözdüğüne sevindim. Matlab'da boyamaya gelince, bu muhtemelen SO hakkında bağımsız bir soru için çok uygundur. Başlangıç ​​olarak stackoverflow.com/search?q=matlab+inpainting sayfasına bakın .
Matthias Odisio

2
Boyama, yaygın olarak "Poisson görüntü harmanlama" olarak bilinen şey ile burada öğretici , Matlab kodu ve örnekler burada yapılabilir .
Maurits

4

Bu biraz basit bir cevap olabilir, ama sadece eşik olabilir mi? Örneğin:

img = imread('daRNS.png');
imflat = img; 
imflat(img>150) = 150; 
imagesc(imflat)

sonuç:

basık görüntü

Eşiği uyarlamalı olarak seçmek daha iyi olacaktır. Örneğin, görüntü histogramına bakabilirsiniz:

hist(double(img(:)),0:255)

histogram

ve buna dayanarak uygun bir eşik seçmeye çalışın.


pls benim düzenleme 2 kontrol
vini

Kesik sinyalin% 90 açıklanmıştır de @vini deneyin bakış
tdc

i sadece eşik olabilir ama nihai hedefim kusur tespiti .. eğer ben eşik eğer herhangi bir şekilde yardımcı olmaz
vini

3
Ancak sorunuz "Bir görüntüdeki parıltı ve parlaklık nasıl kaldırılır (Görüntü önişleme)?" başka bir (daha zor) soru olan kusurları nasıl tespit edeceğimizi değil. Aşağıdaki mrkulk, aşağıdaki soruya da neredeyse tam bir cevap vermiş gibi görünüyor.
tdc

evet benim sorum şu anda ben nasıl kusurları tespit ancak bu parlamayı sonucu engelliyor
vini

2

resim açıklamasını buraya girinAydınlatma bilgisi olmadan zordur. Bununla birlikte, görüntüdeki nesnenin şekli biliniyorsa, beyaz parıltı (gaussian) için bir şekil şablonu ayarlayabilir ve parlamayı algılamak için (ardından bitişik alandan renk karıştırma) bir kayan pencere yapabilirsiniz. Algısal olarak, gölgeleme kullanarak görüntülerden 3D şekil çıkarıyoruz. Gölgelemeden şekil yüzey eğimini verebilirse, kayan bir pencere yapabilir ve her bir konumda parlama şablonumuzu kontrol edebiliriz.

Canny kenar algılamasından sonra: -

resim açıklamasını buraya girin

Temel olarak, görüntü # 1 ve # 2 arasındaki örtüşme (maksimum örtüşen alan) kusur olacaktır.


Ne yapmaya çalıştığımı açıklamak - Çoğunlukla meyvelerdeki kusurları bulmak için doku segmentasyonu için kullanılan bir gabor filtre uyguluyorum, ancak filtre iki beyaz noktayı da ideal olarak istemediğim potansiyel bir kusur olarak gösterdiğinden parlama bir sorun teşkil ediyor
vini

sadece bireysel kanalları (RGB veya YUV'dan) alıp kanallarda çalışmayı denediniz mi?
mrkulk

En parlak görüntü yeşil kanaldaki görüntüdür. Nasıl çalıştırırım ve düzeltirim?
vini

0,5 eşikli kenar görüntüsünü (kutu) çekmeyi denedim. Beklendiği gibi, görüntüdeki parlamayı görmedim. Bu, parlama içermeyen bölgeler için size güçlü bir öncelik vermelidir.
mrkulk

parlamayan bir görüntü üretmeme nasıl yardımcı olacak?
vini

0

Bence bu, aydınlatmayı kontrol etmeniz ve görüntüdeki parlamayan piksel parlaklığının maksimum parlaklığı hakkında iyi bir fikre sahip olmanız gereken bir makine görme problemidir. Hata tespiti genellikle bilgisayar görme probleminden ziyade makine görme problemidir.

Aydınlatma sonucunda gördüğümüz şey, ışığın aynasal ve dağınık yansımalarının eklenmesidir (artı bir miktar emisyon ama burada ihmal edilebilir).

Aynasal bileşen parlama, bu elma gibi parlak yüzeyde, dağınık yansımadan çok daha fazla (> 10x)

Bu, aydınlatmanızı, kazancınızı ve pozunuzu bundan önce, dağınık bir yüzeye ayarlarsanız, hiçbir şeyin doygunluğa yakın olmayacağından emin olabilirsiniz. Dolayısıyla, "parlama içermeyen piksellerin" eşiğin üzerinde olacağına dair yeterli veriyle kanıtladığınız sürece, burada sabit bir eşik kullanmak aslında tercih edilen çözümdür. Aslında, aydınlatma koşullarını ve bir pikselin sınıflandırılmasının önemsiz hale geleceği kamera parametrelerini ayarlıyorsunuz, bu durumda, etrafındaki piksellerin daha karmaşık bir makine öğrenimli işlevi yerine basit bir eşik ile gerçekleştiriliyor.

"Vini" nin yaklaşımını seviyorum, RGB düzlemlerini göstermeye gerek yok. Sadece basit bir gri tonlama eşiği burada işe yarar.

1- aydınlatma koşullarını tasarlarsınız, ortam değil

2- sınıflandırma işini son derece önemsiz hale getirmek (eşik)

3- Özelliği ölçün

4- Toleransla karşılaştırın


0

Önce laboratuvar renk boşluğuna dönüştürün, mapminmax, sonra ilk parlaklık kanalını kullanın. Bu renk sorunlarını azaltır. Daha sonra en yüksek% 80 en parlak pikselde bir eşik kullanın. Histogramdaki bir daldırma için kontrol edin ve test edin, en iyi eşik daldırma tabanının altına yakındır. Bu bölgede yerel bir dakika yoksa, görüntünüz muhtemelen en az yansımaya sahiptir ...... Martin


0

Bir iris görüntüsündeki yansıma ve parlaklık nasıl kaldırılır (Görüntü önişleme)? lütfen bana yardım et, Matlab veya python'da kod yazmak istiyorum

teşekkür ederim

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.