You are on page 1of 2

#include <stdio.

h>
#define se_width 3 //structuring_element_width
#define se_height 3 //structuring_element_height
#define ci_width 16 //citra_input_width
#define ci_height 16 //citra_input_height
void printf_matrix(int matrix[16][16],int matrix_width, int matrix_height){
int i;
int j;
for(i=0;i<matrix_width;i++){
for(j=0;j<matrix_height;j++){
printf("%i ",matrix[i][j]);
}
printf("\n");
}
}
void dilasi(int citra_input[ci_width][ci_height], int structuring_element[se_wid
th][se_height]){
int i;
int j;
int m;
int n;
int status_dilasi=0;
int
int
int
int

min_index_width = se_width/2;
min_index_height = se_height/2;
max_index_width = ci_width-min_index_width;
max_index_height = ci_height-min_index_height;

//temp citra input


int temp_citra_input[ci_width][ci_height];
for(i=0;i<ci_width;i++){
for(j=0;j<ci_height;j++){
temp_citra_input[i][j]=0;
}
}
for(i=min_index_width;i<max_index_width;i++){
for(j=min_index_height;j<max_index_height;j++){
//compare se with citra input
status_dilasi=0;
for(m=0;m<se_width;m++){
for(n=0;n<se_height;n++){
if(citra_input[(i-min_index_width)+m][(j-min_index_height)+n
]!=2){
if(structuring_element[m][n]==citra_input[(i-min_index_w
idth)+m][(j-min_index_height)+n]){
status_dilasi=1;
break;
}
}
}
}
//set value
if(status_dilasi==1){
temp_citra_input[i][j]=1;
}
}
}

//copy from temp


for(i=0;i<ci_width;i++){
for(j=0;j<ci_height;j++){
citra_input[i][j]=temp_citra_input[i][j];
}
}
}
main(){
int structuring_element[se_width][se_height]={ 1,1,1,
1,1,1,
1,1,1};
int citra_input[ci_width][ci_height]={

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,
0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,
0,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,
0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

printf("citra sebelum dilasi\n");


printf_matrix(citra_input,ci_width,ci_height);
printf("citra setelah dilasi\n");
dilasi(citra_input,structuring_element);
printf_matrix(citra_input,ci_width,ci_height);
}

You might also like