• Ayrık görüntü nedir? ve donanım çözünürlüğü nedir? Dijital görüntülerin Fourier işlenmesi

    dijital Fotoğrafçılık ya da bit eşlem iki boyutlu bir düzlemde parlaklık seviyesi sensörleri tarafından yakalanan bir sayı dizisidir. Matematiksel açıdan bakıldığında, ince bir merceğin odak düzlemlerine yerleştirilmiş görüntülerin Fourier dönüşümünü gerçekleştirdiğini bilerek, klasik bir optik sistemdeki görüntü işlemeye benzer görüntü işleme algoritmaları oluşturmak mümkündür.

    Bu tür algoritmaların formülü şöyle görünecektir:

    1. Z=FFT(X) – doğrudan iki boyutlu Fourier dönüşümü
    2. Z′=T(Z) – görüntünün Fourier görüntüsüne bir işlev veya saydamlık uygulaması
    3. Y=BFT(Z′) – ters iki boyutlu Fourier dönüşümü
    Fourier dönüşümlerini hesaplamak için hızlı algoritmalar kullanılır. ayrık dönüşüm Fourier. Merceklerin optik sistemi, argümanın sürekli aralığı ve sürekli spektrum için Fourier dönüşümünü gerçekleştirmesine rağmen, ancak geçiş yaparken dijital işleme veriler, Fourier dönüşümü formülleri, ayrık Fourier dönüşümü formülleri ile değiştirilebilir.

    Uygulama örnekleri

    • Görüntü Bulanıklığı Algoritması
    Uygulanan algoritmalar, bir açık kaynak kitaplığının parçasıdır. kaynak kodu FFT Araçları. İnternet adresi: github.com/dprotopopov/FFTTools

    Görüntü Bulanıklığı Algoritması

    Optik sistemlerde odak düzleminde bulunan açıklık, ekrandaki basit bir deliktir. geçmesi sonucunda ışık akısı diyaframdan, yüksek frekanslı dalgalar (daha kısa dalga boylarına sahip) engelin içinden geçer ve dalgalar düşük frekanslar(daha uzun dalga boylarında) ekran tarafından kesilir. Bu, ortaya çıkan görüntünün keskinliğini artırır. Ekrandaki deliği ekrandaki bir engelle değiştirirsek sonuç şöyle olur. Bulanık görüntü, çünkü büyük uzunluktaki dalgaların frekanslarından oluşacaktır.

    Algoritma:

    1. Z'=T(Z) dizisini hesaplayın, burada T, yüksek frekanslara 5 karşılık gelen matris argümanının verilen iç alanlarında bulunan satır ve sütunların sıfırlanmasıdır (yani, karşılık gelen Fourier genişleme katsayılarının sıfırlanması) ile yüksek frekanslar)

    Görüntü keskinleştirme algoritması

    Optik sistemlerde odak düzleminde bulunan açıklık, ekrandaki basit bir deliktir. Işık akısının diyaframdan geçmesi sonucunda yüksek frekanslı dalgalar (kısa dalga boyuna sahip) engelin içinden geçer ve düşük frekanslı dalgalar (uzun dalga boyuna sahip) ekran tarafından kesilir. Bu, ortaya çıkan görüntünün keskinliğini artırır.

    Algoritma:

    1. X(N1,N2) bir görüntü piksel parlaklığı dizisi olsun.
    2. X dizisindeki piksellerin Px = ortalama (rms) parlaklığını hesaplayın
    3. Z=FT(X) dizisini hesaplayın - doğrudan iki boyutlu ayrık Fourier dönüşümü
    4. Orijinal görüntüdeki piksellerin ortalama parlaklığına karşılık gelen L=Z(0,0) değerini kaydedin
    5. Z'=T(Z) dizisini hesaplayın, burada T, düşük frekanslara karşılık gelen bağımsız değişken matrisinin verilen dış bölgelerinde bulunan satır ve sütunların sıfırlanmasıdır (yani, karşılık gelen Fourier genişleme katsayılarının sıfırlanması). düşük frekanslar)
    6. Orijinal görüntü piksellerinin ortalama parlaklığına karşılık gelen Z'(0,0)=L değerini geri yükleyin
    7. Y=RFT(Z′) dizisini hesaplayın – ters 2B ayrık Fourier dönüşümü
    8. Py = Y dizisindeki piksellerin ortalama (rms) parlaklığını hesaplayın
    9. Y(N1,N2) dizisini ortalama parlaklık düzeyi Px/Py ile normalleştirin

    Görüntü ölçekleme algoritması

    Optik sistemlerde, sistemin odak düzlemindeki ışık akısı, orijinal görüntünün Fourier dönüşümüdür. çıktı boyutu optik sistem görüntü, merceğin ve okülerin odak uzunluklarının oranı ile belirlenir.

    Algoritma:

    1. X(N1,N2) bir görüntü piksel parlaklığı dizisi olsun.
    2. X dizisindeki piksellerin Px = ortalama (rms) parlaklığını hesaplayın
    3. Z=FT(X) dizisini hesaplayın - doğrudan iki boyutlu ayrık Fourier dönüşümü
    4. Z'=T(Z) dizisini hesaplayın; burada T, son görüntünün gerekli boyutunu elde etmek için matrisin yüksek frekanslara karşılık gelen sıfır satır ve sütunlarını ekliyor veya matrisin yüksek frekanslara karşılık gelen satırlarını ve sütunlarını siliyor
    5. Y=RFT(Z′) dizisini hesaplayın – ters 2B ayrık Fourier dönüşümü
    6. Py = Y dizisindeki piksellerin ortalama (rms) parlaklığını hesaplayın
    7. Y(M1,M2) dizisini ortalama parlaklık seviyesi Px/Py ile normalleştirin
    Kullanılan yazılım
    • Microsoft görsel stüdyo 2013 C# - ortam ve programlama dili
    • EmguCV/OpenCV - Görüntü işleme için C++ yapı ve algoritma kitaplığı
    • FFTWSharp/FFTW – Hızlı ayrık Fourier dönüşüm algoritmalarını uygulayan C++ kitaplığı

    Görüntü Bulanıklığı Algoritması

    Algoritma kodu

    ///

    /// Dizinin iç bölgesini temizle /// /// değer dizisi /// Dahili kör bölge boyutu private static void Blind(Complex[,] data, Size size) ( int n0 = data.GetLength(0); int n1 = data.GetLength(1); int n2 = data.GetLength(2); int s0 = Math. Maks(0, (n0 - boyut.Yükseklik)/2); int s1 = Matematik.Maks(0, (n1 - boyut.Genişlik)/2); int e0 = Matematik.Min((n0 + boyut.Yükseklik)/ 2, n0); int e1 = Math.Min((n1 + boyut.Genişlik)/2, n1); for (int i = s0; i< e0; i++) { Array.Clear(data, i*n1*n2, n1*n2); } for (int i = 0; i < s0; i++) { Array.Clear(data, i*n1*n2 + s1*n2, (e1 - s1)*n2); } for (int i = e0; i < n0; i++) { Array.Clear(data, i*n1*n2 + s1*n2, (e1 - s1)*n2); } } /// /// En Hızlı Fourier Dönüşümü ile bitmap'i bulanıklaştırın /// /// Mavileştirilmiş bit eşlem genel Bitmap Bulanıklığı(Bitmap bitmap) ( (var image = new Image kullanarak) (bitmap)) ( int uzunluk = image.Data.Length; int n0 = image.Data.GetLength(0); int n1 = image.Data.GetLength(1); int n2 = image.Data.GetLength(2); var çiftler = yeni çift;Buffer.BlockCopy(image.Data, 0, doubles, 0, length*sizeof (double));double güç = Math.Sqrt(doubles.Average(x => x*x));var girişi = new fftw_complexarray(doubles.Select(x => new Complex(x, 0))).ToArray()); var output = new fftw_complexarray(uzunluk); fftw_plan.dft_3d(n0, n1, n2, girdi, çıktı, fftw_yön. İleri, fftw_flags.Estimate).Execute(); karmaşık karmaşık= output.GetData_Complex(); var veri = yeni Kompleks; varbuffer = yeni çift; GCHandle karmaşıkHandle = GCHandle.Alloc(karmaşık, GCHandleType.Pinned); GCHandle dataHandle = GCHandle.Alloc(veri, GCHandleType.Pinned); IntPtr karmaşıkPtr = karmaşıkHandle.AddrOfPinnedObject(); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(complexPtr, arabellek, 0, arabellek.Uzunluk); Marshal.Copy(buffer, 0, dataPtr, buffer.Length); Blind(veri, _blinderSize); Marshal.Copy(dataPtr, arabellek, 0, arabellek.Uzunluk); Marshal.Copy(arabellek, 0, karmaşıkPtr, arabellek.Uzunluk); ComplexHandle.Free(); dataHandle.Free(); input.SetData(karmaşık); fftw_plan.dft_3d(n0, n1, n2, girdi, çıktı, fftw_yön.Geri, fftw_flags.Tahmin).Yürüt(); çift ​​dizi2 = output.GetData_Complex().Select(x => x.Magnitude).ToArray(); çift ​​kuvvet2 = Math.Sqrt(dizi2.Average(x => x*x)); çiftler = dizi2.Seç(x =>

    Görüntü keskinleştirme algoritması

    Algoritma kodu

    ///

    /// Dizinin dış bölgesini temizle /// /// değer dizisi /// Dış kör bölge boyutu private static void Blind(Complex[,] data, Size size) ( int n0 = data.GetLength(0); int n1 = data.GetLength(1); int n2 = data.GetLength(2); int s0 = Math. Maks(0, (n0 - boyut.Yükseklik)/2); int s1 = Matematik.Maks(0, (n1 - boyut.Genişlik)/2); int e0 = Matematik.Min((n0 + boyut.Yükseklik)/ 2, n0); int e1 = Math.Min((n1 + boyut.Genişlik)/2, n1); for (int i = 0; i< s0; i++) { Array.Clear(data, i*n1*n2, s1*n2); Array.Clear(data, i*n1*n2 + e1*n2, (n1 - e1)*n2); } for (int i = e0; i < n0; i++) { Array.Clear(data, i*n1*n2, s1*n2); Array.Clear(data, i*n1*n2 + e1*n2, (n1 - e1)*n2); } } /// /// En Hızlı Fourier Dönüşümü ile net bitmap /// /// keskinleştirilmiş bit eşlem genel Bitmap Sharp(Bitmap bitmap) ( (var image = new Image kullanarak) (bitmap)) ( int uzunluk = image.Data.Length; int n0 = image.Data.GetLength(0); int n1 = image.Data.GetLength(1); int n2 = image.Data.GetLength(2); var çiftler = yeni çift;Buffer.BlockCopy(image.Data, 0, doubles, 0, length*sizeof (double));double güç = Math.Sqrt(doubles.Average(x => x*x));var girişi = new fftw_complexarray(doubles.Select(x => new Complex(x, 0))).ToArray()); var output = new fftw_complexarray(uzunluk); fftw_plan.dft_3d(n0, n1, n2, girdi, çıktı, fftw_yön. İleri, fftw_flags.Estimate).Execute(); Karmaşık karmaşık = output.GetData_Complex(); Karmaşık düzey = karmaşık; var data = yeni Karmaşık; var tampon = yeni çift; GCHandle karmaşıkHandle = GCHandle.Alloc(karmaşık, GCHandleType.Pinned) ; GCHandle dataHandle = GCHandle.Alloc(veri, GCHandleType.Pinned); IntPtr karmaşıkPtr = karmaşıkHandle.AddrOfPinnedObject(); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(complexPtr, tampon, 0, tampon.Length); Marshal. Kopyala(arabellek, 0, veriPtr, arabellek.Uzunluk); Blind(veri, _blinderSize); Marshal.Copy(dataPtr, arabellek, 0, arabellek.Uzunluk); Marshal.Copy(arabellek, 0, karmaşıkPtr, arabellek.Uzunluk); ComplexHandle.Free(); dataHandle.Free(); karmaşık = seviye; input.SetData(karmaşık); fftw_plan.dft_3d(n0, n1, n2, girdi, çıktı, fftw_yön.Geri, fftw_flags.Tahmin).Yürüt(); çift ​​dizi2 = output.GetData_Complex().Select(x => x.Magnitude).ToArray(); çift ​​kuvvet2 = Math.Sqrt(dizi2.Average(x => x*x)); çiftler = dizi2.Seç(x => x*güç/güç2).ToArray(); Buffer.BlockCopy(doubles, 0, image.Data, 0, length*sizeof (double)); resim döndür.Bitmap; ) )

    Görüntü ölçekleme algoritması

    Algoritma kodu

    ///

    /// Dizileri kopyala /// /// giriş dizisi /// çıkış dizisiözel statik boşluk Kopyala(Karmaşık[,] girdi, Karmaşık[,] çıktı) ( int n0 = girdi.GetLength(0); int n1 = girdi.GetLength(1); int n2 = girdi.GetLength(2); int m0 = output.GetLength(0);int m1 = output.GetLength(1);int m2 = output.GetLength(2);int ex0 = Math.Min(n0, m0)/2;int ex1 = Math.Min(n1) , m1)/2;int ex2 = Math.Min(n2, m2);Debug.Assert(n2 == m2);for (int k = 0;k< ex2; k++) { for (int i = 0; i <= ex0; i++) { for (int j = 0; j <= ex1; j++) { int ni = n0 - i - 1; int nj = n1 - j - 1; int mi = m0 - i - 1; int mj = m1 - j - 1; output = input; output = input; output = input; output = input; } } } } /// /// Bitmap'i En Hızlı Fourier Dönüşümü ile yeniden boyutlandırın /// /// Yeniden boyutlandırılmış bit eşlem public Bitmap Stretch(Bitmap bitmap) ( (var image = new Image kullanarak) (bitmap)) ( int uzunluk = image.Data.Length; int n0 = image.Data.GetLength(0); int n1 = image.Data.GetLength(1); int n2 = image.Data.GetLength(2); var çiftler = yeni çift;Buffer.BlockCopy(image.Data, 0, doubles, 0, length*sizeof (double));double güç = Math.Sqrt(doubles.Average(x => x*x));var girişi = new fftw_complexarray(doubles.Select(x => new Complex(x, 0))).ToArray()); var output = new fftw_complexarray(uzunluk); fftw_plan.dft_3d(n0, n1, n2, girdi, çıktı, fftw_yön. İleri, fftw_flags.Estimate).Execute(); Karmaşık karmaşık = output.GetData_Complex(); kullanarak (var image2 = yeni Görüntü (_newSize)) ( int uzunluk2 = resim2.Data.Length; int m0 ​​= resim2.Data.GetLength(0); int m1 = resim2.Data.GetLength(1); int m2 = resim2.Data.GetLength(2) ); var karmaşık2 = yeni Karmaşık; var veri = yeni Karmaşık; var veri2 = yeni Karmaşık; var tampon = yeni çift; GCHandle karmaşıkHandle = GCHandle.Alloc(karmaşık, GCHandleType.Pinned); GCHandle dataHandle = GCHandle.Alloc(veri, GCHandleType) .Sabitlenmiş); IntPtr karmaşıkPtr = karmaşıkHandle.AddrOfPinnedObject(); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(complexPtr, tampon, 0, tampon.Length); Marshal.Copy(buffer, 0, dataPtr, tampon.Length ); ComplexHandle.Free(); dataHandle.Free(); Copy(data, data2); buffer = new double; ComplexHandle = GCHandle.Alloc(complex2, GCHandleType.Pinned); dataHandle = GCHandle.Alloc(data2, GCHandleType.Pinned) ); karmaşıkPtr = karmaşıkHandle.AddrOfPinnedObject(); dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(dataPtr, arabellek, 0, arabellek.Uzunluk); Marshal.Copy(arabellek, 0, karmaşıkPtr, arabellek.Uzunluk); ComplexHandle.Free(); dataHandle.Free(); var girdi2 = yeni fftw_complexarray(complex2); var output2 = new fftw_complexarray(uzunluk2); fftw_plan.dft_3d(m0, m1, m2, girdi2, çıktı2, fftw_yön.Geri, fftw_flags.Tahmin).Yürüt(); çift ​​dizi2 = output2.GetData_Complex().Select(x => x.Magnitude).ToArray(); çift ​​kuvvet2 = Math.Sqrt(dizi2.Average(x => x*x)); double doubles2 = dizi2.Select(x => x*power/power2).ToArray(); Buffer.BlockCopy(doubles2, 0, image2.Data, 0, length2*sizeof (double)); image2.Bitmap'i döndür; ) ) )

    Her biri sonlu bir zamanda değişen, yalnızca sonlu sayıda ayırt edilebilir değer alabilen ayrık öğelerden oluşan görüntülere ayrık denir. Genel olarak konuşursak, ayrı bir görüntünün öğelerinin eşit olmayan bir alana sahip olabileceği ve her birinin eşit olmayan sayıda ayırt edilebilir derecelendirmeye sahip olabileceği vurgulanmalıdır.

    İlk bölümde gösterildiği gibi, retina ayrık görüntüleri görsel analizörün üst kısımlarına iletir.

    Görünürdeki süreklilikleri, gözün yanılsamalarından yalnızca biridir. Başlangıçta sürekli olan görüntülerin bu "kuantizasyonu", gözün optik sisteminin çözünürlüğüyle ilgili sınırlamalarla ve hatta görsel sistemin morfolojik yapısal öğeleriyle değil, sinir ağlarının işlevsel organizasyonuyla belirlenir.

    Görüntü, bir veya daha fazla sayıda fotoreseptörü birleştiren alıcı alanlar tarafından ayrık öğelere bölünür. Alıcı alanlar, yararlı olanların birincil seçimini üretir. ışık sinyali mekansal ve zamansal toplama yoluyla.

    Retinanın orta kısmı (fovea) sadece koniler tarafından işgal edilir, fovea dışındaki çevrede hem koniler hem de çubuklar vardır. Gece görüşü koşullarında, retinanın orta kısmındaki koni alanları yaklaşık olarak aynı büyüklüktedir (açısal olarak yaklaşık 5 "). Açısal boyutları yaklaşık 90" olan foveadaki bu tür alanların sayısı yaklaşık 200. Gece görüşü koşullarındaki ana rol, retina yüzeyinin geri kalanını kaplayan çubuk alanları tarafından oynanır. Retinanın tüm yüzeyinde yaklaşık 1° açısal boyuta sahiptirler. Retinadaki bu tür alanların sayısı 3.000 civarındadır.Bu koşullar altında loş nesnelerin sadece tespiti değil, incelenmesi de retinanın periferik bölgeleri tarafından gerçekleştirilir.

    Aydınlatmanın artmasıyla, başka bir depolama hücresi sistemi olan koni alıcı alanlar ana rolü oynamaya başlar. Fovea'da aydınlatmadaki bir artış, yaklaşık 100 asb'lik bir parlaklıkta bir koniye düşene kadar etkili alan kuvvetinde kademeli bir azalmaya neden olur. Çevrede aydınlatmanın artmasıyla birlikte çubuk alanlar yavaş yavaş kapanır (yavaşlar) ve koni alanlar devreye girer. Çevredeki koni alanları, foveal olanlar gibi üzerlerine gelen ışık enerjisine bağlı olarak azalma özelliğine sahiptir. en büyük sayı Artan aydınlatma ile alıcı alanların sahip olabileceği koni sayısı, merkezden retinanın kenarlarına doğru büyür ve merkezden 50-60 ° açısal bir mesafede yaklaşık 90'a ulaşır.

    İyi gün ışığı koşullarında alıcı alan sayısının yaklaşık 800 bine ulaştığı hesaplanabilir, bu değer yaklaşık olarak insan optik sinirindeki lif sayısına karşılık gelir. Gündüz görüşünde nesnelerin ayırt edilmesi (çözünürlüğü), esas olarak, alıcı alanın bir koniye indirgenebildiği ve konilerin kendilerinin en yoğun şekilde yerleştirildiği foveada gerçekleştirilir.

    Retinadaki depolama hücrelerinin sayısı tatmin edici bir yaklaşımla belirlenebilse de, alıcı alanların olası durumlarının sayısını belirlemek için hala yeterli veri yoktur. Alıcı alanların diferansiyel eşiklerinin incelenmesine dayalı olarak yalnızca bazı tahminler yapılabilir. Belirli bir aydınlatma çalışma aralığında foveal alıcı alanlarda eşik kontrastı 1 mertebesindedir. Bu durumda, ayırt edilebilir tonlamaların sayısı azdır. Koni foveal alıcı alanın tüm yeniden düzenleme aralığında, 8-9 derece farklıdır.

    Alıcı alandaki birikim süresi - sözde kritik süre - ortalama olarak 0,1 saniyelik bir değerle belirlenir, ancak yüksek seviyeler görünüşe göre aydınlatma önemli ölçüde azaltılabilir.

    Aslında, ayrık yapıyı tanımlayan model iletilen görüntüler, daha da zor olmalı. Alıcı alanın boyutları, eşikler ve kritik süre arasındaki ilişkinin yanı sıra görsel eşiklerin istatistiksel doğasının da hesaba katılması gerekli olacaktır. Ancak şimdilik bu gerekli değil. Bir görüntü modeli olarak, açısal boyutları, gözle çözülebilen en küçük detayın açısal boyutlarından daha küçük olan, ayırt edilebilir durumlarının sayısı maksimum sayıdan daha büyük olan, aynı alanda bir dizi eleman hayal etmek yeterlidir. ayırt edilebilir parlaklık tonlamaları ve ayrık değişim süresi, kritik titreme füzyon frekansında titreme süresinden daha kısa olan.

    Dış dünyadaki gerçek sürekli nesnelerin görüntüleri bu tür ayrık görüntülerle değiştirilirse, göz bu ikameyi fark etmeyecektir.* Bu nedenle, bu tür ayrık görüntüler en az görsel sistemin algıladığı kadar bilgi içerir. **

    * Renkli ve hacimsel görseller ayrık model ile de değiştirilebilir.
    ** Sürekli görüntüleri ayrık olanlarla değiştirme sorunu, film ve televizyon teknolojisi için büyük önem taşımaktadır. Zaman kuantizasyonu bu tekniğin merkezinde yer alır. Darbe kodlu televizyon sistemlerinde, görüntü ayrıca ayrı öğelere bölünür ve parlaklık ile nicelenir.

    Bir önceki bölümde, sürekli iki boyutlu bir alanda lineer uzamsal olarak değişmeyen sistemleri inceledik. Uygulamada, sınırlı boyutlara sahip ve aynı zamanda ayrı bir noktalar kümesinde sayılan görüntülerle uğraşıyoruz. Bu nedenle, bugüne kadar geliştirilen yöntemlerin bu alanda uygulanabilmesi için uyarlanması, genişletilmesi ve değiştirilmesi gerekmektedir. Dikkatle değerlendirilmesi gereken birkaç yeni nokta da var.

    Örnekleme teoremi, hangi koşullar altında sürekli bir görüntünün ayrı bir değer kümesinden doğru bir şekilde geri yüklenebileceğini söyler. Uygulanabilirlik koşulları sağlanmadığında ne olduğunu da öğreneceğiz. Bütün bunlar doğrudan görsel sistemlerin gelişimi ile ilgilidir.

    Frekans alanına gitmeyi gerektiren teknikler, kısmen ayrık Fourier dönüşümünün hızlı hesaplanması için algoritmalar nedeniyle popüler hale geldi. Ancak, bu yöntemler içerdiğinden dikkatli olunmalıdır. periyodik sinyal. Bu şartın nasıl karşılanabileceğini ve onu ihlal etmenin sonuçlarını tartışacağız.

    7.1. Görüntü Boyutu Sınırı

    Uygulamada, görüntülerin her zaman sonlu boyutları vardır. Genişliği ve yüksekliği R olan dikdörtgen bir görüntü düşünün. Artık Fourier dönüşümünde sonsuz limitlerde integral almaya gerek yok:

    Merakla, işlevi eski haline getirmek için tüm frekanslarda bilmemize gerek yok. Ne olduğunu bilmek zor bir kısıtlamadır. Başka bir deyişle, görüntü düzleminin yalnızca sınırlı bir bölgesinde sıfır olmayan bir fonksiyon, bu özelliğe sahip olmayan bir fonksiyondan çok daha az bilgi içerir.

    Bunu doğrulamak için ekran düzleminin kopyalarla kaplı olduğunu hayal edin. verilen görüntü. Başka bir deyişle, imajımızı her iki yönde de periyodik olan bir fonksiyona genişletiyoruz.

    Burada x'ten küçük en büyük tam sayıdır. Böyle bir çarpılmış görüntünün Fourier dönüşümü şu şekildedir:

    Kullanarak uygun şekildeörn. 7.1 kanıtlanmıştır

    Buradan,

    dolayısıyla ayrık bir frekans grubu dışında her yerde sıfıra eşit olduğunu görüyoruz, bu nedenle bulmak için bu noktaları bilmemiz yeterli. Bununla birlikte, işlev, hangi bölümün basit bir şekilde kırpılmasından elde edilir? Bu nedenle, geri yüklemek için sadece herkes için bilmemiz yeterlidir, bu sayılabilir bir sayılar kümesidir.

    Periyodik fonksiyonun dönüşümünün ayrık olduğuna dikkat edin. Ters dönüşüm, bir dizi olarak temsil edilebilir, çünkü

    Sürekli bir görüntünün ayrık bir görüntü ile değiştirilmesi yapılabilir. Farklı yollar. Örneğin, bazı ortogonal fonksiyonlar sistemi seçmek ve bu sistem için (bu temel için) görüntü temsil katsayılarını hesapladıktan sonra, görüntüyü onlarla değiştirmek mümkündür. Bazların çeşitliliği, sürekli bir görüntünün çeşitli ayrı temsillerinin oluşturulmasını mümkün kılar. Bununla birlikte, en sık kullanılan, periyodik örneklemedir, özellikle yukarıda bahsedildiği gibi, dikdörtgen raster örneklemedir. Bu ayrıklaştırma yöntemi, öğeleri olarak kaydırılmış -fonksiyonları kullanan bir ortogonal taban kullanma seçeneklerinden biri olarak düşünülebilir. Ayrıca, esas olarak, dikdörtgen ayrıklaştırmanın ana özelliklerini ayrıntılı olarak ele alacağız.

    Izin vermek sürekli bir görüntü olsun ve sürekli olandan dikdörtgen ayrıklaştırma yoluyla elde edilen karşılık gelen ayrık görüntü olsun. Bu, aralarındaki ilişkinin şu ifadeyle belirlendiği anlamına gelir:

    sırasıyla dikey ve yatay adımlar veya örnekleme aralıkları nerededir. Şekil 1.1, dikdörtgen ayrıklaştırma ile düzlemdeki okumaların konumunu göstermektedir.

    Kesintisiz bir görüntü ayrı bir görüntü ile değiştirildiğinde ortaya çıkan ana soru, bu tür bir değiştirmenin tamamlandığı koşulları belirlemektir, yani. sürekli sinyalde bulunan bilgi kaybı eşlik etmez. Şu durumlarda kayıp yoktur: ayrık sinyal, sürekli geri yükleyebilirsiniz. Matematiksel bir bakış açısından mesele, bu nedenle, sürekli bir sinyali, değerlerinin bilindiği düğümler arasındaki iki boyutlu boşluklarda yeniden oluşturmak veya başka bir deyişle iki boyutlu enterpolasyon gerçekleştirmektir. Bu soru, sürekli ve ayrık görüntülerin spektral özelliklerini analiz ederek cevaplanabilir.

    Sürekli bir sinyalin iki boyutlu sürekli frekans spektrumu, iki boyutlu doğrudan Fourier dönüşümü ile belirlenir:

    iki boyutlu tersine karşılık gelen sürekli dönüşüm Fourier:

    Son ilişki, dikdörtgen bir kafesin düğümleri de dahil olmak üzere herhangi bir değer için geçerlidir. . Bu nedenle, düğümlerdeki sinyal değerleri için (1.1) dikkate alındığında, bağıntı (1.3) şu şekilde yazılabilir:

    Kısa olması için, iki boyutlu frekans alanında dikdörtgen bir alanla gösterin. (1.4)'teki integralin tüm frekans alanı üzerinden hesaplanması, üzerinden entegrasyon ile değiştirilebilir. ayrı bölümler ve sonuçları özetlemek:

    Kurala göre değişkenlerin değişimini gerçekleştirerek, entegrasyon alanının sayılardan bağımsızlığını elde ederiz ve:

    Burada dikkate alınan herhangi bir tamsayı değeri için ve . Formdaki bu ifade, ters Fourier dönüşümüne çok yakındır. Tek fark, üstel faktörün yanlış biçimidir. Gerekli formu vermek için, normalleştirilmiş frekansları tanıtıyoruz ve buna göre değişkenlerin bir değişikliğini gerçekleştiriyoruz. Sonuç olarak, şunu elde ederiz:

    Şimdi ifade (1.5), ters Fourier dönüşümü biçimine sahiptir, bu nedenle, integral işareti altındaki işlev

    (1.6)

    ayrı görüntünün iki boyutlu spektrumudur. Normalleştirilmemiş frekanslar düzleminde, ifade (1.6) şu şekildedir:

    (1.7)

    (1.7)'den, ayrı bir görüntünün iki boyutlu spektrumunun, periyotlarla ve sırasıyla frekans eksenleri boyunca ve sırasıyla dikdörtgen şeklinde periyodik olduğu sonucu çıkar. Ayrık bir görüntünün spektrumu, sürekli bir görüntünün frekans kaymaları ve . Şekil 1.2, sürekli (Şekil 1.2.a) ve ayrık (Şekil 1.2.b) görüntülerin iki boyutlu spektrumları arasındaki ilişkiyi niteliksel olarak göstermektedir.

    Pirinç. 1.2. Frekans spektrumları sürekli ve ayrık görüntüler

    Toplamanın sonucu, esasen bu frekans kaymalarının değerlerine veya başka bir deyişle örnekleme aralıklarının seçimine bağlıdır. Sürekli bir görüntünün spektrumunun sıfır frekans civarında iki boyutlu bir bölgede sıfırdan farklı olduğunu, yani iki boyutlu sonlu bir fonksiyon tarafından tanımlandığını varsayalım. Ek olarak, örnekleme aralıkları şu şekilde seçilirse: için , o zaman toplamın (1.7) oluşumunda bireysel dalların çakışması olmayacaktır. Sonuç olarak, her bir dikdörtgen bölüm içinde, yalnızca bir terim sıfırdan farklı olacaktır. Özellikle, sahip olduğumuz için:

    . (1.8)

    Böylece, frekans alanı içinde, sürekli ve ayrık görüntülerin spektrumları sabit bir faktöre kadar çakışır. Bu durumda, bu frekans alanındaki ayrı görüntünün spektrumu şunları içerir: full bilgi sürekli bir görüntünün spektrumu hakkında. Bu çakışmanın yalnızca iyi bir örnekleme aralığı seçimiyle belirlenen belirli koşullar altında gerçekleştiğini vurguluyoruz. (1.8)'e göre bu koşulların yerine getirilmesinin, gereksinimleri karşılaması gereken yeterince küçük örnekleme aralığı değerleri için elde edildiğini unutmayın:

    iki boyutlu spektrumun sınır frekansları nerede.

    İlişki (1.8), kesikli bir görüntüden sürekli bir görüntü elde etme yöntemini belirler. Bunu yapmak için, ayrık bir görüntünün düşük geçişli filtre ile iki boyutlu filtrelemesini gerçekleştirmek yeterlidir. frekans tepkisi

    Görüntünün çıkışındaki spektrumu, yalnızca frekans alanında sıfır olmayan bileşenler içerir ve (1.8)'e göre, sürekli görüntünün spektrumuna eşittir. Bu, ideal bir alçak geçiren filtrenin çıktı görüntüsünün aynı olduğu anlamına gelir.

    Bu nedenle, sürekli bir görüntünün ideal interpolasyon yeniden yapılandırması, dikdörtgen frekans yanıtına (1.10) sahip iki boyutlu bir filtre kullanılarak gerçekleştirilir. Kesintisiz bir görüntüyü geri yüklemek için algoritmayı açık bir biçimde yazmak kolaydır. 2D dürtü yanıtı(1.10)'dan ters Fourier dönüşümü kullanılarak elde edilmesi kolay olan geri yükleme filtresi şu şekildedir:

    .

    Filtre ürünü, giriş görüntüsünün iki boyutlu bir evrişimi ve belirli bir dürtü yanıtı kullanılarak belirlenebilir. sunum giriş resmi iki boyutlu bir -fonksiyon dizisi olarak

    evrişimden sonra şunu buluruz:

    Ortaya çıkan ilişki, iki boyutlu numunelerinin bilinen bir dizisinden sürekli bir görüntünün enterpolasyonla doğru bir şekilde yeniden yapılandırılması için bir yöntemi gösterir. Bu ifadeye göre, kesin restorasyon için formun iki boyutlu fonksiyonları enterpolasyon fonksiyonları olarak kullanılmalıdır. İlişki (1.11), Kotel'nikov-Nyquist teoreminin iki boyutlu bir versiyonudur.

    Sinyalin iki boyutlu spektrumunun sonlu olması ve örnekleme aralıklarının yeterince küçük olması durumunda bu sonuçların geçerli olduğunu bir kez daha vurguluyoruz. Bu koşullardan en az biri karşılanmazsa çıkarılan sonuçların geçerliliği ihlal edilir. Gerçek görüntüler nadiren belirgin kesme frekanslarına sahip spektrumlara sahiptir. Spektrumun sınırsızlığına yol açan sebeplerden biri görüntünün sınırlı boyutudur. Bu nedenle, (1.7)'deki her bir banttaki toplam, komşu spektral bantlardan gelen terimlerin hareketini gösterir. Bu durumda, sürekli bir görüntünün tam olarak geri yüklenmesi genellikle imkansız hale gelir. Özellikle, dikdörtgen frekans yanıtına sahip bir filtrenin kullanılması doğru restorasyona yol açmaz.

    Örnekler arasındaki aralıklarda optimal görüntü rekonstrüksiyonunun bir özelliği, prosedürde (1.11) belirtildiği gibi, ayrı bir görüntünün tüm örneklerinin kullanılmasıdır. Bu her zaman uygun değildir, genellikle az sayıda mevcut ayrık değere dayalı olarak yerel alandaki sinyali geri yüklemek gerekir. Bu durumlarda, çeşitli enterpolasyon işlevleri kullanılarak yarı-optimal kurtarmanın uygulanması tavsiye edilir. Bu tür bir sorun, örneğin, iki görüntüyü birbirine bağlama problemini çözerken, bu görüntülerin geometrik uyumsuzlukları nedeniyle bunlardan birinin mevcut okumaları, düğümler arasındaki boşluklarda bulunan bazı noktalara karşılık gelebildiğinde ortaya çıkar. diğer. Bu sorunun çözümü, bu kılavuzun sonraki bölümlerinde daha ayrıntılı olarak tartışılmaktadır.

    Pirinç. 1.3. Örnekleme Aralığının Görüntü Kurtarma Üzerindeki Etkisi

    "Parmak izi"

    Pirinç. 1.3, örnekleme aralıklarının görüntü kurtarma üzerindeki etkisini gösterir. Bir parmak izi olan orijinal görüntü, Şek. 1.3, a ve normalleştirilmiş spektrumunun bölümlerinden biri Şekil 1'de gösterilmiştir. 1.3, b. Bu görüntü ayrıdır ve değer kesme frekansı olarak kullanılır. Şekil l'den aşağıdaki gibi 1.3b'de, bu frekanstaki spektrumun değeri ihmal edilebilecek kadar küçüktür ve bu da yüksek kaliteli yeniden yapılandırmayı garanti eder. Aslında, Şekil l'de görüldüğü gibi. 1.3.a, resim, sürekli bir görüntünün geri yüklenmesinin sonucudur ve geri yükleme filtresinin rolü, bir görselleştirme cihazı - bir monitör veya yazıcı - tarafından gerçekleştirilir. Bu anlamda, Şekil 1'deki görüntü. 1.3.a sürekli olarak kabul edilebilir.

    Pirinç. 1.3, c, d, yanlış örnekleme aralığı seçiminin sonuçlarını gösterir. Bunlar elde edildiğinde “sürekli görüntünün ayrıklaştırılması” (Şekil 2) yapılmıştır. 1.3.a okumalarını incelterek. Pirinç. 1.3, c, her koordinat için örnekleme adımında üç artışa karşılık gelir ve şek. 1.3, d - dört kez. Kesme frekanslarının değerleri aynı sayıda daha düşük olsaydı bu kabul edilebilirdi. Aslında, Şekil l'den de görülebileceği gibi. 1.3, b, gereksinimler (1.9) ihlal edilir, özellikle numuneler dört kez inceltildiğinde kaba. Bu nedenle, algoritma (1.11) kullanılarak yeniden oluşturulan görüntüler yalnızca odak dışı olmakla kalmaz, aynı zamanda baskının dokusunu da büyük ölçüde bozar.

    Pirinç. 1.4. Örnekleme aralığının "Portre" görüntüsünün restorasyonu üzerindeki etkisi

    Şek. 1.4, "portre" tipi bir görüntü için elde edilen benzer bir dizi sonucu gösterir. Daha güçlü bir incelmenin sonuçları (Şekil 1.4.c'de dört kez ve Şekil 1.4.d'de altı kez) esas olarak netlik kaybında görülür. Öznel olarak, kalite kaybı Şekil 1'dekinden daha az önemli görünmektedir. 1.3. Bu, bir parmak izi görüntüsünden çok daha küçük spektrum genişliği ile açıklanmaktadır. Orijinal görüntünün ayrıklaştırılması, kesme frekansına karşılık gelir. Olarak Şekil l'de görülebilir. 1.4.b'de bu değer gerçek değerinden çok daha yüksektir. Bu nedenle, Şekil 2'de gösterilen örnekleme aralığındaki artış. 1.3, c, d, tabloyu kötüleştirse de yine de önceki örnekteki gibi yıkıcı sonuçlara yol açmıyor.

    Çok sağlayan bir sıkıştırma algoritması yüksek kalite 25:1'den büyük bir veri sıkıştırma oranındaki görüntüler. Tam renkli 24 bit 640 x 480 piksel (VGA standardı) görüntünün depolanması için genellikle video RAM gerekir ... ...

    Ayrık Dalgacık Dönüşümü- Ayrık dalgacık görüntü dönüşümünün 1. düzeyine bir örnek. Üstte orijinal tam renkli görüntü, ortada orijinal görüntü üzerinde yatay olarak yapılan dalgacık dönüşümü (sadece parlaklık kanalı), altta dalgacık ... ... Wikipedia

    RASTER - raster- piksel [of] matrisi olarak temsil edilen ayrık bir görüntü ... E-İş Sözlüğü

    bilgisayar grafikleri- bilgi görüntüsünün ekranda (monitörde) görselleştirilmesi. Bir görüntünün kağıt veya başka bir ortamda çoğaltılmasının aksine, ekranda oluşturulan bir görüntü neredeyse anında silinebilir ve/veya düzeltilebilir, küçültülebilir veya uzatılabilir,… … ansiklopedik Sözlük

    raster- Bir ekran veya kağıt üzerinde bir piksel matrisi olarak sunulan ayrı bir görüntü. Bir tarama, çözünürlük, birim uzunluk başına piksel sayısı, boyut, renk derinliği vb. ile karakterize edilir. Kombinasyon örnekleri: yoğunluk ... ... Teknik Tercümanın El Kitabı

    masa- ▲ dizi iki boyutlu tablo iki boyutlu dizi; iki değişkenli bir fonksiyonun ayrık gösterimi; bilgi ızgarası. matris. karne. | tablolama. astar. astar. kolon. kolon. kolon. grafik. grafik. degraf. ▼ grafik… Rus Dilinin İdeografik Sözlüğü

    Laplace dönüşümü- Laplace dönüşümü, karmaşık bir değişkenin (görüntü) işlevini gerçek bir değişkenin (orijinal) işleviyle birleştiren bir integral dönüşümdür. Özellikleri keşfetmek için kullanılır. dinamik sistemler ve karar ver ... ... Wikipedia

    Laplace dönüşümü

    Ters Laplace Dönüşümü- Laplace dönüşümü, karmaşık bir değişkenin (görüntü) bir işlevini gerçek bir değişkenin (orijinal) bir işleviyle ilişkilendiren bir integral dönüşümdür. Yardımı ile dinamik sistemlerin özellikleri araştırılır ve diferansiyel ve ... Wikipedia

    GOST R 52210-2004: Dijital televizyon yayını. Terimler ve tanımlar- Terminoloji GOST R 52210 2004: Dijital televizyon yayını. Terimler ve tanımlar orijinal belge: 90 (televizyon) çoğullama çözücü: Birleşik dijital televizyon veri akışlarını ayırmak için tasarlanmış bir cihaz ... ... Normatif ve teknik dokümantasyon terimlerinin sözlük referans kitabı

    Video sıkıştırma- (eng. Video sıkıştırma) video akışını temsil etmek için kullanılan veri miktarının azaltılması. Video sıkıştırma, videoyu yayın kanalları üzerinden iletmek için gereken akışı etkili bir şekilde azaltmanıza, alanı azaltmanıza, ... ... Wikipedia'ya olanak tanır