c# Siyah-Beyaz?

  • Konbuyu başlatan Konbuyu başlatan kerox
  • Başlangıç tarihi Başlangıç tarihi
Kodla Büyü

kerox

Seçkin Üye
Seçkin Üye
Mesajlar
257
Arkadaşlar bir resimdeki pixeli getpixel komutu ile okuttum. bu resmim benim siyah beyaz . okuttuğum pixel eğer siyah ise resmin width ve height a kadar tanımladığım dizinin okunan i,j değerleri için dizinin i,j ninci değerine siyah ise o nokta 1 beyaz ise 0 aktaran birşey yapmak istiyorum...
şöle bir komut yazdım bakarmısınız yardımcı olursanız sevinirim.

/*********************************************************
private void button9_Click(object sender, EventArgs e)
{
Color renk5, renk6;
int sayac = 0;
kücük = new Bitmap(pictureBox3.Image);
renk5=kücük.GetPixel(0,0);
textBox5.Text = Convert.ToString(renk5);
for (byte i = 0; i < kücük.Width; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
renk1 = kücük.GetPixel(i,j);
deneme = Convert.ToString(renk1);
comboBox1.Items.Add(deneme);
if (renk1 == "Color[A = 255, R = 0, G = 0, B = 0]")
{
bitdizi[i, j] = 0;
}
else bitdizi[i, j] = 1;
sayac++;
}
}
comboBox1.Items.Add(comboBox1.Items.Count);
comboBox2.Text = deneme;
for (byte i = 0; i < kücük.Width ; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
comboBox2.Items.Add(bitdizi[i, j]);


}
}


}
*//////////////////////////////////////
 
Re: c# yardım bekliyorum....

bu kodlardaki gibi yapınca olmuyor.... yardımlarınızı bekliyorum
 
Re: c# yardım bekliyorum....

Color renk5, renk6;
int sayac = 0;
kücük = new Bitmap(pictureBox3.Image);
renk5=kücük.GetPixel(0,0);
textBox5.Text = Convert.ToString(renk5);
if(textBox5.Text == "black")
{

for (byte i = 0; i < kücük.Width; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
renk1 = kücük.GetPixel(i,j);
deneme = Convert.ToString(renk1);
comboBox1.Items.Add(deneme);
if (renk1 == "Color[A = 255, R = 0, G = 0, B = 0]")
{
bitdizi[i, j] = 0;
}
else bitdizi[i, j] = 1;
sayac++;
}
}
comboBox1.Items.Add(comboBox1.Items.Count);
comboBox2.Text = deneme;
for (byte i = 0; i < kücük.Width ; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
comboBox2.Items.Add(bitdizi[i, j]);

}
}
}

yukardaki gibi bir if bloğu eklemen lazım anlattıklarından anladığım kadarıyla
 
Re: c# yardım bekliyorum....

Parhelion' Alıntı:
hata olarak ne veriyor hocam
hata vermiyo ama if ile yaptığım kontrolde kontrol oğruda olsa else işleme alıyo if içine hiç girmiyo dizim doğru olmuyo
 
Re: c# yardım bekliyorum....

refleto' Alıntı:
Color renk5, renk6;
int sayac = 0;
kücük = new Bitmap(pictureBox3.Image);
renk5=kücük.GetPixel(0,0);
textBox5.Text = Convert.ToString(renk5);
if(textBox5.Text == "black")
{

for (byte i = 0; i < kücük.Width; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
renk1 = kücük.GetPixel(i,j);
deneme = Convert.ToString(renk1);
comboBox1.Items.Add(deneme);
if (renk1 == "Color[A = 255, R = 0, G = 0, B = 0]")
{
bitdizi[i, j] = 0;
}
else bitdizi[i, j] = 1;
sayac++;
}
}
comboBox1.Items.Add(comboBox1.Items.Count);
comboBox2.Text = deneme;
for (byte i = 0; i < kücük.Width ; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
comboBox2.Items.Add(bitdizi[i, j]);

}
}
}

yukardaki gibi bir if bloğu eklemen lazım anlattıklarından anladığım kadarıyla
hocam renk5 in siyah olduğunu bilmiyorum.. renk 5 ile convert.tostring ile yazdırınca color[a=255,r=........] gibi bir ifade yazıyor... yani denedim ama gerçekleştiremedim... eğer isteyen olursa yazdığım kodların ve programın tamamını gönderebilirim....
 
Re: c# yardım bekliyorum....

private void button9_Click(object sender, EventArgs e)
{
Color renk5, renk6;
int sayac = 0;
kücük = new Bitmap(pictureBox3.Image);
renk5=kücük.GetPixel(0,0);
textBox5.Text = Convert.ToString(renk5);
for (byte i = 0; i < kücük.Width; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
renk1 = kücük.GetPixel(i,j);
deneme = Convert.ToString(renk1);
comboBox1.Items.Add(deneme);
if (renk1 == Color.Black)
{
bitdizi[i, j] = 0;
}
else bitdizi[i, j] = 1;
sayac++;
}
}
comboBox1.Items.Add(comboBox1.Items.Count);
comboBox2.Text = deneme;
for (byte i = 0; i < kücük.Width ; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
comboBox2.Items.Add(bitdizi[i, j]);


}
}


}


Birde böyle dene hocam
 
Re: c# yardım bekliyorum....

buda olmadı hocam if şartı doğruda olsa dizinin içine değer atama işini sadece else kısmı yapıyor.. denemiştim bu şekilde ama gene aynını yapmıştı bu şekilde
 
Re: c# yardım bekliyorum....

hocam herhangi bir siya beyaz üzerinde deneyeyimi yoksa özel olarak göndermek istermesin
 
Re: c# yardım bekliyorum....

refleto' Alıntı:
hocam herhangi bir siya beyaz üzerinde deneyeyimi yoksa özel olarak göndermek istermesin
hocam farketmez getirdediğinizdee. resim geliyo
küçültüp siyah beyeaz yapıyo
onlarrdan her hangi birinde olur...
 
Re: c# yardım bekliyorum....

if (renk1 == Color.FromArgb(255, 0, 0, 0))

daha sağlam olsun diyorsan

if (renk1.R == 0 && renk1.G==0 && renk1.B==0)

bütün kod ise

int sayac = 0;
kücük = new Bitmap(pictureBox3.Image);
for (byte i = 0; i < kücük.Width; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
renk1 = kücük.GetPixel(i, j);
textBox5.Text = Convert.ToString(renk1);
deneme = Convert.ToString(renk1);
comboBox1.Items.Add(deneme);
if (renk1.R == 0 && renk1.G==0 && renk1.B==0) //if (renk1 == Color.FromArgb(255, 0, 0, 0))
{
bitdizi[i, j] = 1;
}
else bitdizi[i, j] = 0;
sayac++;
}
}
comboBox1.Items.Add(comboBox1.Items.Count);
comboBox2.Text = deneme;
for (byte i = 0; i < kücük.Width ; i++)
{
for (byte j = 0; j < kücük.Height; j++)
{
comboBox2.Items.Add(bitdizi[i, j]);


}
}
 
Re: c# yardım bekliyorum....

refleto' Alıntı:
if (renk1 == Color.FromArgb(255, 0, 0, 0))

daha sağlam olsun diyorsan

if (renk1.R == 0 && renk1.G==0 && renk1.B==0)

hocamın dediği gibi renk değerlerinin kontrol edilmesi daha doğru olur. ayrıca combobox yerine listbox kullanırsanız daha rahat olur bence.
 
hocam yapmak istediğim herhangi boyuttaki bir resmi 240x127 boyutuna küçültüp. resmi siyah beyaz yaptıktan sonrada... 240x127 dokun matik ekran bir displaye göndermek display siyah beyaz olduğu için resmi display boyutuna ve siyah beyaza çevirmem gerekiyor... çevirme ve siyah beyaz işlemede sorun yoık kodları netten buldum ve yarım yamalak ayarladım.. asıl iş verinin yani resmin oraya displaya gönderilemesi onun içinde... resmi pixel pixel kontol ettirip bir dizinin içine eğer pixel de siyah nokta varsa 1 aksi halde beyaz vardır ozaman 0 aktartmak.. sonra bu 1 ve 0 ları 8 bit halinde byte çevirmek ve kablolu yada kablosuz displaye göndercem display byte okuyup ekranda göstercek resim displayde görünür olacak.... anlatabidim sanırım.... benim sorunum siyah beyaz resmi pixel pixel kontrol ettiriyom ama diziye 1 ve 0 olrak yazdıramıyom....
 
benim kod derdine derman olmadımı hocam ben baktığımda çalışıyordu resimdeki siyah ve bayaz pikselleri bitdizi değişkenine işledi bir güzel
 
eyvallah hocam siz ve diğer hocamın kodları ile sanırım artık çalışıyo... şimdi diziden 8er li bitler halinde byte dönüştürme ve displaye gönderme kaldı... onlarda yarın bakacam nasipse... ilginiz için çok teşekkürler. yine sıkıştığım bir nokta olursa yardımlarınıza başvurabilirim değilmi... ben c# ile çalışmaya daha 1 ay oldu da pek bilemiyorumm... :) :) :)
 
BBNET
Geri
Üst