Aslında, bir görüntünün "normal", kontur olmayan anlarına karşı konturun doğru bir tanımını ne kadar zorlaştırdığına şaşırdım . Bir sürü materyali okuduktan sonra, sonuçlarım geldi.
İlk olarak, anları ve özellikle mekansal (OP'nin "ham" olarak adlandırdığı şey), merkezi ve merkezi normalleştirilmiş anları farkını ve kullanımını anlamak için iki çok iyi malzeme buldum:
(manuel) Johannes Kilian: "Anlara Göre Basit Görüntü Analizi"
Basit matematik ile mükemmel manuel. İntegrallerden korkmayın - hepsini özet olarak okuyabilirsiniz.
Ayrıca, bu anlarla çalışmak için kullanılan OpenCV işlevleri hakkında küçük bir genel bakışa sahiptir. Çok eski bir malzeme (2001), bu yüzden bahsettiği OpenCV kılavuzu biraz eski, ama yine de yardımcı oluyor.
Ve harika bir üçüncü bölüm var, bir anın hangi özelliğini tanımlamak için hangi anın kullanıldığını belirtin.
(görüntü işleme blogu) Utkarsh: Görüntü Anları
Basit, kısa ve arkadaş canlısı. Daha önce bu blogda çok iyi materyaller buldum.
Yasal Uyarı AI Shack bir noktada çevrimdışı görünüyordu. İşte AI Shack yazarının ana sayfası, bu projeden bahsediyor, bu yüzden hala destekleniyor gibi görünüyor. Umarım yakında tekrar çevrimiçi olur, ancak değilse yazarın web sayfasından takip edilebilir.
Kısaca, uzamsal momentler görüntüdeki nesne hakkında bilgi verir , yani nesne konumu ile ilgili (bağımlı) .
Merkezi momentler olan translasyon değişmezliği için ayarlanmış , söz konusu nesnenin ağırlık merkezi (ağırlık merkezi) hesaplamaları için kullanılan "koordinat sisteminin" kökeni taşıyarak.
Son olarak, merkezi normalize edilmiş momentler nesnenin alanı ile ölçeklendirilir ve dolayısıyla çeviri değişmezliğine ek olarak ölçek değişmezdir.
Şimdi asıl soru kısmı için: kontur anları ne olacak?
Bu kısımdan yapılan kesintiler çoğunlukla
Ve bu kaynaklardan en önemli alıntılar:
Bir konturun momentleri aynı şekilde tanımlanır, ancak Green'in formülü kullanılarak hesaplanır.
(OpenCV referans kılavuzu)
Düzlem geometrisinde ve özellikle alan incelemesinde, Green teoremi, yalnızca çevre üzerinde bütünleşerek düzlem şekillerinin alanını ve merkezini belirlemek için kullanılabilir .
(Yeşil için wiki)
Dahası, cvContourMoments
şimdi sadece bir takma addır cvMoments
.
(Bradski Kaehler kitabı)
Buna dayanarak, kontur momentlerinin nesne konturlarının özel ölçülerine değil , sadece kontur bilgisini (tüm görüntü için piksel bilgisi yerine) kullanarak görüntü momentlerini hesaplamanın belirli bir yoluna atıfta bulunduğunu söyleyebilirim .
Temel durumda fark, her ikisinin de nasıl hesaplandığıdır.
- Benim tahminim, doğrudan uygulamanın, formülü doğrudan uygulayarak piksel piksel toplamla çalışacağıdır. Nesnenin doldurulması bekleniyor.
- Kontur anları için tahminim, görüntü konturlarının ilk önce belirlenmesi (OpenCV kılavuzuna bakın) ve daha sonra kontur verilerine Yeşil teoreminin uygulanması olacaktır.
Bu, ölçümlerin gerçek görüntüler için biraz farklı olmasını sağlar, çünkü yöntemler şu şekilde farklılık gösterir: duyarlılık: gürültü, ölçekleme, ayrıklaştırma (sürekli görüntü yerine piksel ızgarası). Ayrıca, hız : konturları kullanarak hesaplama, doğrudan yaklaşımı kullanmaktan daha hızlıdır. Gürültü olmadan (idealize) sürekli siyah beyaz bir görüntü için mükemmel eşit sonuçlar vereceklerini tahmin ediyorum.
Yani, sorularınızı cevaplamak için: anlar aynı olmalıdır (gürültüden dolayı farklı vb.). Merkezi momentleri belirlemek için her iki yöntemle hesaplanan uzamsal (ham) momentleri kullanabilirsiniz ( yine de aynı şeyi açıklar).
Bu iddiaların daha fazla desteklenmesi, 1994'ten bu makalenin varlığıdır (sadece özeti okudum, ancak çok alakalı olmalı ve hatta özet bilgilendirici olmalıdır):
Çevre ölçüsü alma hakkında not : Bence, aslında sadece kontur alanı olan "çevre" almak için, ben hesaplamak0t hnesnelerin konturlarının görüntüsünün anıdır, ancak konturlara "bir nesnenin konturları" yerine gerçekten ince bir nesne gibi davranın .
Bu anı daha fazla kullanırsanız, tüm diğer ölçümler elbette farklı olacaktır.