Cat face un X?
Rata maximă de transfer a datelor se numără printre factorii cei mai importanţi care caracterizează performanţele unei unităţi optice. Rata de transfer maximă este măsurată în kilobaiţi (KB) sau megabaiţi (MB) pe secundă, dar este echivalată în „X”. „X-ul” este o unitate de măsură preferată kilobaiţilor sau megabaiţilor pe secundă din motive de marketing. Pentru mulţi utilizatori 52X sună mai interesant decât 7800 kilobaiţi pe secundă.
Un „X” are valori diferite, în funcţie de mediul de stocare la care care este avut în vedere:

Bariere tehnnologice
Rata de transfer a datelor este determinată într-o bună măsură de viteza de rotaţie a mediului de stocare. Acest fenomen de interdependenţă între rata de transfer şi viteza de rotaţie a dus la apariţia unei bariere tehnlogice cauzate de structura electronico-mecanică a unităţilor optice. Iată care ar fi principale fenomene secundare ce pot fi cauzate de creşterea numărul de rotaţii ale disc-ului :
• Vibraţii ale discului. Poziţionarea corectă a razei laser pe un disc ce vibrează este greu de realizat şi consumă timp.
• Încălzirea mediului de stocare. Fenomenele de frecare ce se produc la viteze mari de rotaţie duc la încălzirea considerabilă a discului. Câteva grade în plus pot duce la alterarea stratului de stocare fotosenzitiv şi implict la pierderea datelor stocate.
• Un număr de rotaţii prea mare poate duce şi la dezintegrarea discului în unitate. Acest eveniment are mari şanse de reuşită dacă discul este fisurat. Dacă aţi auzit de discuri care pur şi simplu au explodat în momentul în care erau citite nu trebuie să fiţi sceptic, unii utilizatori au parte şi de astfel de evenimente.
Dintr-un alt punct de vedere se poate susţine că stagnarea ratei de transfer este şi o chestiune ce ţine de menţinerea unui cost de fabricaţie scăzut. Tehnologia actuală permite fabricarea unor unităţi optice mai performante dar, acesta ar implica folosirea unor componente costisitoare ceea ce ar duce la un preţ final mult prea mare pentru buzunarul utilizatorul obişnuit. Având în vedere că segmentul cel mai dezoltat pe piaţa unităţilor optice este cel cuprins între 20$-50$ nu se anunţă prea curând vreo schimbare.
Primele unităţi CD-ROM erau cotate la o viteză de 1x (1988). Mai apoi, au apărut uniţăţile cu viteză dublă – 2x (1990), iar în anul 1994 cele cu viteză cvarduplă – 4x. Caracteristicile comune ale unităţilor CD-ROM primitive (1X-4x) erau:
– rata redusă de transfer a datelor (la o viteză de 2x durata de copiere a unui CD de 700 MB trece de 40 de minute)
– preţurile ridicate şi uneori exorbitante (primele unităţi 4X costau aproape 1000$ în momentul lansării)
– fiabilitate (pentru preţul plătit unităţile CD-ROM se comportau ca nişte echipamente de folosinţă îndelungată)
Unităţile 16X au apărut în anul 1997, iar anul următor pe piaţă se puteau găsi deja unităţi 32X. În anul 1999 unităţile cotate la valori peste 40x erau cu totul obişnuite. De atunci şi până în prezent, rata de transfer a datelor a stagnat în jurul valorii de 50x.
Unităţile DVD-ROM au cunosct o traiectorie asemănătoare în privinţa preţurilor şi a performanţelor.


CD vs. DVD
Vezi si stocarea optica.
Un DVD foloseşte aceaişi tehnologie de stocare ca şi un compact disc. Pentru a mări capacitatea de stocare nu s-a apelat la mărimea suprafeţei de stocare, ci la mărierea densităţii stratului de stocare. Dimensiunea cavităţilor ce reprezintă biţii precum şi distanţa dintre aceste cavităţi a fost redusă, iar aceste schimbări s-au concretizat într-o capacitate de stocare de aproximativ 7 ori mai mare în cazul unui DVD standard. Puteţi vedea DVD-ul ca fiind un compact disc cu densitate înaltă.

| Caracteristică |
DVD |
CD-ROM |
| Diametrul stratului de stocare mm) |
120 |
120 |
| Grosime (mm) |
1.2 |
1.2 |
| Feţe |
1 sau 2 |
1 |
| Straturi per faţă |
1 sau 2 |
1 |
| Distanţa dintre piste (microni*) |
0.74 |
1.6 |
| Mărimea minimă a pit-ului (microni) |
0.4 – 0.44 |
0.83 |
| Capacitate de stocare (GB) |
4.7, 8.54, 9.4, 17 |
~ 0.7 |
Stocarea optica
Una dintre cele mai mari descoperiri în domeniul tehnologilor de stocare este reprezentată de stocarea optică. La baza acestui tip de stocare stă fenomenul optic cunoscut sub numele de reflexia luminii.1 Faptul că două obiecte pot reflecta lumina în mod diferit, foloseşte în cadrul stocării optice pentru a reprezenta o serie de biţi în cadrul unei suprafeţe reflectorizante.
În continuare urmează să aflaţi câteva detalii despre modul de stocare a datelor folosind tehnologie optică. Cu alte cuvinte, veţi afla de ce un mediu de optic este optic şi nu magnetic.
Mediul de stocare
Mediile optice stochează datele într-un strat de stocare fotosenzitiv de a lungul unei piste spiralate. (Dacă ar fi desfăşurată, o astfel de pistă ar atinge, în cazul unui compact disc, o lungime de aproximativ 5 km.)

Biţii sunt înregistraţi în ordine pe spaţiul marcat de o pistă sub forma unor cavităţi sau puncte microscopice ce au rolul de a reflecta diferit lumina emisă de o rază laser. O suprafaţă plană semnifică 0 (land) iar o cavitate sau punct 1(pit).
Dimensiunea punctelor ce reprezintă biţii precum şi distanţa dintre acestea este de oridinul micronilor.2. La nivel micronic, densitatea de puncte ce pot fi reprezentate este de ordinul sutelor de milioane pe o suprafă de doar câţiva centimetri pătraţi.

Raza laser
Pentru decodificarea miliardelor de puncte aflate în interiorul stratului de stocare în date este folosită o rază laser. Raza laser verifică absenţa sau prezenţa în serie a cavităţilor sau punctelor microscopice ce reprezintă biţii şi raportează sub formă de semnale părţii electronice absenţa sau prezenţa lumii. Mai departe electronica unităţii de citire interpretează semnale electronice primite sub formă de baiţi.

Avantajele stocării optice
Dimensiuni compacte
Cele mai răspândite medii de stocare optice (CD-ul şi DVD-ul) cântăresc câteva grame, au o grosime de 1,2 mm şi un diametru de 12 cm.
Acces direct către informaţia stocată.
Orice informaţie poate fi găsită în cadrul suprafeţei de stocare a unui mediu optic într-un interval măsurabil în milisecunde.
Securitate bună a datelor stocate şi perioadă lungă de utilizare
Un mediu de stocare optic nu se uzează prin citire. În condiţiile unei manipulări atente informaţia stocată pe un disc optic (de calitate) poate fi accesată vreme de zeci de ani.
Preţ redus per megabaitul de stocare
Un mediu de stocare obişnuit (CD sau DVD) poate fi achiziţionat pentru un preţ derizoriu, şi oferă o capacitate de stocare relativ mare.
WORM
Majoritatea mediilor se stocare optice se încadrează categoria mediilor de stocare WORM – Write Once Read Many – Scrie Odată Citeşte de Multe Ori.
Faptul că un mediu WORM poate fi scris o singură dată este în strânsă legătură cu procesul de scriere a datelor, care este unul ireversibil. Stratul de stocare odată ce a fost modificat prin scrierea de date nu mai poate fi adus la starea iniţială.
Faptul că informaţia stocată nu poate fi ştearsă sau modificată nu trebuie văzută ca un dezavantaj major. Caracteristica de permanenţă a informaţiei previne ştergerea sau modificarea accidentală a acesteia.
Mediile optice non-Worm, denumite şi reînregistrabile, pot fi citite de asemenea de foarte multe ori dar în acelaşi timp pot fi şterse şi rescrise cu noi informaţii.
- REFLÉXIE, reflexii, s.f. 1. Fenomen de reîntoarcere parţială a luminii, a sunetului, a radiaţiilor în mediul din care au venit atunci când întâlnesc o suprafaţă de separare a două medii; reflexie (2). 2. Reflecţie (1). [Var.: reflexiúne s.f.] – Din fr. réflexion, lat. reflexio, -onis, germ. Reflexion. [↩]
- Un micron este egal cu a mia parte dintr-un milimetru – 10-6 metri [↩]
Creative X-FI – Cum activam Dolby Digital Live?

Sarim peste partea in care ar trebui sa aducem critici celor de la Creative pentru felul cum au intels sa-si trateze cumparatorii, neoferind aceasta functie in mod oficial.
Daca nu stiti inca ce inseamna Dolby Digital Live dati o fuga aici.
Software requirements
- Driverele pentru seria X-FI, cele neoficiale ( daniel_k’s drivers)
- DDLunlocker.exe, de acelasi autor.
- Dolby digital live pack.
Download (click pe iconita)
Hardware requirements
- X-Fi ( mai putin X-Fi Xtreme Audio care nu este compatibila)
- Cablu optic sau coxial (cu sau fara adaptoare, in functie de X-Fi-ul de care dispuneti)
- Receiver sau sistem audio (Z5500 de ex) cu decodor Dolby Digital si intrare optica sau coaxiala

Step 1 – Drivere…
Mai intai trebuie sa instalam driverele neoficiale, opera a hacker-ului brazilian daniel_k. Nu va faceti griji in privinta “neoficialitatii” driverelor, in propotie de 99,5% coincid cu cele originale doar ca mai sunt deblocate niste functii.
Pe langa driverele propriu zise, mai trebuie sa instalam, cel putin, aplicatia Audio Console sau Creative console launcer, pentru ca de acolo vom activa optiunea dolby digital live output.
Step 2 – DDLunlocker.exe
Odata ce am instalat driverele neoficiale suntem eligibili sa rulam DDLunlocker.exe. Acest mic programel functioneaza doar cu aceste drivere, alfel se va incapatana sa-si faca treaba.

Atentie, unlockerul trebuie rulat fie in safemode (recomandabil), fie numai dupa ce inchidem toate aplicatiile active de la Creative.

Step 3 – Dolby digital live pack
Acum instalam Dolby Digital Live pack, aplicatie care este inclusa in pachetul de drivere oferite de Auzen pentru al lor X-FI Prelude care foloseste un chip X-Fi. Initial driverele se puteau downloda direct de la Auzen, dar dupa ce au inceput sa cada serverele, si mai ales cand si-au vazut produsele amentintate au schimbat strategia. Acum drivele se pot downloda numai dupa o inregistrare prealabila cu seria de la produs. Evident ca driverele au avut timp sa se raspandeasca pe diverse site-uri.
Nici nu ne trebuie tot pachetul de drivere si aplicatii, ci doar aplicatia Dolby Digtial Live pack, care are aproximativ 4MB.
Step 4 – Engage…

Restartam si activam functia din Audio Console, unde va aparea un nou tab denumit “Encoder”. Daca totul a mers bine, acum trebuie sa vedem display-ul receiverului logo-ul Dolby Digital. (vezi imaginea de sus)
AC3/DTS pass-trough SPDIF
La filme, unde sunetul este deja in format AC3/DTS, nu avem nevoie de o alta encodare a sunetului. In aceasta situatie trebuie sa-i spunem placii de sunet si playerului sa trimita direct stream-ul AC3/DTS spre receiver. Pentru aceasta dezactivam functia Dolby Digital Live si ne asiguram ca avem setat direct bitstream out.

Nu trebuie sa uitam sa facem si setarile corespunzatoare in media playerul folosit, cautam undeva la options/preferences>audio, si selectam AC3/DTS pass-trough. (sau orice formulare asemantoare)
In FFDSHOW mergem la sectiunea codecs si selectam la AC3/DTS decoder – SPDIF.

3DMark SystemInfo Hotfix

Aveti o placa video noua si nu functioneaza 3DMark-ul? Porneste dar se blocheaza in faza de analiza a hardware-ului? Nu va grabiti sa dati vina pe placa video, ci instalati hotfix-ul celor de la Futuremark care elima probleme de detecare a hardware-ului.
Hofix-ul updateaza urmatoarele fisiere:
- Direcpll.dll (4.10.1.93)
- Entech.sys (5.0.1.1)
- Entech64.sys (5.0.1.1)
O alternativa, de tipul DIY (do it yourself) e sa redenumiti/stergeti fisierul Direcpll.dll din \WINDOWS\system32\Futuremark\MSC\)
Se adreseaza urmatoarelor versiuni:
*3DMark06 Build 1.1.0
* 3DMark05 Build 1.3.0
* 3DMark03 Build 3.6.0
* PCMark05 Build 1.2.0
Futuremark_SystemInfo_Hotfix_Feb08_installer.exe (2.5 MiB, 1,010 hits)
You need to be a registered user to download this file.
PC – de la Personal Computer
De ce unele calculatoare sunt personale?
Probabil că aţi tot auzind vorbindu-se de calculatoare personale, mai ales că în momentul de faţă folositi un calculator personal.
PC – de la Personal Computer
Iniţial PC-urile purtau denumirea de IBM PC, fiind calculatoare dezvoltate şi create de către compania americană IBM. (International Bussines Machines Corporation)
Astăzi, termenul de PC se referă la orice calculator personal, indiferent de producător. O bună vreme a fost folosită sintagma “Compatibil IBM PC” pentru a desemna calculatoarele create de către alţi producători decât IBM dar care funcţionau excat ca şi un PC original.
Această distincţie original şi compatibil este lipsită de importanţă în momentul de faţă, deoarece mai bine de 95% dintre calculatoarele personale sunt create de către diverşi producători şi nu de către compania IBM.
Notă: Compania IBM nu a uitat cine a creat de fapt calculatorul personal. “De ce să cumperi un compatibil, când poţi avea originalul?” – una una dintre lozincile folosite de IBM pentru promovarea propriilor calculatoare personale.
Pentru majoritatea utilizatorilor contează mai puţin cine a creat primul calculatorul personal, preţul calculatorului şi specficaţiile componentelor hardware fiind mult mai importante.
De ce 1024?
Prefixele kilo, mega, sau giga provin din sistemul metric unde fiecare reprezintă exact o mie, un milion, sau un miliard de unităţi. Dacă vă întrebaţi de ce tocmai kilobaitul a ales să depăşească bariera de 1000 de unităţi, răspunsul este destul de simplu. Totul pleacă de la la faptul că un bit poate avea două valori ( 0 sau 1) ceea ce face ca mai departe totul se se măsoare ca 2 la o anumită putere. Un kilobait este echivalentul lui 2 la puterea a 10-a, ceea ce înseamnă exact 1024.
Tabel cu prefixe:
|
Unitate |
Abrev. |
Baiţi |
|
Kilo |
K |
2^10 = 1,024 |
|
Mega |
M |
2^20 = 1,048,576 |
|
Giga |
G |
2^30 = 1,073,741,824 |
|
Tera |
T |
2^40 = 1,099,511,627,776 |
|
Peta |
P |
2^50 = 1,125,899,906,842,624 |
|
Exa |
E |
2^60 = 1,152,921,504,606,846,976 |
|
Zetta |
Z |
2^70 = 1,180,591,620,717,411,303,424 |
|
Yotta |
Y |
2^80 = 1,208,925,819,614,629,174,706,176 |
Baiţi sau octeţi?
Octeţii şi baiţii se referă practic la acelaşi lucru. Teoretic vorbind, un octet exprimă clar că este vorba despre opt biţi, pe când baiţii pot însemna şi o oarecare adunătură de biţi, nu neaparat opt.
Baiţii mai au darul de a pune în încurcătură multe lume, deoarece confuzia între biţi şi baiţi este foarte uşor de făcut pentru necunoscători.
Cu toate acestea, sunt puţine persoanele care folosesc termenul de octet atunci când vine vorba de memorie.
Bait, baiţi, s.m. (Inform.) – Ansamblu de biţi (de obicei opt) folosit pentru exprimarea capacităţii de memorie. – Din engl. byte
Octet, octeţi s.n. (Inform.) – Grup de opt biţi folosit pentru exprimarea capacităţii de memorie. – Din fr. octet
Ce insemna totusi un megabait?
| Multipli | Ce se poate stoca |
| 1 bait (b) | Un caracter. Dacă aţi început să scrieţi un document şi aţi tastat litera a tocmai aţi ocupat un bait de memorie. |
| 1 kilobait (KB) | O mie de caractere. Un kilobait oferă suficient spaţiu pentru stocarea unei cereri de concediu plătit. |
| 1 megabait (MB) | Tot textul unui roman de aproximativ 300 de pagini poate încape într-un megabait. Primul minut din melodia dumneavoastră preferată poate încape desemenea într-un megabait de memorie. Într-un megabait de memorie pot încape şi alte lucruri interesante, dar la fel de multe alte lucruri nu pot fi stocate doar cu un singur megabait memorie. |
| 1 gigabait (GB) | Toată informaţia conţinută de biblioteca de acasă poate fi stocată cu un uşurinţă într-un gigabait de memorie. O mie de minute din muzica dumnevoastră preferată necesită aproximativ un gigabait de memorie.O mie de megabaiţi, adica un gigabait, nu este nicidecum o cantitate de memorie impresionantă în ziua de astăzi, din moment ce si cele mai ieftine calculatoare personale pot stoca cantitati de oridinul sutelor de gigabaiti. |
Interferentele in codarea digitala versus analogica
Înainte de a fi transmisă sau stocată în memorie orice informaţie trebuie codata1 mai întâi. Pentru ca informaţia să poată fi folosită ulterior, acesta trebuie readusă la forma iniţială în urma unui proces de decodare.
Atunci când informaţia urmează să fi folosită împreună cu diverse echipamente electronice există două mari posibilităţi de codare a acesteia:
- codare analogică: informaţia este reprezentată sub forma unor variaţii continue ce corespund unor schimbări fizice (precum variaţiile curentului electric) Informaţii codate în formă analogică: semanlul TV sau radio obişnuit, înregistrările audio pe discuri de vinil, casete audio, înregistrările audio-video pe casete VHS, imaginea pe un film fotografic etc.
- codare digitală: informaţia este reprezentată sub forma unor semnale fixe corespunzătoare unor secvenţe numerice. Nu există tip de informaţie care să nu poată fi codificată în formă digitală.
Ceea ce pentru un echipament digital nu reprezintă decât coduri numerice pentru dumnevoastră poate însemna un sunet de cea mai înaltă fidelitate, ultimul film cu James Bond, statele de plată pe luna curentă, sau un document de 500 de pagini.
Transmitrea şi păstrea informaţiei, indiferent de forma de codare folosită, este supusă întotdeauna unor interferenţe exterioare.
Interferenţele pot fi de natură diversă:
– impulsurile electrice transmise prin fire pot fi atenuate sau chiar pierdute datorită rezistenţei electrice ale firelor respective
– semnalul radio poate ajunge distorsionat la destinaţie datorită interferenţei cu alte semnale radio
– informaţia stocată de un disc (ex. CD audio) poate fi distorsionată datorită murădirii suprafeţei discului
Semnalul analogic, ce constă într-o serie de variaţii continue, poate fi alterat definitiv de intereferenţele apărute. Este de ajuns să vă gândiţi la felul cum este recepţionat semnalul TV în condţii de turblulenţă atomosferică.
Inevitabil, şi semnul digital este supus unei degradări, dar interferenţele apărute pot fi ignorate unerori. Orice semnal apropiat de o anumită valoare particulară (1 de exemplu) este interpretat ca având exact acea valoare.Totusi echipamentele digitale nu fac mininiuni, iar atunci cand semalul digital este alterat în mod decisiv datorită unor interferenţe exterioarea acesta nu mai poate fi decodat la destinaţie.
Acesta este şi motivul pentru care în caz de turbulenţe atomosferice puternice (revenind la exemplul cu semnanlul TV) recepţia posturilor recepţionate pe cale digitală pe către operatorul de cablu este complet întreruptă. (Celebrul mesaj – No signal – Fără semnal)
Datorită posibilăţii de a recompune o informaţie codificată exact în forma sa iniţială, echipamentele digitale sunt superioare celor analogice.
- Sensul termenului de „cod” din perspectiva codării informaţiei este acela de „sistem de semne sau semnale ce servesc la transmiterea unui mesaj” [DEX] [↩]
Prelucrarea si recunoasterea imaginilor
1. Tema proiectului
Sa se implementeze un filtru trece banda in domeniul frecventa folosit pentru prelucrarea imaginilor.
Ca medii de programare se va folosi Visual C++, Visual C#, Java sau PHP.
2. Studiul problemei
Pentru realizarea îmbunătăţirii si restaurarii imaginilor în domeniul frecvenţelor se utilizeaza filtrele. Din categoria filtrelor liniare cele mai intalnite sunt: filtrele trece-jos, filtrele trece-sus si filtrele trece-banda.
Al treilea tip de filtre numite filtre trece-bandă, lasa sa treaca zone ale frecvenţelor situate între frecvenţele înalte şi frecvenţele joase. Aceste filtre se pot realize si prin combinarea unui filtru trece-jos cu un filtru trece-sus.
Aceste filtre sunt utilizate în restaurarea imaginilor fiind foarte rar utilizate în îmbunătăţirea imaginilor.
In figure urmatoare este redata o sectiune printr-un filtru trece-banda in domeniul frecventelor:
fL si fH sunt frecventele de taiere iar B=[fL, fH] reprezinta banda de trecere.
Pentru realizarea îmbunătăţirii si a restaurarii imaginilor în domeniul frecvenţelor trebuie calculată mai întâi transformata Fourier a imaginii ce urmează a fi îmbunătăţită, multiplicarea rezultatului cu o funcţie filtru, după care se face calculul transformatei Fourier inverse pentru a obţine imaginea îmbunătăţită.
Fiind data functia continua f(x) de o variabila reala x, transformata Fourier notata cu F{f(x)} este definita prin ecuatia:
unde j = Ö-1.
Fiind dat F(u), f(x) poate fi obtinut prin utilizarea transformatei Fourier inverse:
Ca şi în cazul îmbunătăţirii imaginilor, scopul final al tehnicilor de restaurare constă în îmbunătăţirea calităţii imaginilor într-un anumit sens. Pentru diferenţiere considerăm restaurarea ca fiind procesul care urmăreşte să reconstruiască sau să recupereze o imagine care a fost degradată, utilizând cunoştinţe apriori despre fenomenul ce a realizat degradarea. Astfel, tehnicile de restaurare sunt orientate în direcţia modelării fenomenului ce a realizat degradarea şi a aplicării fenomenului invers în scopul recuperării imaginii originale.
Pentru a implementa acest filtru, am ales ca mediu de programare Visual C#.
Am folosit bibliotecile:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
using System.Windows.Forms;
Pe imaginea aleasa am aplicat un filtru trece jos,si imaginea rezultata am folosit-o ca si intrare pentru filtrul trece sus.
Pentru interfata cu utilizatorul am creat un form :in care apare imaginea initiala,apoi imaginea Gray-Scale si imaginea rezultata in urma aplicarii filtrului trece banda.
Claritatea si intensitatea pot fi alese de utilizator;
Pt claritate:intre 3 si 29,valori impare
Pt intensitate:intre 1 si 1000.
//Filtru trece-jos
int LowpassSize =(int)val1.Value;//insert an odd size: 3, 5, 7, …, 29.
int MidWeight = (int)val2.Value; //set a positive mid weight: 1, 2, 3, …, 1000.
int hh=poza_gri.Size.Height;
int ww=poza_gri.Size.Width;
int i1,j1,i2,j2,sum,ggri;
int d = LowpassSize / 2;
float divisor = (2 * d + 1) * (2 * d + 1) + MidWeight – 1;//MidWeight == 1 means no weight
Bitmap Lowpass;
Byte[,] gg_array;
Lowpass = new Bitmap(ww, hh, PixelFormat.Format24bppRgb);
gg_array = new Byte[ww, hh];
for (j1 = 0; j1< hh; j1++)
for (i1 = 0; i1 < ww; i1++)
{
color = poza_gri.GetPixel(i1, j1);
ggri = (color.R + color.G + color.B) / 3;
gg_array[i1, j1] = (Byte)ggri;
}
for (j1 = d; j1 < hh – d; j1++)
for (i1= d; i1 < ww – d; i1++)
{
sum = (MidWeight – 1) * gg_array[i1, j1];
for (j2 = -d; j2 <= d; j2++)
for (i2 = -d; i2 <= d; i2++)
sum += gg_array[i1 + i2, j1 + j2];
ggri = Convert.ToByte((float)sum / divisor);
Lowpass.SetPixel(i1, j1, Color.FromArgb(ggri, ggri, ggri));
}
//Filtru trece-sus
HighHorizontal = new Bitmap(w, h, PixelFormat.Format16bppRgb555);
HighVertical = new Bitmap(w, h, PixelFormat.Format16bppRgb555);
HighGradient = new Bitmap(w, h, PixelFormat.Format16bppRgb555);
g_array = new Byte[w, h];
for (j = 0; j < h; j++)
{
for (i = 0; i < w; i++)
{
col = Lowpass.GetPixel(i, j);
gri = (col.R + col.G + col.B) / 3;
g_array[i, j] = (Byte)gri;
}
}
for (j = 1; j < h – 1; j++)
for (i = 1; i < w – 1; i++)
{
sum_st = g_array[i – 1, j] + g_array[i – 1, j – 1] + g_array[i – 1, j + 1];
sum_dr = g_array[i + 1, j] + g_array[i + 1, j – 1] + g_array[i + 1, j + 1];
sum_sus = g_array[i, j – 1] + g_array[i – 1, j – 1] + g_array[i + 1, j – 1];
sum_jos = g_array[i, j + 1] + g_array[i – 1, j + 1] + g_array[i + 1, j + 1];
diff = Math.Abs(sum_st – sum_dr);
if (diff > 255)
HighHorizontal.SetPixel(i, j, Color.FromArgb(255, 255, 255));
else
HighHorizontal.SetPixel(i, j, Color.FromArgb(diff, diff, diff));
diff = sum_sus – sum_jos;
if (diff < 0)
diff *= -1;
if (diff > 255)
HighVertical.SetPixel(i, j, Color.FromArgb(255, 255, 255));
else
HighVertical.SetPixel(i, j, Color.FromArgb(diff, diff, diff));
Double diff_h = sum_st – sum_dr;
Double diff_v = sum_sus – sum_jos;
diff = Convert.ToInt32(Math.Sqrt(diff_h * diff_h + diff_v * diff_v));
if (diff > 255)
HighGradient.SetPixel(i, j, Color.FromArgb(255, 255, 255));
else
HighGradient.SetPixel(i, j, Color.FromArgb(diff, diff, diff));
}
Autor: Emanuela Dragos
Categorie: 



