Ana içeriğe atla

C# Bitmap Kullanımı Ve Gri Formatı




Herkese merhaba

Yeni bir konu ile ilgili ilk yazımı paylaşıyorum.Bu başlık altında görüntü işlemeye yönelik uygulamalar yapmayı planlıyorum.Detayları internette araştırarak bulabilirsiniz.

Hadi başlıyalım.


İlk olarak anahtar kelimemiz "bitmap"

Bitmap tıpkı int,string vs gibi bir değişken diyebiliriz.İçerisine aktardığınız görseli ufak piksellere bölen hazır bir komuttur.

Tanımlaması

Bitmap fotograf;
fotograf=new Bitmap(picturebox1.Image);

Yukarıda picturebox içerisindeki görseli fotograf değişkenimizin içerisine aktardık.

Programcılıkta bildiğiniz üzere bir proje hazırlarken ilk önce kağıt üzerinde işi çözmemiz gerekiyor burdan yola çıkarak bir fotoğrafı parçalarına böldük peki biz nasıl bunu siyah beyaz yapabiliriz ?

Elimizde biraz kalem birde fotoğraf olduğunu varsayalım fotoğrafın beyaz kısımlarına dokunmadan renkli kısımları siyaha boyarsak istediğimizi elde etmiş oluruz.
Bilgisayarda da aynı işlemi yapmamız gerekiyor .
Bu durumda biz fotoğrafımızı piksellerine bölmüştük ,bildiğiniz üzere ekranda renkler RGB formatında oluşturulur yani buda demek olurki renk değerlerini tespit etmemiz gerekiyor.

GetPixel(X,Y);

Bu hazır kod ile belirtiğimiz x vey  kordinatındaki pikselin renk değerlerini öğrenebiliyoruz.

Hazırlıyacağımız progamın işleyişini yazalım ;

Fotoğrafı al
Piksellerine böl
Renk değerlerini öğren
Değer ortalamasını al
Yeni fotoğrafı oluştur.



 foto = new Bitmap(pictureBox1.Image);
            for(int x=0;x<foto.Width;x++)
            {
                for(int y=0;y<foto.Height;y++)
                {
                    Color renkler = foto.GetPixel(x, y);
                    int ortalama = ( renkler.G + renkler.B) / 3;         
                    foto.SetPixel(x, y, Color.FromArgb(ortalama, ortalama,ortalama));
                }
            }
            pictureBox3.Image = foto;




Kısa ve öz .



Yorumlar

Bu blogdaki popüler yayınlar

Sımatıc Manager 1 Hardware configüration

Herkese Merhaba Bugünde sizlerle Sımatıc Manager programı ile S7-300 programlanması üzerine tartışacağız. Plc nedir ? Açılımı programlanabilir lojik yönetici tarif edebilceğimiz kontrol cihazları aklımıza gelir.Günümüz sanayisinde hemen hemen tüm kontrol sistemleri plc tarafından yönetilir. Plc'ler bir makinayı yönetebilmek için üzerlerinde giriş ve çıkış pinleri bulunmaktadır.Bunlardan girişler "I"(input) çıkışlar "Q"(output) olarak adlandırılır.Yani dışarıdan okunulabilcek tüm veriler ınput, dışarıya yorumlanarak(programlanarak) gönderilecek tüm veriler output olarak adlandırılır. Giriş ve çıkışlara örnek olarak ; Giriş: - Isı sensörleri -Nesne sensörleri -Butonlar -Acil stop Çıkışlar -Kontaktör -Motor -Valfler -Uyarı lambaları örnek verilebilir. Bunları bir fotoğraf ile taçlandırmak gerekirse ; Başlıca kullanılan plc markaları -Sıemens -Omron -Lg -Mitsubishi -Abb -Delta -Gemo örneklerini verebiliriz. Ben elimde...

Veri Tabanı Tanımlar

Temel nesne tanımları Bu yazımda veri tabanı hazırlarken karşımıza çıkabilecek kalıp nesnelerin tanımlamalarına değineceğiz. Data Base Bizim verilerimiz depolandığı   fiziksel   hafıza   alanlarına   verilen   addır. Verilerin   tutulduğu   dosyaların   uzantısı   “ .mdf “ şeklindedir. Table Türkçe   tanımı   tablo   olan   bu kavram   verileri,   satır   ve   sütunlardan   oluşan   yapısı   ile   bir   arada bulunduran   nesnedir. Resul Set Türkçesi   sonuç   kümesi   olan   bu   yapı   aslında    veri   tabanında   bizim   oluşturmadığımız   fakat   bir   sorgu   yaptığımız   durumda   SQL Server   tarafından   otomatik   oluşturulan   verilerin   sergilendiği   yeni bir   tablodur. Constrait Kısıtlayıcı ...

C# Dizi Gezme Ve Eleman Kontrolü (Mülakat Sorusu)

Herkese Merhaba Yazılım sektörüne yeni atılmış kişilerin kariyer hayatına başlamadan önceki son adım da yani mülakatta,  zaman zaman karşı tarafın pratik zekasını görebilmek için bir takım sorular sorulabiliyor. Örneğin biz bir iş görüşmesine gittik. Karşımıza gelen kişide bize ; " İçerisinde bizim tanımladığımız verileri saklıyan integer bir dizi vereceğiz.Bu dizi içerisinde, form arayüzünde ki textBox içerisine yazacağımız rakamı oluşturan dizinin iki farklı elemanını arıyacaksın. Yalnız bir şartımızda var. Dizideki hiç bir elmanı kendisi ile toplamayacaksın. Süren 5 dakika" şeklinde bir soru aldık. Şuanda hissediyorum beyinler nasıl yapabilirimin cevabını aramaya başladı o zaman bizde başlayalım. İlk olarak elimizde ki datalara bakalım. Girdiler : int [ ] rakamlar , integer bir sayı. Çıktılar : Dizinin iki elemanı. Bir akış diyagramı çizmek gerekirse yapılacak işlemler sırasıyla şunlardır: 1 İnteger dizi ve bool türde birer nesne oluşturup ilk atamalar...