Foucsed görüntünün bulanık olmayan kısmını izole edin


10

Bir kısmına odaklanan bir cep telefonu kamerası tarafından çekilen bir görüntüm var, bir yüz ya da her neyse. Odaklanılan alanı nerdeyse bilmek istiyorum. Örneğin, odaklanan alanın çevresinde bir sınırlayıcı kutu. misal : orijinal Tespit Sonrası

Yanıtlar:


7

Genel olarak, bu, odaklanılan görüntünün odaklanmamış bölgelerine izole etmeye çalışacağınız bir görüntü segmentasyonu problemidir ( http://en.wikipedia.org/wiki/Image_segmentation ).

Optik lensler yine de düşük geçişli filtrelere eşdeğerdir ve düşük geçişli filtrenin bir sinyal üzerindeki etkisi, daha yüksek frekans içeriğini sınırlandırarak düzleştirmektir.

Dijital görüntü işlemede, düşük frekanslar büyük nesnelere (genel form) ve yüksek frekanslar küçük nesnelere (ayrıntılar) karşılık gelir.

Bu nedenle, odaklanmış bölgeyi izole etmek için, odak dışı merceğin düzgünleştirme işlemi nedeniyle bulanık alanlara göre daha yüksek standart sapmaya sahip olan alanları daha düşük standart sapmaya sahip olan alanlar arıyor olabilirsiniz.

'Bulanık' ve 'bulanık olmayan' bölgeleri ayırt etmek için boyutlarında bir "pencere" ayarlayabilir ve görüntünüzün üzerine kaydırabilirsiniz.M×N

Pencerenin her bir pozisyonunda, "yama" değerlerinin varyansını, değerlerinin tek boyutlu bir vektörüymüş gibi hesaplayın . Bu, görüntünüzdeki her bir konumdaki standart sapmanın varyasyonunu gösteren başka bir "görüntü" (veya daha genel olarak iki boyutlu bir dizi) ile sonuçlanır. Daha sonra tüm bu değerleri toplayabilir ve histogramlarını elde edebilirsiniz. Histogram çok modlu bir dağılım sergileyecektir (Daha fazla bilgi için lütfen bkz. Http://en.wikipedia.org/wiki/Multimodal_distribution ).M×N

Gönderinizdeki görüntü durumunda, histogramın iki mod göstermesi muhtemeldir. Biri nispeten yüksek standart sapma değerlerine (odaklanmış alan) karşılık gelir ve biri nispeten düşük standart sapma değerlerine (bulanık alanlar) karşılık gelir.

Daha sonra odaklanmış ve odaklanmamış bölgeler arasında bir kriter oluşturmak için bir eşik, örneğin sadece iki mod arasında konumlandırma yapabilir ve ardından standart sapması eşik değerinizden yüksek olan tüm "yamaları" (veya MxN pencere alanlarını) seçebilirsiniz. (Daha fazla bilgi için lütfen bakınız: http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29 )

Bu, görüntünün odaklanmış kısımlarını sizin için yalıtacaktır.

Bu yardımcı olur umarım.


Cevabınız için derin bir okuma yapacağım ve geri
bildirim

Çok teşekkür ederim, harika ve ayrıntılı cevap, opencv kullanarak iyi sonuçlar alırsam uygulamayı paylaşacağım, tekrar teşekkürler
Humam Helfawi

Bu arada, görüntünün gri bir temsilcisi yeterli mi yoksa her kanalı işlemem mi gerekiyor?
Mart'ta Humam Helfawi

Yararlı bulduğunuza sevindim. Gri tonlarında çalışmak, bulanık ve odaklanmış alanlar arasındaki ayrımcılık için işe yarayabilir, ancak ek renk bilgileri eklemek daha karmaşık alanlar reçete etmenize yardımcı olabilir (örneğin, bir portredeki bir yüzün alanını izleyebilir veya resimdeki çiçeği izole edebilir) senin gönderin).
A_A

Soru şu adresteki tartışmanın ardından orijinal formuna geri düzenlendi: meta.dsp.stackexchange.com/questions/1337/… @ engin akademisyen Lütfen yorumlarınızı ayrı bir yanıt olarak ekleyin. Ana bölüm şu adreste korunmuştur: pastebin.com/kjCC1wM6
A_A

5

İşte sürgülü pencere analizini içermeyen daha kolay bir yaklaşım.

  • Resminizi gri tonlamaya dönüştürün (bu gerekli değildir, ancak netlik için sadece bir kanalınız olduğunu varsayacağım)

  • Degradeyi her iki yönde hesapla

  • Büyüklüğü hesaplayın (veya degradeyi kare yapın)

  • Her iki degrade görüntüyü her iki yönde topla

Daha önce de belirtildiği gibi, görüntünün odaklanmış kısmı odaklanmamış alandan daha yüksek frekanslara sahip olacaktır. Özetlemeden, odaklanmış nesnenin bu yönde yerleştirildiği kısımda çok fazla varyasyonun (daha yüksek değerler) olduğu iki projeksiyonla sonuçlanacaksınız. Şimdi aşağıdakileri yapabilirsiniz:

  • Bu daha yüksek değerlerin başlangıç ​​ve bitiş noktalarını belirleyin. Basit bir eşik (ör. 0,7 * maksimum_değer) kullanabilir veya profilleri düzeltebilir, ikinci türevi alabilir ve oradaki en yüksek değerleri kontrol edebilirsiniz.

  • Önceki adımdaki Başlatma / Durdurma konumları, keskinlik alanını gösteren dikdörtgeni yerleştireceğiniz her iki yönde piksel konumlarını verir.

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.