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 :
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 :
Yanıtlar:
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.
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 ).
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.
İş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.