DIP pomocou Visual C

S

spyderlove

Guest
môže ktokoľvek navrhnúť knihu s digitálne spracovanie obrazu pomocou Visual C ?

Jeho veľmi naliehavé ..

 
Nevidel som knihu, ktorá vám pripravené na používanie C funkcií pre spracovanie obrazu.Ale ak máte dobrú knihu, je ľahké implementovať algoritmy DIP po prečítaní vysvetlenie.

Pozrite sa na tento príklad som vytvoril pre stupne šedi "gama korekcie", skúste pochopiť, a môžete upraviť, aby sa iné druhy filtrov, stačí zmeniť operátora, ktorý funguje cez vstupné dáta v úseku medzi "Tu môžete písať kód FOR spracovanie vstupných údajov "a" TU KONIEC Spracovanie obrazu CODE ".

Kód:# Include <iostream.h>

# Include <stdlib.h>

# Include <fstream.h>

# Include <math.h>void main ()(unsigned char buffer;

int width = 0, height = 0, i = 0, y = 0, y = 0, temp;

char inputfile [] = "test2.bmp" / / Toto je vstupný obraz

char ouputFile [] = "C: \ \ outdata.bmp" / / Toto je výstup obrázku

float j = 1,75, s1 = 0, Temp1 = 0;

dvojlôžková gama;ifstream vstup (inputfile, ios:: v | ios:: binárne);

ofstream výstup (ouputFile, ios:: mimo | ios:: binárne);coût <<"Gamma korekcia Príklad" <<Endl;

coût <<"Zadajte hodnotu gamma =" <<Endl;cin>> gama;if (! vstup)coût <<"Chyba v názve súboru" <<Endl;iný(coût <<"súbor:" <<inputfile <<Endl;

/ / Výpočet Šírka obrázku

pre (i = 0; i <= 3; i )

(input.seekg (18 I, ios:: žobrať);

input.get (buffer);

šírka = (buffer <<8 * i);)

/ / Výpočet Výška obrázku

pre (i = 0; i <= 3; i )

(

input.seekg (22 I, ios:: žobrať);

input.get (buffer);

výška = (buffer <<8 * i);)

coût <<"Šírka obrázku v pixeloch =" <<šírkou <<Endl;

coût <<"Výška obrázku v pixeloch =" <<výške <<Endl;if (gama <1)

(

while (y <= 254)

(

y = pow (255, gamma) * j;

j = j 0,01;))/ / Copy rovnaké hlavičky a tabuľku farieb pre výstup obrazu

pre (i = 0; i <= (54 1024 šírka * výška-1), i )

(

input.seekg (i, ios:: žobrať);

input.get (buffer); / / tu budeme čítať vstupné dáta zo vstupného obrázkuif (i> 1077)

(

////////////////////////////////////////////////// / /

/ / TU písať kód FOR PROCESSING vstupných dát

////////////////////////////////////////////////// /

if (gama> = 1)

(

teplota = nárazník;

s = pow (temp, gamma) / pow (255, (gamma-1));

buffer = s;

output.put (buffer);

/ / Couto <<s <<Endl;

)

iný

(Temp1 = buffer;

s1 = pow (Temp1, gamma) * j;

buffer = s1;

output.put (buffer); / / Tu si skopírovať dáta do výstupného obrazu

/ / Couto <<s1 <<Endl;

)

////////////////////////////////////////////////// / /

/ / TU KONIEC IMAGE operačný kód

////////////////////////////////////////////////// /)

iný

output.put (buffer); / / Tu si skopírovať dáta do výstupného obrazu))

)
 

Welcome to EDABoard.com

Sponsor

Back
Top