Analog ve ayrık görüntü. Ders "görüntüleri ve sesi temsil etmenin analog ve ayrık yolları"

  • 21.07.2019

Her biri sonlu bir zaman içinde değişen sınırlı sayıda ayırt edilebilir değer alabilen ayrık elemanlardan 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.

Birinci bölümde gösterildiği gibi, retina ayrık görüntüleri görsel analizörün daha yüksek kısımlarına iletir.

Görünür devamlılıkları, görme yanılsamalarından yalnızca biridir. Başlangıçta sürekli olan görüntülerin bu "kuantizasyonu", gözün optik sisteminin çözümleme gücüyle ilişkili sınırlamalar ve hatta görsel sistemin morfolojik yapısal öğeleri tarafından değil, sinir ağlarının işlevsel organizasyonu tarafından belirlenir.

Görüntü, bir veya daha fazla sayıda fotoreseptörü birleştiren alıcı alanlar tarafından ayrı öğelere bölünür. Alıcı alanlar, uzaysal ve zamansal toplamla yararlı ışık sinyalinin birincil izolasyonunu üretir.

Retinanın orta kısmı (fovea) sadece koniler tarafından işgal edilir, çevrede, foveanın dışında hem koniler hem de çubuklar vardır. Gece görüşü koşulları altında, retinanın orta kısmındaki koni alanları yaklaşık olarak aynı boyuta sahiptir (açısal ölçü olarak yaklaşık 5 ").Açısal boyutları yaklaşık 90" olan bir foveadaki bu tür alanların sayısı yaklaşık 200'dür. Gece görüşü koşullarında ana rol, retinanın geri kalanını kaplayan çubuk alanlar tarafından oynanır. Retinanın tüm yüzeyi üzerinde yaklaşık 1 ° açısal boyuta sahiptirler. Retinadaki bu tür alanların sayısı yaklaşık 3 bindir.Bu koşullar altında sadece algılama değil, aynı zamanda zayıf aydınlatılmış nesnelerin incelenmesi de retinanın periferik alanları tarafından gerçekleştirilir.

Artan aydınlatma ile, başka bir depolama hücresi sistemi olan koni alıcı alanlar ana rolü oynamaya başlar. Foveada, aydınlatmadaki bir artış, yaklaşık 100 asb parlaklıkta bir koniye düşene kadar etkin alan değerinde kademeli bir azalmaya neden olur. Çevrede, aydınlatmanın artmasıyla, çubuk alanlar yavaş yavaş kapatılır (engellenir) ve koni alanları harekete geçer. Çevredeki koni alanları, foveal alanlar gibi, üzerlerine gelen ışık enerjisine bağlı olarak azalma özelliğine sahiptir. Artan aydınlatma ile koni alıcı alanlara sahip olabilen en fazla koni sayısı merkezden retinanın kenarlarına doğru büyür ve merkezden 50-60 ° açısal mesafede yaklaşık 90'a ulaşır.

Gün ışığının iyi olduğu koşullarda alıcı alan sayısının 800 bin civarında olduğu hesaplanabilir.Bu değer kabaca insan optik sinirindeki liflerin sayısına karşılık gelir. Gündüz görüşündeki 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ştirilebildiği fovea tarafından gerçekleştirilir.

Retinanın depolama hücrelerinin sayısı tatmin edici bir yaklaşımla belirlenebilirse, alıcı alanların olası durumlarının sayısını belirlemek için hala yetersiz veri vardır. Alıcı alanların diferansiyel eşiklerinin çalışmasına 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. Ayırt edilebilir derecelerin sayısı azdır. Koni foveal alıcı alanının tüm yeniden yapılandırılması aralığında, 8-9 derece farklıdır.

Alıcı alandaki birikim periyodu - sözde kritik süre - ortalama olarak yaklaşık 0,1 s olarak belirlenir, ancak yüksek aydınlatma seviyelerinde görünüşte önemli ölçüde azalabilir.

Aslında, iletilen görüntülerin ayrık yapısını tanımlayan model daha da karmaşık olmalıdır. Alıcı alanın boyutu, eşikler ve kritik süre ile görsel eşiklerin istatistiksel doğası arasındaki ilişki dikkate alınmalıdır. Ama şimdilik, bu gerekli değil. Bir görüntü modeli olarak, açısal boyutları, gözle çözülen en küçük ayrıntının açısal boyutlarından daha az olan, ayırt edilebilir durumlarının sayısı maksimumdan daha büyük olan, aynı alanın bir dizi elemanını temsil etmek yeterlidir. ayırt edilebilir parlaklık dereceleri sayısı ve ayrık değişim süresi, kritik kırpışma füzyon frekansında kırpışma süresinden daha az olan.

Dış dünyanın gerçek sürekli nesnelerinin görüntülerini bu tür ayrık görüntülerle değiştirirsek, göz ikameyi fark etmeyecektir.* Sonuç olarak, bu tür ayrık görüntüler en azından görsel sistemin algıladığından daha az bilgi içermez. **

* Renkli ve hacimsel görüntüler de ayrı bir modelle değiştirilebilir.
** Sürekli görüntülerin ayrık görüntülerle değiştirilmesi 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ü de ayrı elemanlara bölünür ve parlaklık açısından nicelenir.

Ö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ık noktalar kümesinde sayılan görüntülerle uğraşıyoruz. Bu nedenle, şimdiye kadar geliştirilen yöntemlerin bu alanda da uygulanabilmesi için uyarlanması, genişletilmesi ve değiştirilmesi gerekmektedir. Dikkatli düşünmeyi gerektiren birkaç yeni nokta da ortaya çıkıyor.

Örnekleme teoremi, sürekli bir görüntünün hangi koşullar altında ayrı bir değer kümesinden doğru bir şekilde yeniden oluşturulabileceğini söyler. Uygulanabilirlik koşulları karşılanmadığında ne olduğunu da öğreneceğiz. Bütün bunların görsel sistemlerin gelişimi ile çok ilgisi var.

Frekans alanına geçiş gerektiren teknikler, kısmen ayrık Fourier dönüşümünün hızlı hesaplanması için algoritmalar nedeniyle popüler hale geldi. Bununla birlikte, bu yöntemler periyodik bir sinyalin mevcut olduğunu varsaydığından dikkatli olunmalıdır. Bu şartın nasıl karşılanabileceğini ve ihlalin nelere yol açacağını tartışacağız.

7.1. Görüntü boyutlarını sınırlama

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

İşlevi geri yüklemek için tüm frekansları bilmemize gerek olmaması ilginçtir. Bunun ne zaman zor bir kısıtlama olduğunu bilmek. Başka bir deyişle, görüntü düzleminin yalnızca sınırlı bir alanında 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 belirli bir görüntünün kopyalarıyla kaplandığını hayal edin. Başka bir deyişle, imajımızı her iki yönde de periyodik olan bir fonksiyona genişletiyoruz.

İşte x'i geçmeyen en büyük tam sayı. Böyle bir çoğaltılmış görüntünün Fourier dönüşümü şu şekildedir:

Alıştırmada uygun şekilde seçilmiş yakınsama faktörlerinin kullanılması. 7.1 kanıtlanmıştır ki

Buradan,

buradan ayrık bir frekans kümesi dışında her yerde sıfıra eşit olduğunu görüyoruz. Bununla birlikte, işlev, ilgili alanın basit bir kırpılmasından elde edilir. Bu nedenle, geri yüklemek için sadece herkes için bilmemiz yeterlidir.Bu sayılabilir bir sayı kümesidir.

Periyodik fonksiyonun dönüşümünün ayrık olduğu ortaya çıkıyor. Ters dönüşüm bir dizi olarak temsil edilebilir, çünkü

Grafik bilgilerinin analog ve ayrık sağlanması Bir kişi, bilgileri görüntüler (görsel, ses, dokunsal, tat ve koku alma) biçiminde algılayabilir ve saklayabilir. Görsel görüntüler, görüntüler (çizimler, fotoğraflar vb.) şeklinde kaydedilebilir ve ses görüntüleri kayıtlara, manyetik bantlara, lazer disklere vb. kaydedilebilir.

Grafik ve ses dahil olmak üzere bilgiler analog veya ayrık biçimde sunulabilir. Analog gösterimde, fiziksel bir nicelik sonsuz bir değerler kümesi alır ve değerleri sürekli değişir. Ayrık bir gösterimde, fiziksel bir nicelik sonlu bir değerler kümesi alır ve değeri aniden değişir.

Analog ve ayrık bilgi gösterimine bir örnek verelim. Vücudun eğimli bir düzlemdeki ve bir merdiven üzerindeki konumu, X ve Y koordinatlarının değerleri ile belirlenir. Bir vücut eğik bir düzlem boyunca hareket ettiğinde, koordinatları sonsuz bir sürekli değişen değerler kümesi alabilir. belirli bir aralıktan ve bir merdiven boyunca hareket ederken, yalnızca belirli bir değerler kümesi ve aniden değişiyor


Grafik bilgilerinin analog temsiline bir örnek, örneğin rengi sürekli değişen bir boyama tuvali ve ayrık - bir mürekkep püskürtmeli yazıcı kullanılarak basılmış ve farklı renklerde ayrı noktalardan oluşan bir görüntü olabilir. Ses bilgisinin analog depolanmasına bir örnek, bir vinil kayıttır (ses izi sürekli olarak şeklini değiştirir) ve ayrık depolama, bir ses CD'sidir (ses izi farklı yansıtıcılığa sahip alanlar içerir).

Grafik ve ses bilgilerinin analogdan ayrık forma dönüştürülmesi, örnekleme yoluyla, yani sürekli bir grafik görüntüyü ve sürekli (analog) bir ses sinyalini ayrı öğelere bölerek gerçekleştirilir. Örnekleme sürecinde kodlama gerçekleştirilir, yani her bir öğenin kod şeklinde belirli bir değere atanması.

Örnekleme, sürekli görüntülerin ve sesin kodlar biçiminde bir dizi ayrık değere dönüştürülmesidir.

Bilgisayar belleğindeki ses

Temel konseptler: ses adaptörü, örnekleme frekansı, kayıt kapasitesi, ses dosyası.

Sesin fiziksel doğası, hava (veya başka bir elastik ortam) aracılığıyla bir ses dalgası tarafından iletilen, belirli bir frekans aralığındaki titreşimlerdir. Ses dalgalarını bilgisayarın belleğinde ikili koda dönüştürme işlemi: ses dalgası -> mikrofon -> alternatif elektrik akımı -> ses bağdaştırıcısı -> ikili kod -> bilgisayar belleği .

Bilgisayar belleğinde depolanan ses bilgilerini yeniden üretme süreci:
bilgisayar belleği -> ikili kod -> ses adaptörü -> alternatif elektrik akımı -> hoparlör -> ses dalgası.

Ses adaptörü(ses kartı) - ses girişi sırasında bir ses frekansının elektrik titreşimlerini sayısal bir ikili koda dönüştürmek ve ses çalarken (sayısal bir koddan elektrik titreşimlerine) ters dönüşüm için tasarlanmış bir bilgisayara bağlı özel bir cihaz.

Ses kaydederken ses adaptörü belirli bir süre ile elektrik akımının genliğini ölçer ve reg'e girer. pp, elde edilen değerin ikili kodudur. Daha sonra kayıttan alınan kod bilgisayarın RAM'ine yeniden yazılır. Bilgisayar sesinin kalitesi, ses adaptörünün özelliklerine göre belirlenir: örnekleme frekansı ve bit derinliği.

Örnekleme frekansı Giriş sinyalinin saniyedeki ölçüm sayısıdır. Frekans hertz (Hz) cinsinden ölçülür. Bir saniyede bir ölçüm, 1 Hz'lik bir frekansa karşılık gelir. Bir saniyede 1000 ölçüm -1 kilohertz (kHz). Ses adaptörleri disketasyonunun tipik frekansları: 11 kHz, 22 kHz, 44.1 kHz, vb.

Kayıt boyutu- ses bağdaştırıcı kaydındaki bit sayısı. Bit derinliği, giriş sinyali ölçümünün doğruluğunu belirler. Rakam kapasitesi ne kadar büyük olursa, elektrik sinyalinin büyüklüğünün bir sayıya her bir bireysel dönüşümünün hatası o kadar küçük olur ve bunun tersi de geçerlidir. Bit genişliği 8 (16) ise giriş sinyali ölçülürken 2 8 = 256 (2 16 = 65536) farklı değerler elde edilebilir. Belli ki 16 bit bir ses adaptörü, sesi 8 bitlik bir adaptörden daha doğru bir şekilde kodlar ve yeniden üretir.

Ses dosyası- ses bilgilerini sayısal ikili biçimde saklayan bir dosya. Tipik olarak, ses dosyalarındaki bilgiler sıkıştırılır.

Çözülen problemlere örnekler.

Örnek 1.
22.05 kHz örnekleme hızında ve 8 bit çözünürlükte çalma süresi 10 saniye olan bir dijital ses dosyasının boyutunu (bayt olarak) belirleyin. Dosya sıkıştırılmamış.

Çözüm.
Dijital bir ses dosyasının (mono ses) boyutunu (bayt cinsinden) hesaplama formülü: (Hz cinsinden örnekleme frekansı) * (saniye cinsinden kayıt süresi) * (bit cinsinden çözünürlük) / 8.

Böylece dosya şu şekilde hesaplanır: 22050 * 10 * 8/8 = 220500 bayt.

Kendi kendine çalışma ödevleri

# 1. 44.1 kHz örnekleme hızında ve 16 bit çözünürlükte çalma süresi iki dakika olan bir dijital ses dosyasını depolamak için bellek miktarını belirleyin.

2. Kullanıcının emrinde 2,6 MB'lık bir hafıza vardır. 1 dakikalık bir dijital ses dosyası kaydetmeniz gerekir. Örnekleme hızı ve bit derinliği ne olmalıdır?

Numara 3. Boş disk alanı 5,25 MB, kartın ses derinliği 16. Örnekleme frekansı 22,05 kHz olan bir dijital ses dosyasının ses süresi nedir?

4 numara. Dijital ses dosyasının bir dakikası diskte 1.3 MB yer kaplar, ses kartının bit derinliği 8'dir. Kaydedilen sesin örnekleme hızı nedir?

Numara 5. Dijital bir ses dosyasının iki dakikalık kaydı bir diskte 5.1 MB yer kaplar. Örnekleme hızı 22050 Hz'dir. Ses adaptörünün bit derinliği nedir? 6. Diskteki boş bellek miktarı 0,01 GB, ses kartının bit derinliği 16'dır. 44100 Hz örnekleme frekansı ile kaydedilmiş bir dijital ses dosyasının ses süresi nedir?

Grafik bilgi sunumu.

Bit eşlem gösterimi.

Temel kavramlar: Bilgisayar grafikleri, piksel, raster, ekran çözünürlüğü, video bilgisi, video belleği, grafik dosyası, bit derinliği, video belleği sayfası, piksel renk kodu, grafik ilkel, grafik koordinat sistemi.

Bilgisayar grafikleri- konusu bir bilgisayarda grafik görüntüler (resimler, çizimler, fotoğraflar, video çerçeveleri vb.) Üzerinde çalışan bir bilişim bölümü.

piksel- ekrandaki görüntünün en küçük öğesi (ekrandaki nokta).

Raster- ekranda dikdörtgen bir piksel ızgarası.

Ekran çözünürlüğü- M * N ürünü olarak belirtilen raster ızgaranın boyutu, burada M yatay nokta sayısıdır, N dikey boyunca nokta sayısıdır (çizgi sayısı).

video bilgileri- bilgisayar belleğinde saklanan, bilgisayar ekranında çoğaltılan görüntü hakkında bilgi.

Video belleği- ekrandaki bir görüntüde oynatımı sırasında video bilgilerini depolayan rastgele erişimli bellek.

Grafik dosyası- bir grafik görüntü hakkında bilgi depolayan bir dosya.

Görüntü ekranında yeniden üretilen renk sayısı (K) ve video belleğinde her piksel için ayrılan bit sayısı (N) şu formülle ilişkilidir: K = 2 N

N miktarı denir bit derinliği.

Sayfa- bir ekran görüntüsü (ekranda bir "resim") hakkında bilgi içeren bir video belleği bölümü. Video belleğine aynı anda birkaç sayfa yerleştirilebilir.

Ekrandaki tüm renk çeşitleri, üç temel rengin karıştırılmasıyla elde edilir: kırmızı, mavi ve yeşil. Ekrandaki her piksel, bu renklerle parlayan birbirine yakın üç öğeden oluşur. Bu prensibi kullanan renkli ekranlara RGB (Kırmızı-Yeşil-Mavi) monitörler denir.

kod piksel renkleri her bir temel rengin oranı hakkında bilgi içerir.
Her üç bileşen de aynı yoğunluğa (parlaklığa) sahipse, kombinasyonlarından 8 farklı renk elde edilebilir (2 3). Aşağıdaki tablo, 3 bitlik bir ikili kod kullanarak 8 renkli bir paletin kodlamasını gösterir. İçinde, temel rengin varlığı bir, yokluğu sıfır ile gösterilir.

İkili kod


İLE Z İLE BİRLİKTE Renk
0 0
0
Siyah
0 0
1
Mavi
0 1 0 Yeşil
0 1 1 Mavi
1 0
0
kırmızı
1 0
1
Pembe
1 1
0
Kahverengi
1 1
1
Beyaz

4 bitlik piksel kodlaması kullanılarak on altı renk paleti elde edilir: temel renklerin üç bitine bir bit yoğunluk eklenir. Bu bit, aynı anda üç rengin parlaklığını kontrol eder. Örneğin, 8 renk paletinde 100 kodu kırmızı anlamına geliyorsa, 16 renk paletinde: 0100 - kırmızı, 1100 - parlak kırmızı; 0110 - kahverengi, 1110 - parlak kahverengi (sarı).

Temel renklerin yoğunluğu ayrı ayrı kontrol edilerek çok sayıda renk elde edilir. Ayrıca, temel renklerin her birini kodlamak için birden fazla bit tahsis edilmişse, yoğunluk ikiden fazla seviyeye sahip olabilir.

8 bit/piksel bit derinliği kullanıldığında renk sayısı 2 8 = 256'dır. Bu kodun bitleri şu şekilde dağıtılır: KKKZZSS.

Bu, kırmızı ve yeşil bileşenler için 3 bit ve mavi için 2 bit tahsis edildiği anlamına gelir. Bu nedenle, kırmızı ve yeşil bileşenlerin 2 3 = 8 parlaklık seviyesi ve mavi - 4 seviyesi vardır.

Vektör gösterimi.

Vektör yaklaşımında, görüntü basit öğelerin bir koleksiyonu olarak kabul edilir: düz çizgiler, yaylar, daireler, elipsler, dikdörtgenler, gölgeler vb. grafik ilkelleri... Grafik bilgisi, bir çizimi oluşturan tüm grafik ilkelleri benzersiz şekilde tanımlayan verilerdir.

Grafik temel öğelerin konumu ve şekli şu şekilde ayarlanır: grafik koordinat sistemi ekranla alakalı. Genellikle başlangıç, ekranın sol üst köşesinde bulunur. Piksel ızgarası, koordinat ızgarasıyla eşleşir. Yatay X ekseni soldan sağa doğru uzanır; dikey Y ekseni yukarıdan aşağıya doğrudur.

Düz bir çizginin bir parçası, uçlarının koordinatları belirlenerek benzersiz bir şekilde belirlenir; daire - merkez koordinatları ve yarıçap; polihedron - köşelerinin koordinatları, doldurulmuş alan - sınır çizgisi ve dolgunun rengi vb.

Emretmek

Eylem

X1, Y1 hattı

Mevcut konumdan (X1, Y1) konumuna bir çizgi çizin.

Çizgi X1, Y1, X2, Y2

Başlangıç ​​koordinatları X1, Y1 ve bitiş koordinatları X2, Y2 olan bir çizgi çizin. Geçerli konum ayarlanmadı.

Daire X, Y, R

Bir daire çizin: X, Y - merkez koordinatları, R - raster ızgara adımlarında yarıçap uzunluğu.

Elips X1, Y1, X2, Y2

Bir dikdörtgenle sınırlanmış bir elips çizin; (X1, Y1) bu dikdörtgenin sol üst köşesinin koordinatlarıdır ve (X2, Y2) bu dikdörtgenin sağ alt köşesinin koordinatlarıdır.

Dikdörtgen X1, Y1, X2, Y2

Bir dikdörtgen çizin; (X1, Y1) bu dikdörtgenin sol üst köşesinin koordinatlarıdır ve (X2, Y2) bu dikdörtgenin sağ alt köşesinin koordinatlarıdır.

Boya rengi RENK

Geçerli çizim rengini ayarlayın.

Dolgu rengi RENK

Geçerli dolgu rengini ayarlayın.

X, Y, BORDÜR RENGİ üzerine boya

İsteğe bağlı bir kapalı şekli boyayın; X, Y - kapalı şeklin içindeki herhangi bir noktanın koordinatları, KENARLIK RENGİ - sınır çizgisi rengi.

Çözülen problemlere örnekler.

Örnek 1.
Bir rengi oluşturmak için kırmızının 256 tonu, yeşilin 256 tonu ve mavinin 256 tonu kullanılır. Bu durumda ekranda kaç renk görüntülenebilir?

Çözüm:
256*256*256=16777216.

Örnek 2.
640*200 çözünürlüğe sahip bir ekranda sadece iki renkli görüntüler görüntülenir. Bir görüntüyü saklamak için gereken minimum video belleği miktarı nedir?

Çözüm.
İki renkli bir görüntünün bit derinliği 1 olduğundan ve video belleği görüntünün en az bir sayfasını içermesi gerektiğinden, video belleği miktarı: 640 * 200 * 1 = 128000 bit = 16000 bayttır.

Örnek No. 3.
Bit derinliği 24 ve ekran çözünürlüğü 800 * 600 piksel ise, bir görüntünün dört sayfasını depolamak için ne kadar video belleği gerekir?

Çözüm.
Bir sayfayı saklamak için ihtiyacınız olan

800 * 600 * 24 = 11.520.000 bit = 1.440.000 bayt. Sırasıyla 4 için 1.440.000 * 4 = 5.760.000 bayt.

4. Örnek.
Bit derinliği 24'tür. Ekranda kaç farklı gri tonu gösterilebilir?
Not: Üç bileşenin hepsinin parlaklık seviyelerinin eşit değerleriyle bir gri tonu elde edilir. Üç bileşenin tümü maksimum parlaklık düzeyine sahipse, renk beyazdır; üç bileşenin hepsinin yokluğu siyahı temsil eder.

Çözüm.
RGB bileşenleri gri tonlama için aynı olduğundan derinlik 24/3 = 8'dir. 2 8 = 256 renk sayısını elde ederiz.

Örnek No. 5.
Bir raster ızgarası 10 * 10 verildi. Bir dizi vektör komutuyla "K" harfini tanımlayın.

Çözüm:
Vektör gösteriminde "K" harfi üç satırdır. Herhangi bir çizgi, uçlarının koordinatları şu şekilde belirtilerek tanımlanır: HAT (X1, Y1, X2, Y2). "K" harfinin görüntüsü aşağıdaki gibi tarif edilecektir:

HAT (4,2,4,8)
SATIR (5,5,8,2)
SATIR (5,5,8,8)

Bağımsız çalışma için görevler.

# 1. Ekran çözünürlüğünün 640 * 350 piksel ve kullanılan renk sayısının 16 olduğu varsayıldığında, bir görüntünün iki sayfasını depolamak için ne kadar video belleği gerekir?

2. Video belleği miktarı 1 MB'dir. Ekran çözünürlüğü - 800 * 600. Video belleği iki sayfaya bölünmüşse kullanılabilecek maksimum renk sayısı nedir?

Numara 3. Bit derinliği 24'tür. Açık gri ve koyu gri tonlarının ikili gösterimi için çeşitli seçenekleri tanımlayın.

4 numara. Bilgisayar ekranında 1024 gri tonu elde etmeniz gerekiyor. Bit derinliği ne olmalıdır?

Numara 5. Posta kodu standardındaki ondalık basamakların gösterimi için (zarflarda söyledikleri gibi), bir vektör ve raster gösterimi alın. Raster ızgarasının boyutunu kendiniz seçin.

6. Vektör komutlarını kullanarak çizimleri kağıt üzerinde çoğaltın. Çözünürlük 64 * 48.

A)
Çizim rengi Kırmızı
Dolgu Rengi Sarı
Çevre 16, 10, 2
16, 10, Kırmızı üzeri boya
16, 12'yi ayarla
16, 23'e kadar satır
19, 29'a kadar satır
21, 29'a kadar satır
Satır 16, 23, 13, 29
Satır 13, 29, 11, 29
Satır 16, 16, 11, 12
Satır 16, 16, 21, 12

B)
Çizim rengi Kırmızı
Dolgu rengi Kırmızı
Çevre 20, 10, 5
Çevre 20, 10, 10
25, 15, Kırmızı üzeri boya
Çevre 20, 30, 5
Çevre 20, 30, 10
28, 32, Kırmızı üzeri boya

Konu 9. Görüntülerin dijital sunumu (2 saat).
Bilginin elde edilmesi, işlenmesi, depolanması ve iletilmesi ile ilgili birçok teknoloji dalı, büyük ölçüde, bilginin görüntü karakterine sahip olduğu sistemlerin gelişimi tarafından yönlendirilir. İki boyutlu bir sinyal olarak kabul edilebilecek bir görüntü, geleneksel tek boyutlu (zamansal) bir sinyale göre çok daha geniş bir bilgi taşıyıcısıdır. Aynı zamanda, görsel verilerle çalışırken bilimsel ve mühendislik problemlerini çözmek, belirli yöntemler bilgisine dayalı özel çabalar gerektirir, çünkü tek boyutlu sinyal ve sistemlerin geleneksel ideolojisi bu durumlarda pek uygun değildir. Bu, özellikle bilim ve teknolojide şimdiye kadar çözülmemiş ve şimdi görsel nitelikteki bilgilerin kullanımıyla çözülmekte olan sorunları çözen yeni bilgi sistemleri türleri oluşturulurken kendini gösterir.

Bu bağlamda, görüntü işleme ilkelerini incelemeyi amaçlayan üniversite programlarında disiplinler ortaya çıkmaktadır, ayrıca esneklikleri için çekici olan dijital yöntemlere öncelik verilmektedir. Eğitim literatürünün olmaması, yazarları kılavuzu yazmaya iten bu çalışmanın önündeki güçlü bir engeldir. Sınırlı hacmin, dijital görüntü işleme sorununun birçok önemli yönünü kapsamaya izin vermediğine dikkat edilmelidir. BSUIR'de dijital görüntü işleme üzerine bir kurs okuyan kılavuzun yazarları, belirli bölümlerin önemi hakkındaki fikirlerinden yola çıktılar ve ayrıca uzun yıllara dayanan araştırma ve pedagojik deneyime güvendiler.

^ 9.1. Görüntü türleri

Dijital görüntü, dikdörtgen bir nokta tablosu veya içinde bulunan görüntü öğeleridir. Tçizgiler ve NS sütunlar. İfade T NS NS aranan çözüm görüntü (bazen bu terim, birim görüntü uzunluğu başına piksel sayısını belirtmek için kullanılır). Görüntü noktaları denir piksel(görüntünün faks veya video ile iletildiği durumlar hariç; bu durumlarda nokta denir Şarkı söyleme). Grafik görüntüleri sıkıştırmak amacıyla aşağıdaki görüntü türlerini ayırt etmek uygundur:

1. iki katmanlı(veya tek renkli) görüntü. Bu durumda, tüm pikseller, genellikle siyah (ikili bir veya temel renk) ve beyaz (ikili sıfır veya arka plan rengi) olarak adlandırılan yalnızca iki değere sahip olabilir. Böyle bir görüntünün her pikseli bir bit ile temsil edilir, bu yüzden bu en basit görüntü türüdür.

2. Yarım ton görüntü. Böyle bir görüntünün her pikseli 0'dan 0'a kadar değerlere sahip olabilir.
birini belirtmek 2 NS gri (veya diğer) rengin tonları. Sayı NS genellikle bir bayt boyutuyla karşılaştırılabilir, yani 4, 8, 12, 16, 24 veya 4 veya 8'in başka bir katıdır. Tüm piksellerin en anlamlı bitleri, görüntünün en önemli bit düzlemini veya katmanını oluşturur. . Böylece, düzey ölçeğine sahip gri tonlamalı bir görüntü şunlardan oluşur: NS bit katmanları.

3. ^ Renkli görüntü. Rengi ayarlamak için birkaç yöntem vardır, ancak her biri üç parametre içerir. Sonuç olarak, bir renk pikseli üç bölümden oluşur. Tipik olarak, bir renk pikseli üç bayttan oluşur. Tipik renk modelleri RGB, HLS ve CMYK'dir.

4. Görüntü sürekli bir tonda. Bu görüntü türü birçok benzer renge (veya yarı tonlara) sahip olabilir. Komşu pikseller yalnızca bir farklılık gösterdiğinde, gözün renklerini ayırt etmesi neredeyse imkansızdır. Sonuç olarak, bu tür görüntüler, rengin göze sürekli değiştiğini gösteren alanlar içerebilir. Bu durumda, piksel ya büyük bir sayı (gri tonlamalı bir durumda) ya da üç bileşen (renkli bir görüntü durumunda) ile temsil edilir. Sürekli tonlu görüntüler doğal veya doğaldır (insan yapımı, yapayın aksine); genellikle dijital fotoğraf makinesi ile fotoğraf çekilerek veya fotoğraf veya çizim taranarak elde edilirler.

5. ayrık ton görüntü (aynı zamanda sentetik olarak da adlandırılır). Genellikle bu görüntü yapay olarak elde edilir. Yalnızca birkaç renge veya birçok renge sahip olabilir, ancak doğal bir görüntünün gürültüsü ve kusurlarına sahip değildir. Bu tür görüntülere örnek olarak insan yapımı nesnelerin, makinelerin veya mekanizmaların fotoğrafları, metin sayfaları, haritalar, çizimler veya bir bilgisayar ekranındaki görüntüler verilebilir. (Her yapay görüntü ayrı tonlu olmayabilir. Doğal görünmesi gereken bilgisayar tarafından oluşturulmuş bir görüntü, yapay kökenine rağmen sürekli tonlara sahip olacaktır.) Yapay nesnelerin, metinlerin, çizilmiş çizgilerin bir şekli, sınırları iyi belirlenmiş. Görüntünün geri kalanıyla (arka plan) güçlü bir kontrast oluştururlar. Ayrık tonlu bir görüntünün bitişik pikselleri genellikle tektir veya büyük ölçüde değişir. Bu tür görüntüler, veri kaybı olan yöntemlerle zayıf bir şekilde sıkıştırılır, çünkü mektubun sadece birkaç pikselinin bozulması onu okunaksız kılar, olağan stili tamamen ayırt edilemez hale getirir. Sürekli tonlu görüntüler için sıkıştırma teknikleri, özel sıkıştırma tekniklerinin geliştirilmesi gereken ayrık tonlu görüntülerin keskin kenarlarını işlemez. Ayrık tonlu görüntülerin genellikle çok fazla fazlalık taşıdığına dikkat edin. Parçalarının çoğu, görüntünün farklı yerlerinde birçok kez tekrarlanır.

6. Görüntüler, çizgi film gibi. Bunlar, aynı rengin geniş alanlarına sahip renkli görüntülerdir. Bu durumda, temas eden alanların rengi büyük ölçüde değişebilir. Bu özellik daha iyi sıkıştırma elde etmek için kullanılabilir.

Sezgisel olarak, her görüntü türünün belirli bir miktarda fazlalığı olduğu, ancak hepsinin farklı şekillerde gereksiz olduğu açıkça ortaya çıkıyor. Bu nedenle, herhangi bir görüntü türünü eşit derecede iyi sıkıştıran bir yöntem oluşturmak zordur. İki seviyeli görüntüleri, sürekli tonlu ve ayrı tonlu görüntüleri sıkıştırmak için ayrı yöntemler vardır. Bir görüntüyü sürekli tonlu ve ayrık tonlu parçalara bölmeye ve bunları ayrı ayrı sıkıştırmaya çalışan yöntemler de vardır.
^ 9.2. Sürekli görüntüleri örnekleme

Çok nadiren, bilgi sistemlerinde elde edilen görüntüler dijitaldir. Bu nedenle, dijital işleme, iletim, depolama kullanılması gerekiyorsa, bu forma dönüştürülmesi zorunlu bir işlemdir. Tek boyutlu sinyallerde olduğu gibi, bu dönüşüm iki prosedürü içerir. Birincisi, sürekli bir çerçevenin ayrı bir çerçeveyle değiştirilmesinden oluşur ve genellikle denir. örnekleme, ve ikincisi, sürekli bir parlaklık değerleri kümesini bir dizi nicelenmiş değerle değiştirir ve denir nicemleme. Dijital bir gösterimle, nicelenmiş parlaklık değerlerinin her birine, bir görüntüyü bilgisayara girmeyi mümkün kılan ikili bir sayı atanır.

Geleneksel sinyallere kıyasla görüntünün iki boyutlu doğası, alınan dijital veri miktarını azaltmak için dijital gösterimi optimize etmek için ek olanaklar içerir. Bu bağlamda, nicemleme seviyelerinin en iyi yerleşimi, çeşitli rasterlerin kullanımı ve bu sorunun diğer yönleri incelenmiştir. Bununla birlikte, vakaların ezici çoğunluğunda, pratikte dikdörtgen raster ve tek tip parlaklık niceleme kullanımına dayalı örneklemenin kullanıldığı söylenmelidir. Bunun nedeni, ilgili işlemleri gerçekleştirmenin basitliği ve optimal dönüşümleri kullanmanın nispeten küçük faydalarıdır. Son formda dikdörtgen raster kullanıldığında, dijital görüntü genellikle satırları ve sütunları görüntünün satırlarına ve sütunlarına karşılık gelen bir matristir.

Kesintisiz bir görüntüyü ayrı bir görüntüyle değiştirmek çeşitli şekillerde yapılabilir. Örneğin, herhangi bir ortogonal fonksiyon sistemi seçmek ve bu sisteme göre (bu temele göre) görüntü temsilinin 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ık temsillerinin oluşturulmasını mümkün kılar. Bununla birlikte, en yaygın olanı periyodik örnekleme, özellikle yukarıda belirtildiği gibi dikdörtgen bir raster ile örneklemedir. Bu örnekleme yöntemi, elemanları olarak kaydırılmış β-fonksiyonlarını kullanan ortogonal temeli kullanma seçeneklerinden biri olarak düşünülebilir. Ayrıca, genel olarak, dikdörtgen örneklemenin ana özelliklerini ayrıntılı olarak ele alacağız.

Sürekli bir görüntü ve dikdörtgen örnekleme ile sürekli bir görüntüden 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ı nerede. Pirinç. 9.1, dikdörtgen örnekleme için bir düzlemde örneklerin düzenlenmesini gösterir.

Sürekli bir görüntüyü ayrı bir görüntüyle değiştirirken ortaya çıkan ana soru, böyle bir değiştirmenin tamamlandığı koşulları belirlemektir, yani. sürekli sinyalde bulunan bilgi kaybı eşlik etmez. Kesintili bir sinyalle sürekli bir sinyali geri yüklemek mümkünse, kayıp yoktur. Matematiksel bir bakış açısından, soru, bu nedenle, değerlerinin bilindiği düğümler arasında iki boyutlu aralıklarla veya başka bir deyişle iki boyutlu enterpolasyonun uygulanmasında sürekli bir sinyali geri yüklemektir. Bu soru, sürekli ve ayrık görüntülerin spektral özelliklerini analiz ederek cevaplanabilir.

2D sürekli frekans spektrumu sürekli sinyal, iki boyutlu doğrudan Fourier dönüşümü ile belirlenir:

Bu, iki boyutlu ters sürekli Fourier dönüşümüne karşılık gelir:

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 (9.1) dikkate alınarak bağıntı (9.3) şu şekilde yazılabilir:

Kısaca, iki boyutlu frekans alanında dikdörtgen bir bölümle ifade ediyoruz.

(1.4)'teki integralin tüm frekans alanı üzerinden hesaplanması, tek tek bölümler üzerinden integral alma ve sonuçların toplanmasıyla değiştirilebilir:

Kurala göre değişkenleri değiştirerek, entegrasyon bölgesinin sayılardan bağımsızlığını elde ederiz ve:

Burada dikkate alınır herhangi bir tamsayı değeri için ve. Bu ifade form olarak 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 değişkenleri buna göre değiştiriyoruz. Sonuç olarak şunları elde ederiz:

(9.5)

Şimdi ifade (5), ters Fourier dönüşümünün biçimine sahiptir, dolayısıyla integral işaretinin altındaki fonksiyon

(9.6)

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

(9.7)

(9.7)'den, ayrık bir görüntünün iki boyutlu spektrumunun, sırasıyla ve frekans eksenleri boyunca ve periyotlarla birlikte dikdörtgen periyodik olduğunu takip eder. Ayrık bir görüntünün spektrumu, sürekli bir görüntünün sonsuz sayıda spektrumunun toplamının bir sonucu olarak oluşur, frekans kaymalarında birbirinden farklıdır ve. Şekil 9.2, sürekli (Şekil 9.2.a) ve ayrık (Şekil 9.2.b) görüntülerin iki boyutlu spektrumları arasındaki ilişkiyi niteliksel olarak göstermektedir.






a)

B)

Pirinç. 9.2. Sürekli ve ayrık görüntülerin frekans spektrumları

Toplamı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ıfır frekans civarında iki boyutlu bir bölgede sürekli bir görüntünün spektrumunun sıfırdan farklı olduğunu, yani iki boyutlu sonlu bir fonksiyonla tanımlandığını varsayalım. Bu durumda, örnekleme aralıkları şu şekilde seçilirse, NS , , o zaman toplamın (9.7) oluşumu sırasında bireysel dalların örtüşmesi gerçekleşmeyecektir. Bu nedenle, her dikdörtgen bölüm içinde yalnızca bir terim sıfırdan farklı olacaktır. için özellikle sahibiz:

NS
, . (9.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ık görüntünün spektrumu, sürekli görüntünün spektrumu hakkında tam bilgi içerir. Bu çakışmanın yalnızca başarılı bir örnekleme aralığı seçimi ile belirlenen şartlı koşullar altında gerçekleştiğini vurguluyoruz. (9.8)'e göre bu koşulların yerine getirilmesinin, gereksinimleri karşılaması gereken örnekleme aralıklarının yeterince küçük değerlerinde elde edildiğini unutmayın:

, , (9.9)

İki boyutlu spektrumun kesme frekansları nerede.

İlişki (9.8), ayrı bir görüntüden sürekli bir görüntü elde etmek için bir yöntemi tanımlar. Bunu yapmak için, frekans yanıtlı düşük geçişli bir filtre ile ayrık bir görüntünün iki boyutlu filtrelemesini yapmak yeterlidir.

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

Böylece, sürekli bir görüntünün ideal bir interpolasyon rekonstrüksiyonu, dikdörtgen frekans yanıtlı (9.10) iki boyutlu bir filtre kullanılarak gerçekleştirilir. Sürekli bir görüntüyü geri yüklemek için algoritmayı açıkça yazmak zor değildir. (9.10)'nin ters Fourier dönüşümü kullanılarak kolayca elde edilebilen yeniden yapılandırma filtresinin iki boyutlu dürtü yanıtı şu şekildedir:

.

Filtre ürünü, giriş görüntüsünün 2B evrişimi ve belirli bir dürtü yanıtı kullanılarak belirlenebilir. Girdi görüntüsünü iki boyutlu bir işlev dizisi olarak temsil ederek

Evrişimi gerçekleştirdikten sonra şunu buluruz:

(9.11)

Ortaya çıkan ilişki, iki boyutlu örneklerinin bilinen bir dizisinden sürekli bir görüntünün doğru enterpolasyon yeniden yapılandırması için bir yöntemi gösterir. Bu ifadeye göre, interpolasyon fonksiyonlarının rolünde doğru yeniden yapılandırma için formun iki boyutlu fonksiyonları kullanılmalıdır. İlişki (9.11), Kotelnikov-Nyquist teoreminin iki boyutlu bir versiyonudur.

Sinyalin iki boyutlu spektrumu sonlu ve örnekleme aralıkları yeterince küçükse bu sonuçların geçerli olduğunu tekrar vurgulayalım. 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 nedenlerden biri görüntünün sınırlı boyutudur. Bu nedenle, (9.7)'de toplanırken, komşu spektral bantlardan gelen terimlerin etkisi, bantların her birinde kendini gösterir. Bu durumda, sürekli bir görüntünün doğru şekilde yeniden yapılandırılması genellikle imkansız hale gelir. Özellikle, dikdörtgen bir filtrenin kullanılması, doğru bir yeniden yapılandırmaya yol açmaz.

Örnekler arasındaki aralıklarda optimal görüntü rekonstrüksiyonunun bir özelliği, prosedür (9.11) tarafından belirtildiği gibi, ayrı bir görüntünün tüm örneklerinin kullanılmasıdır. Bu her zaman uygun değildir; az sayıda mevcut ayrık değere dayanarak yerel alanda sinyali yeniden yapılandırmak genellikle gereklidir. Bu durumlarda, çeşitli enterpolasyon işlevleri kullanılarak yarı-optimal kurtarma uygulanması tavsiye edilir. Bu tür bir problem, örneğin, iki görüntüyü birbirine bağlama problemini çözerken, bu görüntülerin geometrik uyumsuzluğu nedeniyle, bunlardan birinin mevcut okumaları, görüntünün düğümleri arasındaki aralıklarda bulunan bazı noktalara karşılık gelebildiğinde ortaya çıkar. başka. Bu sorunun çözümü, bu kılavuzun sonraki bölümlerinde daha ayrıntılı olarak tartışılmaktadır.






a)

B)





v)

G)

Pirinç. 9.3. Örnekleme aralığının "Parmak İzi" görüntüsünün restorasyonu üzerindeki etkisi

Pirinç. 9.3, örnekleme aralıklarının görüntü rekonstrüksiyonu üzerindeki etkisini gösterir. Bir parmak izi olan orijinal görüntü, Şekil 2'de gösterilmektedir. 9.3.a ve normalleştirilmiş spektrumunun bölümlerinden biri Şekil 1'de gösterilmektedir. 9.3.b. Bu görüntü ayrıdır ve değer, kesme frekansı olarak kullanılır. ... Şekilden aşağıdaki gibi. 9.3.b, bu frekanstaki spektrumun değeri ihmal edilebilir, bu da yüksek kaliteli yeniden yapılandırmayı garanti eder. Nitekim, Şekil 1'de gözlemlenmiştir. 9.3.bir 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 bir yazıcı tarafından oynanır. Bu anlamda, Şekil. 9.3.a sürekli olarak kabul edilebilir.

Pirinç. 9.3.c, d, yanlış örnekleme aralığı seçiminin sonuçlarını gösterir. Elde edildiğinde, Şekil 2'de “sürekli” görüntü ayrıklaştırması yapıldı. 9.3.а numunelerini incelterek. Pirinç. 3c, her koordinat için örnekleme adımındaki üç artışa karşılık gelir ve Şekil 3c. 9.3.d - dört kez. Bu, kesme frekanslarının değerleri aynı sayıda daha düşük olsaydı kabul edilebilirdi. Aslında, Şekil 9.3.b'den görülebileceği gibi, özellikle numuneler dört kez inceltildiğinde kaba olmak üzere gereksinimlerin (9.9) ihlali söz konusudur. Bu nedenle, algoritma (9.11) kullanılarak yeniden oluşturulan görüntüler yalnızca odaktan çıkmakla kalmaz, aynı zamanda baskının dokusunu da büyük ölçüde bozar.





a)

B)





v)

G)

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

İncirde. 9.4, portre tipi bir görüntü için elde edilen benzer bir dizi sonucu gösterir. Daha güçlü incelmenin sonuçları (Şekil 9.4.c'de dört kez ve Şekil 9.4.d'de altı kez) esas olarak tanım kaybında kendini gösterir. Öznel olarak, kalite kayıpları Şekil 2'dekinden daha az önemli görünmektedir. 9.3. Bu, parmak izi görüntüsünden önemli ölçüde daha küçük spektrum genişliği ile açıklanmaktadır. Orijinal görüntünün örneklenmesi, kesme frekansına karşılık gelir ... Olarak Şekil l'de görülebilir. 9.4.b, bu değer gerçek değerden çok daha yüksektir. Bu nedenle, Şekil 2'de gösterilen örnekleme aralığında bir artış. 3.c, d, resmi kötüleştirse de yine de önceki örnekteki gibi yıkıcı sonuçlara yol açmaz.
^ 9.3. Görüntüleri niceleme

Dijital görüntü işlemede, sürekli dinamik parlaklık değerleri aralığı, bir dizi ayrık seviyeye bölünür. Bu işleme kuantizasyon denir. Kuantizör, sürekli bir değişkeni, sonlu bir değerler kümesini alan ayrı bir değişkene dönüştürür. Bu değerlere nicemleme seviyeleri denir. Genel olarak, dönüşüm bir adım fonksiyonu ile ifade edilir (Şekil 9.5). Görüntü referansının parlaklığı aralığa aitse (yani, ne zaman ), daha sonra orijinal numune, niceleme seviyesi ile değiştirilir; - niceleme eşikleri. Dinamik parlaklık değerleri aralığının sınırlı ve eşit olduğu varsayılmaktadır.


Pirinç. 9.5 Nicelemeyi Tanımlayan Fonksiyon
Bir niceleyici oluşturma görevi, eşiklerin ve seviyelerin değerlerini belirlemektir. Bu sorunu çözmenin en basit yolu, dinamik aralığı eşit aralıklara bölmektir. Ancak, bu en iyi çözüm değildir. Görüntü örneklerinin çoğunun parlaklık değerleri, örneğin "karanlık" alanda gruplandırılmışsa ve düzey sayısı sınırlıysa, eşit olmayan şekilde niceleme yapılması önerilir. "Karanlık" alanda, daha sık ve "aydınlık" alanda daha az sıklıkta niceleme yapmalısınız. Bu, niceleme hatasını azaltacaktır.

Böylece, bir niceleyici oluşturma problemi, optimal değerleri bulma ve bazı optimizasyon kriterlerini karşılama problemi olarak formüle edilebilir. Genellikle, sabit sayıda seviye için, niceleyici minimum ortalama kare hatası kriterine göre optimize edilir.

, (9.12)

Parlaklığın bilinen bir olasılık yoğunluğuna sahip rastgele bir değişken olduğu varsayımı altında.

Ortalama kare niceleme hatası (9.12)

. (9.13)

Değişkenlere göre (9.13) türev alarak ve türevleri sıfıra eşitleyerek, doğrusal olmayan denklemler elde ederiz.

.

Aşırı eşiklerin ve dinamik parlaklık aralığı tarafından belirlendiğine dikkat edilmelidir. Denklemler (9.14) kolayca forma indirgenebilir

.

(9.15)'ten, eşiklerin iki bitişik seviye ve arasında ortada yer alması gerektiği sonucu çıkar. Bu denklemlerin çözümü yinelemeli bir şekilde bulunabilir. Ölçütü (9.12) karşılayan optimal niceleyici, Lloyd-Max niceleyici olarak adlandırılır ve böyle bir niceleyici için kök-ortalama-kare hatası şöyledir:

(9.16)

Düzgün bir parlaklık dağılımı ile doğrusal olmayan denklemler (9.15) şu şekilde temsil edilebilir:

,

Ve kök ortalama kare hatası
.

Dijital görüntü işleme sistemlerinde, seviyelerin ve niceleme eşiklerinin sayısını azaltma eğilimindedirler, çünkü bilgisayardaki nicelenmiş örnekleri temsil eden ikili kod kelimesinin uzunluğu, sayılarına bağlıdır. Bununla birlikte, nispeten az sayıda seviye ile, nicelenmiş görüntüde yanlış konturlar belirir. Kuantize görüntünün parlaklığındaki ani bir değişikliğin bir sonucu olarak ortaya çıkarlar (Şekil 9.6) ve özellikle değişimin hassas alanlarında fark edilirler.

Yanlış konturlar, bir görüntünün görsel kalitesini önemli ölçüde düşürür. insan görüşü özellikle dış hatlara duyarlıdır. Tek tip niceleme ile tipik görüntüler en az 64 seviye gerektirir. İncirde. 9.7 .a ve 9.7.b, sırasıyla 256 ve 14 nicemleme seviyelerinde "Portre" görüntüsünün tek tip niceleme sonuçlarını gösterir.

Pirinç. 9.6. Sahte konturların ortaya çıkma mekanizmasına

Görüntünün karanlık alanlarında yanlış ana hatlar görülüyor. Lloyd-Max niceleyicinin kullanılması, seviyelerini önemli ölçüde azaltabilir (Quantizasyon seviyelerinin sayısının da 14 olduğu Şekil 9.8). İncirde. 9.9, 256 niceleme seviyesindeki "Portre" görüntü parlaklığının histogramını gösterir ve eşiklerde işaretlenir. Şekilden, örneklerin parlaklık değerlerinin gruplandırıldığı dinamik aralığın bölgelerinin daha sık nicelleştirildiği anlaşılmaktadır.

Standart bir ADC ile yapılamayan eşit olmayan nicelemeyi önlemek için doğrusal olmayan dönüşümler kullanılır (Şekil 9.10). Orijinal görüntünün örneği, dönüştürülmüş örneklerin olasılık dağılım yoğunluğunun tek tip olması için doğrusal olmayan bir dönüşüme tabi tutulur, yani. EQ gerçekleştirilir. Daha sonra numuneler tek tip bir adımla nicelenir ve ters doğrusal olmayan bir dönüşüme tabi tutulur.



Şekil 9.10. Ön doğrusal olmayan dönüşüm ile niceleme
Yanlış konturları yok etmek için Roberts, düzgün nicemlemeden önce parlaklık örneklerine tek tip olasılık yoğunluğuna sahip gürültü eklemeyi önerdi. Eklenen gürültü, görüntünün bazı örneklerini bir seviye yukarı, diğerlerini bir seviye aşağı getirir. Bu, sahte konturları yok eder. Eklenen gürültünün varyansı, görüntüde "kar" olarak algılanan bozulmalara yol açmayacak ve aynı zamanda yanlış konturları yok edecek kadar küçük olmalıdır. Genellikle, aralıkta düzgün dağılmış gürültü kullanılır ... Ön gürültü ilavesiyle "Portre" görüntüsünün 14 ve 8 seviyelerinde tek tip nicelemenin sonuçları Şekil 9.11.a ve 9.11.b'de gösterilmektedir. 8 niceleme seviyesinde, eklenen gürültü çok fark edilir hale gelir, ancak yanlış konturlar neredeyse tamamen yok edilir.

Basım endüstrisinde başka bir niceleme yöntemi kullanılmaktadır. Bu, gri tonlamalı görüntülerden raster ikili (2 seviyeli) görüntüler üretme yöntemidir. Yazdırırken (örneğin gazeteler veya dergiler), görüntü beyaz ve siyah noktalardan oluşur. Bunu yapmak için, orijinal görüntünün tamamı uzamsal koordinatlarla aynı kare bloklara bölünür. Genellikle bir blok öğeler içerir. Boyutları bloğun boyutlarına eşit olan, bozucu sinyalin matrisinden karşılık gelen koordinatlara sahip bir sayı, bloğun her örneğine eklenir. Örneğin, rahatsız edici sinyalin matrisi olarak sayılar kullanılır:

.

Bu işlem tüm bloklar için tekrarlanır. Ortaya çıkan görüntü iki seviyeye kuantize edilir. İncirde. 9.12.а, rahatsız edici bir sinyal eklenmiş gri tonlamalı bir görüntü "Portre" gösterir. İncirde. 9.12.b, c, "Portre" görüntüsünün eklenen rahatsız edici sinyalle (Fig.9.13.b) ve onsuz (Fig.9.13.c) ikili nicemleme sonuçlarını gösterir.






B)

v)

Şekil 9.12 Görüntüleri Rasterleştirme

İkili bit eşlem, normal bir ikili görüntüden önemli ölçüde daha iyi bir görsel deneyim sağlar. Rasterleştirme sırasında gri skalanın iletimi, siyah bir arka plan üzerinde gözlenen beyaz noktanın geometrik boyutlarındaki değişiklik nedeniyle elde edilir. Bir blokta “hafif” örnekler gruplanırsa, beyaz noktanın geometrik boyutları maksimumdur ve bloğun boyutuna eşittir. Parlaklığın azalmasıyla geometrik boyutları da azalır. İnsan gözü, gri tonlamalı bir görüntüyü izleme yanılsaması yaratarak yerel ortalamayı gerçekleştirir. Tarama, özellikle tek bir noktanın gözle zar zor görülebildiği yüksek çözünürlüklü görüntüler yazdırırken etkilidir.

^ 9.4 Görüntü hazırlama

Diseksiyon, görüntülerin eleman-eleman dönüşümlerinin bütün bir sınıfıdır. Uygulamada kullanılan hazırlama prosedürlerinin özellikleri Şekil 9.13'te gösterilmiştir. Bazılarının açıklaması üzerinde duralım.

Eşik karakteristikli dönüşüm (Şekil9.13.a), tüm parlaklık seviyelerini içeren gri tonlamalı bir görüntüyü ikili, noktalara dönüştürür

Hangi parlaklık veya. Bazen ikilileştirme veya ikili niceleme olarak adlandırılan böyle bir işlem, görüntüde bulunan nesnelerin ana hatları gözlemci için önemli olduğunda faydalı olabilir.

Ve nesneler içinde veya arka planda yer alan ayrıntılar ilgi çekici değildir. Bu tür bir işlemi gerçekleştirmedeki ana sorun, orijinal görüntünün parlaklığının her noktada çıktı görüntüsünün değerini belirlemenize izin verdiği karşılaştırma olan eşiği belirlemektir. Görüntünün matematiksel açıklaması için en haklı olanı, olasılık teorisinin, rastgele süreçlerin ve rastgele alanların uygulanmasıdır. Bu durumda, ikili niceleme için optimal eşiğin belirlenmesi istatistiksel bir problemdir. Görüntü noktalarının ikili segmentasyon olarak adlandırılan iki sınıfa bölünmesi sorununun çözülmesi de dahil olmak üzere, aşağıdaki bölümlerde görüntü işlemeye yönelik istatistiksel yaklaşıma büyük önem verilmektedir. Burada kendimizi belirli, ancak pratik olarak önemli bir vakayı tartışmakla sınırlıyoruz. Bazen işleme sırasında gri tonlamalı olarak depolanan görüntülerle uğraşmak gerekir, ancak içerikleri ikili olanlardan çok az farklıdır.








a)

B)

v)







G)

e)

e)







G)

H)

ve)



NS)

Pirinç. 9.13 Hazırlama sırasında kullanılan dönüşüm örnekleri



Pirinç. 9.14. İkili niceleme eşiğinin seçimine

Bunlar, bir örneği Şekil 9.15.a'da gösterilen metin, çizgi sanatı, çizimler, bir parmak izi görüntüsünü içerir. Böyle bir görüntünün parlaklık dağılımını tanımlayan olasılık yoğunluğu, iyi ayrılmış iki tepe noktası içerebilir. İkili niceleme eşiğinin, Şekil 9.14'te gösterildiği gibi, bu tepe noktaları arasındaki düşüşün ortasında seçilmesi gerektiği sezgisel olarak açıktır. Orijinal noktalı resim görüntüsünü değiştirme ikili ilaç iki ana görevi çözer. İlk olarak, görsel algı ile orijinal görüntüden daha fazla netlik sağlanır. İkinci olarak, bir ikili görüntünün her bir noktasını kaydetmek için ikili bir hazırlık sadece 1 bit bellek gerektirdiğinden, görüntüyü depolamak için bellek miktarı gözle görülür şekilde azaltılırken, aynı sorunu en yaygın kullanılan temsil biçimiyle çözmek için gri tonlamalı bir görüntü gerektirir 8 bit. Parmak izi görüntüsünün ikilileştirilmesine bir örnek Şekil 9.15.b'de gösterilmektedir.

Şekil 2'de gösterilen diğer dönüşümlerin anlamı. 9.13, özelliklerini dikkate alarak anlamak zor değildir. Örneğin, şekil değiştirin. 9.13.b, parlaklığın seçilen aralığa karşılık geldiği kısımlarını vurgulayarak görüntünün şiddetli bir dilimini gerçekleştirir. Bu durumda, kalan alanlar tamamen “boşlaştırılır” (siyah seviyesine karşılık gelen bir parlaklığa sahiptir). Seçilen aralığı parlaklık ölçeği boyunca hareket ettirerek ve genişliğini değiştirerek resmin içeriğini detaylı olarak inceleyebilirsiniz.






Şekil 9.15. Görüntü ikilileştirme örneği

Şekil 9.13.g'de gösterilen dönüşüm ayrıca seçilen parlaklık aralığında gözlemlenen resmin ayrıntısını artırmanıza olanak tanır, ancak öncekinden farklı olarak burada çıktı görüntüsü tam dinamik aralığı kullanır. Esasen, bu dönüşüm, uygulanan doğrusal bir kontrasttır. seçilen aralık giriş resmi. Önceki sürümde olduğu gibi, bu aralığın dışındaki alanlar, hazırlıktan sonra siyah bir arka plan oluşturur.

Bazen görüntünün netliği, testere dişi kontrastı gibi bir dönüşüm uygulanarak artırılır. Bu durumda, farklı parlaklık aralıkları aynı anda yerel parlaklık kontrastına tabi tutulur. Bununla birlikte, bu dönüşüme, diğerleri gibi, ortaya çıkan müstahzar üzerinde yanlış konturların ortaya çıkması eşlik edebileceği akılda tutulmalıdır.

Benzer şekilde, Şekil 9.13'te gösterilen hazırlık prosedürlerinin geri kalanını niteliksel olarak düşünebilirsiniz.

İncirde. Şekil 9.16, bir arazi arsasının hava fotoğrafına eşikleme tipi (Şekil 9.16.b) ve testere dişi kontrastının (Şekil 9.16.c) dönüşümlerinin uygulandığı bir deneyin sonuçlarını göstermektedir (Şekil 9.16.a) . Birincisi, gözlemlenen sahnenin genel bir bütünleyici fikrini yaratarak, bireysel alanların sınırlarının belirlenmesine yol açar. İkincisi, aksine, görüntünün tüm alanlarında küçük ayrıntıların gözlemlenmesini mümkün kılar. Bu iki olasılığın bir kombinasyonu gözlemci için faydalı olabilir.






a)

B)



v)

Pirinç. 9.16. Görüntü hazırlama örnekleri

Sonuç olarak, hazırlığın genellikle otomatik sistemlerde görsel bilgilerin işlenmesi için kullanıldığını not ediyoruz, çünkü bu durumda hazırlanan hazırlık sonraki (ikincil) işleme için gerekli tüm bilgileri içerebilir. Örneğin uzaydan gözlem yaparken görüntüde bilinen bir konfigürasyona sahip bir cismi otomatik olarak algılamak gerekiyorsa, bu konfigürasyonu ileten ikili bir hazırlık bunun için yeterli olabilir.

Dijital bir fotoğraf veya başka bir raster görüntü, iki boyutlu bir düzlemde parlaklık seviyesi sensörleri tarafından yakalanan bir dizi sayıdır. Matematiksel bir bakış açısıyla, ince bir lensin odak düzlemlerine yerleştirilmiş görüntülerin Fourier dönüşümünü gerçekleştirdiğini bilerek, klasik bir optik sistemin görüntü işlemesine 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 2D Fourier Dönüşümü
  2. Z ′ = T (Z) - görüntünün Fourier dönüşümüne bir fonksiyon veya şeffaflık uygulaması
  3. Y = BFT (Z ′) - ters 2D Fourier dönüşümü
Fourier dönüşümlerini hesaplamak için hızlı ayrık Fourier dönüşümü algoritmaları kullanılır. Optik lens sistemi, argümanın sürekli aralığında ve sürekli spektrum için Fourier dönüşümünü gerçekleştirmesine rağmen, dijital veri işlemeye geçerken 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, açık kaynaklı FFTTools kitaplığının bir parçasıdır. İnternet adresi: github.com/dprotopopov/FFTTools

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

Optik sistemlerde, odak düzlemi diyaframı, ekranda basit bir açıklıktır. Işık akısının diyaframdan geçişi sonucunda, yüksek frekanslı dalgalar (daha kısa dalga boylarına sahip) engelden geçer ve düşük frekanslı dalgalar (daha uzun dalga boylarına sahip) ekran tarafından kesilir. Bu, elde edilen görüntünün keskinliğini artırır. Ekrandaki deliği ekrandaki bir engel ile değiştirirseniz, uzun dalga boylarındaki frekanslardan oluşacağı için sonuç bulanık bir görüntü olacaktır.

algoritma:

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

Görüntüyü keskinleştirmek için algoritma

Optik sistemlerde, odak düzlemi diyaframı, ekranda basit bir açıklıktır. Işık akısının diyaframdan geçişi sonucunda, yüksek frekanslı dalgalar (daha kısa dalga boylarına sahip) engelden geçer ve düşük frekanslı dalgalar (daha uzun dalga boylarına sahip) ekran tarafından kesilir. Bu, elde edilen 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. Dizi Hesapla Z = FT (X) - Doğrudan 2B Ayrık Fourier Dönüşümü
  4. L = Z (0,0) değerini koruyun - orijinal görüntünün piksellerinin ortalama parlaklığına karşılık gelir
  5. Z ′ = T (Z) dizisini hesaplayın; burada T, argüman matrisinin düşük frekanslara 6 karşılık gelen verilen dış bölgelerinde bulunan satırların ve sütunların sıfırlanmasıdır (yani, düşük frekanslara karşılık gelen Fourier genişleme katsayılarının sıfırlanması)
  6. Orijinal görüntünün piksellerinin ortalama parlaklığına karşılık gelen Z '(0,0) = L - değerini geri yükleyin
  7. Y = RFT (Z ′) Dizisini Hesapla - 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 Px / Py parlaklığına 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. Optik sistemin çıkışında elde edilen görüntünün boyutu, objektif ve göz merceğinin odak uzaklıkları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. Dizi Hesapla Z = FT (X) - Doğrudan 2B Ayrık Fourier Dönüşümü
  4. Z ′ = T (Z) dizisini hesaplayın, burada T, matrisin yüksek frekanslara karşılık gelen sıfır satır ve sütunlarını ekliyor veya nihai görüntünün gerekli boyutunu elde etmek için yüksek frekanslara karşılık gelen matrisin satır ve sütunlarını kaldırıyor.
  5. Y = RFT (Z ′) Dizisini Hesapla - 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 Px / Py parlaklığına normalleştirin
Kullanılan yazılım
  • Microsoft Visual Studio 2013 C# - programlama ortamı ve 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ı uygulayan C ++ kitaplığı

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

algoritma kodu

///

/// Dizinin iç bölgesini temizle /// /// değerler dizisi /// Dahili kör bölge boyutu private static void Blind (Karmaşık [,] veri, Boyut boyutu) (int n0 = data.GetLength (0); int n1 = data.GetLength (1); int n2 = data.GetLength (2); int s0 = Matematik. Max (0, (n0 - size.Height) / 2); int s1 = Math.Max ​​​​(0, (n1 - size.Width) / 2); int e0 = Math.Min ((n0 + size.Height) ) / 2, n0)); int e1 = Math.Min ((n1 + size.Width) / 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 /// /// Bulanık bit eşlem genel Bitmap Bulanıklığı (Bitmap bitmap) (kullanarak (var image = new Image (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 doubles = new double; Buffer.BlockCopy (image.Data, 0, doubles, 0, length * sizeof (double)); double power = Math.Sqrt (doubles.Average (x => x * x)); var input = yeni fftw_complexarray (doubles.Select (x => yeni Kompleks (x, 0)). Forward, fftw_flags.Etimate) .Execute (); Complex Complex = output.GetData_Complex (); var data = new Complex; var buffer = new double; GCHandle ComplexHandle = GCHandle.Alloc (complex, GCHandleType.Pinned); GCHandle dataHandle = GCHandle .Alloc (veri, GCHandleType.Pinned); IntPtr ComplexPtr = ComplexHandle.AddrOfPinnedObject (); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy (complexPtr, buffer, 0; buffer.Length), dataPtr, buffer.Length); Kör (veri, _blind erSize); Marshal.Copy (dataPtr, arabellek, 0, arabellek.Uzunluk); Marshal.Copy (arabellek, 0, kompleksPtr, arabellek.Uzunluk); karmaşıkHandle.Free (); dataHandle.Free(); input.SetData (karmaşık); fftw_plan.dft_3d (n0, n1, n2, giriş, çıkış, fftw_direction.Backward, fftw_flags.Tahmin) .Execute (); double dizi2 = output.GetData_Complex ().Seçin (x => x.Magnitude) .ToArray(); double power2 = Math.Sqrt (dizi2.Average (x => x * x)); çiftler = dizi2.Seç (x =>

Görüntüyü keskinleştirmek için algoritma

algoritma kodu

///

/// Dizinin dış bölgesini temizle /// /// değerler dizisi /// Harici kör bölge boyutu private static void Blind (Karmaşık [,] veri, Boyut boyutu) (int n0 = data.GetLength (0); int n1 = data.GetLength (1); int n2 = data.GetLength (2); int s0 = Matematik. Max (0, (n0 - size.Height) / 2); int s1 = Math.Max ​​​​(0, (n1 - size.Width) / 2); int e0 = Math.Min ((n0 + size.Height) ) / 2, n0); int e1 = Math.Min ((n1 + size.Width) / 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 keskin bitmap /// /// Keskinleştirilmiş bit eşlem public Bitmap Sharp (Bitmap bitmap) (kullanarak (var image = new Image (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 doubles = new double; Buffer.BlockCopy (image.Data, 0, doubles, 0, length * sizeof (double)); double power = Math.Sqrt (doubles.Average (x => x * x)); var input = yeni fftw_complexarray (doubles.Select (x => yeni Kompleks (x, 0)). Forward, fftw_flags.Etimate) .Execute (); Karmaşık karmaşık = output.GetData_Complex (); Karmaşık düzey = karmaşık; var veri = yeni Karmaşık; var arabellek = yeni çift; GCHandle kompleksiHandle = GCHandle.Alloc (karmaşık, GCHandleType.Pinned) ; GCHandle dataHandle = GCHandle.Alloc (veri, GCHandleType.Pinned); IntPtr ComplexPtr = ComplexHandle.AddrOfPinnedObject (); IntPtr dataPtr = dataHandle.AddrOfPinnedObject (); Marsthal.buffer.Marshal.Copy (buffer, buffer, 0, dataPtr) ng); Kör (veri, _blinderSize); Marshal.Copy (dataPtr, arabellek, 0, arabellek.Uzunluk); Marshal.Copy (arabellek, 0, kompleksPtr, arabellek.Uzunluk); karmaşıkHandle.Free (); dataHandle.Free(); karmaşık = seviye; input.SetData (karmaşık); fftw_plan.dft_3d (n0, n1, n2, giriş, çıkış, fftw_direction.Backward, fftw_flags.Tahmin) .Execute (); double dizi2 = output.GetData_Complex ().Seçin (x => x.Magnitude) .ToArray(); double power2 = Math.Sqrt (dizi2.Average (x => x * x)); doubles = dizi2.Select (x => x * güç / güç2) .ToArray (); Buffer.BlockCopy (çiftler, 0, görüntü.Data, 0, uzunluk * sizeof (çift)); image.Bitmap'i döndür; ))

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

algoritma kodu

///

/// Dizileri kopyala /// /// Giriş dizisi /// Çıkış dizisi private static void Kopya (Karmaşık [,] giriş, Karmaşık [,] çıkış) (int n0 = input.GetLength (0); int n1 = input.GetLength (1); int n2 = input.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 /// /// Yeniden boyutlandırılmış bit eşlem genel Bitmap Uzatma (Bitmap bitmap) (kullanarak (var image = new Image (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 doubles = new double; Buffer.BlockCopy (image.Data, 0, doubles, 0, length * sizeof (double)); double power = Math.Sqrt (doubles.Average (x => x * x)); var input = yeni fftw_complexarray (doubles.Select (x => yeni Kompleks (x, 0)). Forward, fftw_flags.Etimate) .Execute (); Karmaşık kompleks = output.GetData_Complex(); (var image2 = new Image) kullanılarak (_newSize)) (int uzunluk2 = image2.Data.Length; int m0 ​​​​= image2.Data.GetLength (0); int m1 = image2.Data.GetLength (1); int m2 = image2.Data.GetLength (2 ); var Complex2 = new Complex; var data = new Complex; var data2 = new Complex; var buffer = new double; GCHandle ComplexHandle = GCHandle.Alloc (complex, GCHandleType.Pinned); GCHandle dataHandle = GCHandle.Alloc (veri, GCHandleType .Pinned ); IntPtr ComplexPtr = ComplexHandle.AddrOfPinnedObject (); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy (complexPtr, buffer, 0, buffer.Length); Marshal.Copy (buffer, 0, dataLength); buffer ComplexHandle .Free (); dataHandle.Free (); Kopyalama (veri, veri2); arabellek = yeni çift; ComplexHandle = GCHandle.Alloc (complex2, GCHandleType.Pinned); dataHandle = GCHandle.Alloc (data2, GCHandleType.Pinned); ComplexPtr = ComplexHandle.AddrOfPinnedObject(); dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy (dataPtr, buffer, 0, buffer.Length); Marshal.Copy (buffer, 0, ComplexPtr, arabellek.Uzunluk); karmaşıkHandle.Free (); dataHandle.Free(); var input2 = new fftw_complexarray (karmaşık2); var output2 = new fftw_complexarray (uzunluk2); fftw_plan.dft_3d (m0, m1, m2, girdi2, çıktı2, fftw_direction.Backward, fftw_flags.Tahmin) .Execute (); double dizi2 = output2.GetData_Complex ().Seçin (x => x.Magnitude) .ToArray(); double power2 = Math.Sqrt (dizi2.Average (x => x * x)); double double2 = dizi2.Select (x => x * güç / güç2) .ToArray (); Buffer.BlockCopy (double2, 0, image2.Data, 0, uzunluk2 * sizeof (double)); image2.Bitmap'i döndür; )))