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ı Tipleri

SQL NEDİR ? Türkçe tanım kullanmak gerekir ise “Yapılandırılmış Sorgulama   Dili “ şeklinde anlamsız bir tanım yapılabilir.Olayı daha basitleştirmek gerekirse Sql yapısını kafanızda   ilk okulda   yaptığımız ders   programlarına   benzetebilirisiniz.   O günlerde   yaptığımız işlemler   neydi ? Önce güne bakıyoruz   ardından   yan   sütununda ki derslere   göre çantamızı   hazırlıyoruz. İşte Sql de özünde bize bu yapıyı sağlıyor. Bir liste   halinde verilerimizi saklıyor ve bunları   ado.Net ile   mantıklı   birer veri haline   getirip   son   kullanıcıya   sunuyoruz. Veri tabanı türleri : Flat File Data Base Bu veri   tabanı   tek bir   tablo   ile   çalışıldığı   durumda   kullanılır . Tek   bir   tablonun   getirdiği    en öne çıkan sorun ise çok fazla sütuna sahip olmasıdır bu durum performans...

Sımatıc Manager 1.4 Comparator Kullanımı

Merhaba. Bu yazı da Comparator(Karşılaştırıcılar)’dan bahsedeceğiz. Comparator(Karşılaştırıcılar) adı üstünde karşılaştırma kontağıdır. Yani bir değerle bir değeri kıyaslar. Kullandığımız karşılaştırıcıya bağlı olarak eşitse(==), büyükse(>),  küçükse(<), büyük eşitse(>=), küçük eşitse(<=)  gibi iki değeri karşılaştırır. Bu karşılaştırmanın sonucu evet olduğu zaman ise çıkışını aktif eder. Mesela, bir sayıcı 4 saydığında bir şeyi aktif etmek istersek IN1 ‘e sayıcıda bulunan yardımcı alanımız IN2’de ise  4 yazarak bu işemi yapmış oluruz. Tabii bu durumda eşitse(==) karşılaştırıcımızı kullanmamız gerekir. Yukarıda comparator menüsünü görüyorsunuz. I=ınteger D=DoubleInteger R=Real’ı simgelemekte. Yukarıda ki resimde de gösterildiği gibi fare imleci ile IN1 veya IN2 üzerine geldiğimizde o alana hangi sayı sisteminde değer girmeliyiz onu görebiliriz. Karşılaştırıcılar  ile ilgi uygulamamız için video aşşağıdaki bağlantıda bulu...