*Sitemize Üye Olunca Elinize Ne Geçer?

<--- 1. Üye Olarak Linkleri Görebilirsiniz... --->

<--- 2. İstediğiniz Kadar Paylaşım Yapabilirsiniz... --->

<--- 3. Güzel Bir Forum Hayatı Yaşayabilirsiniz... --->


Join the forum, it's quick and easy


*Sitemize Üye Olunca Elinize Ne Geçer?

<--- 1. Üye Olarak Linkleri Görebilirsiniz... --->

<--- 2. İstediğiniz Kadar Paylaşım Yapabilirsiniz... --->

<--- 3. Güzel Bir Forum Hayatı Yaşayabilirsiniz... --->

Would you like to react to this message? Create an account in a few clicks or log in to continue.

● En Güncel Paylaşım Platformu ●

---Misafir--- Hos Geldiniz Daha iyi Bir Hizmet İçin Üye olunuz.ÜyeLer Link GörebiLir

3 posters

    C# ile Görüntü İşleme – 3

    MnyTirith
    MnyTirith
    ● Admin ●
    ● Admin ●


    <b>Doğum tarihi</b> Doğum tarihi : 20/06/90

    C# ile Görüntü İşleme – 3 Empty C# ile Görüntü İşleme – 3

    Mesaj tarafından MnyTirith Salı Mart 09, 2010 11:37 am

    İlk iki yazının ardından ( [Linkleri görebilmek için üye olun veya giriş yapın.][Linkleri görebilmek için üye olun veya giriş yapın.] ) sonunda üçüncü yazıyı da yazabildim. Bu yazıya
    sadece morfolojik filtreler kaldı. Diğer yazılara gelen yorumlardan
    sonra açıklamadan çok koda ihtiyaç olduğu anladım, onun için aşağıda
    genleşme (dilation) ve aşınma (erosion) işlemini yapan fonksiyonları
    bulacaksınız. Benim kullandığım genleşme ve aşınma maskeleri en basit
    olanları. Siz kendi maskelerinizi if koşulu içine yazarak dilediğiniz
    gibi kullanabilirsiniz.

    Eğer genleşme ve aşınma hakkında daha fazla bilgi istiyorsanız [Linkleri görebilmek için üye olun veya giriş yapın.][Linkleri görebilmek için üye olun veya giriş yapın.]
    bağlantılarını takip edebilirsiniz.

    view
    source

    [Linkleri görebilmek için üye olun veya giriş yapın.]

    001void Dilation()
    002{
    003 if (!dilationDone)
    004 {
    005
    006 dilationPixelArray = new
    int[imageWidth,
    imageHeight];
    007 for (int i = 1; i
    < imageWidth - 1; i++)
    008 {
    009 for
    (int
    j = 1; j < imageHeight - 1; j++)
    010 {
    011 if (binaryPixelArray[i,
    j] == 255)
    012 {
    013 dilationPixelArray[i - 1, j] = 255;
    014 dilationPixelArray[i, j - 1] = 255;
    015 dilationPixelArray[i, j + 1] = 255;
    016 dilationPixelArray[i + 1, j] = 255;
    017 }
    018 }
    019 }
    020 }
    021 else
    022 {
    023 int[,] tempArray = new int[imageWidth, imageHeight];
    024 Array.Copy(dilationPixelArray, tempArray, imageWidth *
    imageHeight);
    025 for (int i = 1; i
    < imageWidth - 1; i++)
    026 {
    027 for
    (int
    j = 1; j < imageHeight - 1; j++)
    028 {
    029 if (tempArray[i,
    j] == 255)
    030 {
    031 dilationPixelArray[i - 1, j] = 255;
    032 dilationPixelArray[i, j - 1] = 255;
    033 dilationPixelArray[i, j + 1] = 255;
    034 dilationPixelArray[i + 1, j] = 255;
    035 }
    036 }
    037 }
    038 }
    039
    040}
    041void Erosion()
    042{
    043 if (!erosionDone)
    044 {
    045 erosionPixelArray
    = new int[imageWidth, imageHeight];
    046 for (int i = 1; i
    < imageWidth - 1; i++)
    047 {
    048 for
    (int
    j = 1; j < imageHeight - 1; j++)
    049 {
    050 if (binaryPixelArray[i,
    j] == 255)
    051 {
    052 if (binaryPixelArray[i,
    j - 1] == 0 ||
    053 binaryPixelArray[i - 1, j] == 0 ||
    054 binaryPixelArray[i + 1, j] == 0 ||
    055 binaryPixelArray[i, j + 1] == 0
    056 )
    057 {
    058 erosionPixelArray[i - 1, j] = 0;
    059 erosionPixelArray[i, j - 1] = 0;
    060 erosionPixelArray[i, j + 1] = 0;
    061 erosionPixelArray[i + 1, j] = 0;
    062 erosionPixelArray[i, j] = 0;
    063 }
    064 else
    065 {
    066 erosionPixelArray[i, j] = binaryPixelArray[i, j];
    067 }
    068 }
    069 else
    070 {
    071 erosionPixelArray[i, j] = binaryPixelArray[i, j];
    072 }
    073 }
    074 }
    075 }
    076 else
    077 {
    078 int[,] tempArray = new int[imageWidth, imageHeight];
    079 Array.Copy(erosionPixelArray, tempArray, imageWidth *
    imageHeight);
    080 for (int i = 1; i
    < imageWidth - 1; i++)
    081 {
    082 for
    (int
    j = 1; j < imageHeight - 1; j++)
    083 {
    084 if (tempArray[i,
    j] == 255)
    085 {
    086 if (tempArray[i,
    j - 1] == 0 ||
    087 tempArray[i - 1, j] == 0 ||
    088 tempArray[i + 1, j] == 0 ||
    089 tempArray[i, j + 1] == 0
    090 )
    091 {
    092 erosionPixelArray[i - 1, j] = 0;
    093 erosionPixelArray[i, j - 1] = 0;
    094 erosionPixelArray[i, j + 1] = 0;
    095 erosionPixelArray[i + 1, j] = 0;
    096 erosionPixelArray[i, j] = 0;
    097 }
    098 else
    099 {
    100 erosionPixelArray[i, j] = tempArray[i, j];
    101 }
    102 }
    103 else
    104 {
    105 erosionPixelArray[i, j] = tempArray[i, j];
    106 }
    107 }
    108 }
    109 }
    110}


    En son TanriLar_OkuLu tarafından Perş. Mayıs 06, 2010 4:51 pm tarihinde değiştirildi, toplamda 1 kere değiştirildi
    MnyTirith
    MnyTirith
    ● Admin ●
    ● Admin ●


    <b>Doğum tarihi</b> Doğum tarihi : 20/06/90

    C# ile Görüntü İşleme – 3 Empty Geri: C# ile Görüntü İşleme – 3

    Mesaj tarafından MnyTirith Salı Mart 09, 2010 11:38 am

    Bundan önceki yazılardaki yapıyı kullandığınızı varsayarak yukarıdaki
    iki fonksiyonu aşağıdaki şekilde çağırmanız gerekli. Bu fonksiyonların
    yaptığı iş ise eğer resim ikili seviyeye indirgenmemişse (siyah-beyaz)
    önce bu işlemi yapmak. Tabii ikiliye çevirmek için herhangi bir eşik
    değeri belirlenmemişse otsu fonksiyonunu çağırarak önce bir eşik değeri
    hesaplatıyoruz. Binary fonksyionu ise 0-255 arasındaki parametreyi eşik
    değeri olarak kullanarak resmi ikili seviyeye indirgiyor, parametrenin
    256 olması ise otsu ile hesaplanan eşik değerini alması içindir.
    view
    source

    [Linkleri görebilmek için üye olun veya giriş yapın.]

    01public void
    ShowDilation()
    02{
    03 if (!dilationDone)
    04 {
    05 if (!binaryDone)
    06 {
    07 if
    (otsuValue == 0)
    08 Otsu();
    09 Binary(256);
    10 }
    11 Dilation();
    12 dilationDone = true;
    13 }
    14 else
    15 {
    16 Dilation();
    17 }
    18 SetImage(ref dilationPixelArray);
    19}
    20
    21public void
    ShowErosion()
    22{
    23 if (!erosionDone)
    24 {
    25 if (!binaryDone)
    26 {
    27 if
    (otsuValue == 0)
    28 Otsu();
    29 Binary(256);
    30 }
    31 Erosion();
    32 erosionDone = true;
    33 }
    34 else
    35 {
    36 Erosion();
    37 }
    38 SetImage(ref erosionPixelArray);
    39}
    avatar
    тнєαυℓєσηмσяαℓιтє``
    BanLı Üye
    BanLı Üye


    <b>Doğum tarihi</b> Doğum tarihi : 03/02/89

    C# ile Görüntü İşleme – 3 Empty Geri: C# ile Görüntü İşleme – 3

    Mesaj tarafından тнєαυℓєσηмσяαℓιтє`` Salı Mart 09, 2010 11:48 am

    emege saglık
    cyberl0caltake
    cyberl0caltake
    Yeni Üye
    Yeni Üye


    C# ile Görüntü İşleme – 3 Empty Geri: C# ile Görüntü İşleme – 3

    Mesaj tarafından cyberl0caltake Cuma Nis. 16, 2010 8:27 pm

    güzel paylaşım

      Forum Saati Paz Mayıs 19, 2024 9:32 am