İ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.]
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.]
001 | void 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 | } |
041 | void 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