Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Konvertiranje RGB u crno-bijelu boju

[es] :: .NET :: Konvertiranje RGB u crno-bijelu boju

[ Pregleda: 4498 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sbing
Hr

Član broj: 48455
Poruke: 77
*.cmu.carnet.hr.



Profil

icon Konvertiranje RGB u crno-bijelu boju20.03.2005. u 19:05 - pre 208 meseci
Imam jedan problem.
Ovo je source:

Dim slika As New System.Drawing.Bitmap("C:/NekakvaSlika.bmp")
Dim boja As New System.Drawing.Color()
boja = slika.GetPixel(100, 100)

Sad me zanima kako da ja tu svoju boju konvertiram u crno-bijelu?
Da mi za crnu boju bude:
Boja.R=0
Boja.G=0
Boja.B=0
a za bijelu boju 255.

Pomogla bi mi i neka funkcija koja bi sliku ("C:/NekakvaSlika.bmp") konvertirala u crno-bijelu.
Hitno mi je, pomagajte!
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
212.62.55.*



Profil

icon Re: Konvertiranje RGB u crno-bijelu boju20.03.2005. u 19:55 - pre 208 meseci
Mozda ovo?
Code:
using (Bitmap bmp = Bitmap.FromFile(imageFile) as Bitmap)
{
    for (int x = 0; x < bmp.Width; x++)
    {
        for (int y = 0; y < bmp.Height; y++)
        {
            Color old = bmp.GetPixel(x, y);
            byte val = (byte)((222 * old.R + 707 * old.G + 71 * old.B) / 1000);
            if (val > 255)
            {
                val = 255;
            }

            if (val < 0)
            {
                val = 0;
            }

            bmp.SetPixel(x, y, Color.FromArgb(val, val, val));
        }
    }
...
}


Ovo je samo izvadjen snippet, ali to sam recimo ja koristio za dobijanje gray slike od slike u boji.
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

sbing
Hr

Član broj: 48455
Poruke: 77
*.cmu.carnet.hr.



Profil

icon Re: Konvertiranje RGB u crno-bijelu boju20.03.2005. u 21:05 - pre 208 meseci
Hvala stari puno si mi pomogao!
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12819



+4754 Profil

icon Re: Konvertiranje RGB u crno-bijelu boju21.03.2005. u 14:46 - pre 208 meseci
Pitam se zasto postoje koeficienti za R, G i B. Zasto se ne racuna obicna aritmeticka sredina?
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
212.62.55.*



Profil

icon Re: Konvertiranje RGB u crno-bijelu boju21.03.2005. u 14:49 - pre 208 meseci
To sam pokupio negde na net-u, ne secam se gde, probao sam, radilo je i bilo je prihvaceno
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

sbing
Hr

Član broj: 48455
Poruke: 77
*.cmu.carnet.hr.



Profil

icon Re: Konvertiranje RGB u crno-bijelu boju21.03.2005. u 22:25 - pre 208 meseci
Meni nije bilo jasno kako se to računa. Što sam god probao nije mi radilo dobro npr. aritmetička sredina. Al, eto, havramm mi je objesnio. Još jednom mu hvala. Radim nešto što bi trebalo biti OMR pa učitavam pixele sa skeniranog papira, pa mi je jako korisno da mi bude crno-bijela slika. Zato mi je trebalo nešto što mi te piksele konvertira u crno-bijele. Može se papir skenirat kao crno-bijeli ali to je nepotrebno maltretiranje krajnjeg korisnika programa pa mi je bolje to riješit ovako, da mi slika na disku bude normalna a da ju program gleda drugačije.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6031



+4627 Profil

icon Re: Konvertiranje RGB u crno-bijelu boju22.03.2005. u 14:14 - pre 208 meseci
Imaš i ove koeficijente (u hiljaditim delovima), pa probaj i sa njima:

Red: 299
Green: 587
Blue: 114

Inače, ti koeficijenti su jednostavno udeo koji ta boja daje "beloj" boji kad je u maksimalnom intenzitetu. Dakle puna crvena bi na crno belom televizoru dala oko 30% intenziteta. Ovo sve naravno pod uslovom da su RGB krive na svim televizorima i monitorima iste što nisu.
Konverzija direktno zavisi od tvoje primene i šta pokušavaš da prikazeš, tj analiziraš. Npr, medicinski snimak u boji se može konvertovati sa dva različita seta koeficijenata u dijagnostici dva različita oboljenja. Dobija se gray slika koja nije "crno bela" slika koju bi video da pustiš kolor snimak na crno belom televizoru, ali je upotrebljiva za analizu jer ističe problematična područja.
Imajući to u vidu možda bi za tvoju OMR analizu mnogo bolja bila neka druga kombinacija sem ovih koje smo ti dali havramm i ja.


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

sbing
Hr

Član broj: 48455
Poruke: 77
*.cmu.carnet.hr.



Profil

icon Re: Konvertiranje RGB u crno-bijelu boju22.03.2005. u 19:30 - pre 208 meseci
Sistem koji sam odabrao za OMR analizu je kad odredim precizne koordinate kvadratića na slici, ulazim u kvadratić pa odredim broj crnih pixela u njemu. A ako je taj kvadratić obilježen (obojan npr.kemijskom ili običnom olovkom) i ako je slika crno-bijela u njemu mora biti određeni postotak crnih pixela. Isto tako moram tolerirati određeni broj crnih piksela ako je slika loše skenirana. Odredio sam da mora biti bar 30% crnih piksela da kvadratić prepozna kao obilježen (to je dovoljno da prepozna obilježen kvadratić ako je u njega upisan X a dosta loše skenirana slika u njemu neće napraviti 30 posto crnih pixela ako polje nije obilježeno).Tako da mi havramm-ova metoda ne radi problema jer tolerancija od 30% mi je dovoljna da pokrije eventualne pogreške njegove funkcije a ovo tvoje (Red: 299 Green: 587 Blue: 114) ću isprobat pa ako mi bude bolje pretvaralo piksele... Da mi je znat gdje si iskopo te postotke, tražio sam to po netu ali bezuspješno.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6031



+4627 Profil

icon Re: Konvertiranje RGB u crno-bijelu boju23.03.2005. u 17:52 - pre 208 meseci
Ah,
sad mi je u stvari malo jasnije sta ti hoćeš da uradiš, čista boolean procena da li je neki checkbox na papiru markiran ili ne.

Pazi ovako, kao prvo, veoma je nezahvalno analizirati gray sliku, ništa manje zahvalno od analiziranja kolor slike. Ono što tebi treba da bi olakšao analizu je konverzija u "black & white" raster pa onda računanje procenata crnih tačkica u okviru lociranog boxa, što je mnogo lakše jer su svi pikseli ili crni ili beli . Ovaj dokument ti može pomoći, u njemu imaš objašnjeno matematički nekoliko najrasprostranjenijih dithering algoritama:

Dithering and Raster Graphics

mada lično ja bih izabrao onaj najprostiji, sračunaš intenzitet (tj. gray level) preko bilo "havrammovih" ili "mojih" koeficijenata tako da dobiješ vrednost u opsegu od 0 do 1000 i ako je vrednost ispod nekog threshold-a ubaciš crnu tačkicu u suprotnom belu. Eksperimentiši sa različitim skenerima i različitim olovkama dok ne dobiješ threshold vrednost koja će najmanje grešiti.

Inače, odakle mi koeficijenti, isto ko i havrammovi, došli sa interneta nekad davno To su sračunali ljudi malo više zaluđeni spektrima boja, talasnim dužinama istih i kako se one vide na toshiba flatscreenu
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

sbing
Hr

Član broj: 48455
Poruke: 77
*.net.vip.hr.



Profil

icon Re: Konvertiranje RGB u crno-bijelu boju23.03.2005. u 21:58 - pre 208 meseci
Citat:
mmix: Ah,
sad mi je u stvari malo jasnije sta ti hoćeš da uradiš, čista boolean procena da li je neki checkbox na papiru markiran ili ne.

Pazi ovako, kao prvo, veoma je nezahvalno analizirati gray sliku, ništa manje zahvalno od analiziranja kolor slike. Ono što tebi treba da bi olakšao analizu je konverzija u "black & white" raster pa onda računanje procenata crnih tačkica u okviru lociranog boxa, što je mnogo lakše jer su svi pikseli ili crni ili beli :). Ovaj dokument ti može pomoći, u njemu imaš objašnjeno matematički nekoliko najrasprostranjenijih dithering algoritama:

Otprilike tako sam i radio.
Ovako, taj moj checkbox je dimenzija 16*16 pixela a okvir je debel 2 pixela kad se papir skenira u omjeru 1:1. Sad taj moj checkbox zauzima 256 pixela (16*16), 112 pixela (44% ) zauzima okvir checkbox-a, pa mi na raspolaganju ostane 144 pixela s kojima ja radim. Ja jednostavno provjeravam pixel po pixel i određujem dali je crn ili bijel. Kad provjerim svih 144 pixela (naravno jednu varijablu sam uvećavao za 1 kad naleti na crni pixel) onda gledam koliko ima tih crnih pixela, ako ih je >= 45 (30% od 144) onda je moj checkbox true, inače je false. Ja sam sve to napravio i super radi, testirao sam i nije mi ni jednom pogriješilo. Ali testirao sam sa slikama koje sam u irfanu ručno promijenio u crno-bijele slike. Zato mi je i trebalo nešto kao ovi koeficienti ili ona havramm-ova funkcija, da si program sam to odredi dali je crno ili bijelo. Malo sam skenirao i skužio da mi stvarno sve radi OK i nemam potrebe pisat nikakve kompliciranije kodove od havramm-ovog. Ovaj tvoj PDF će mi sigurno jednoga dana zatrebati al mislim da za ovo vjerovatno neće. Mogu ti poslat na mail kad završim (još malo doradim) da vidiš kak dobro funkcionira. Mislim, ja se tu ne bavim nikakvim spektrima ili sličnim problemima, jedino imam sreće što je papir bijel a bilo kakva kemijska ili obicna olovka otprilike crna pa mi ne trebaju nikakva pre složena konvertiranja u crno-bijelu, jednostavno mi granice onih tvojih koeficienata bez ikakvih problema mogu malo i odstupati.
 
Odgovor na temu

[es] :: .NET :: Konvertiranje RGB u crno-bijelu boju

[ Pregleda: 4498 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.