Content uploaded by Eri Prasetyo
Author content
All content in this area was uploaded by Eri Prasetyo on Sep 12, 2017
Content may be subject to copyright.
Vol.
7
(201
7
) No.
1
ISSN: 2088
-
5334
Object Feature Extraction of Songket Image Using
Chain Code Algorithm
Yuhandri#, Sarifuddin Madenda*1, Eri Prasetyo Wibowo*2, Karmilasari*3
#Faculty of Computer Science, Universitas Putra Indonesia YPTK Padang, West Sumatera, 25221, Indonesia
E-mail: yuyu@upiyptk.ac.id
*Faculty of Computer Science, Gunadarma University, Jakarta, 16424, Indonesia
E-mail: 1sarif@staff.gunadarma.ac.id; 2eri@staff.gunadarma.ac.id; 3karmila@staff.gunadarma.ac.id
Abstract— The study was aimed at determining the feature of a motif found in a Songket image in order to make the object detectable
and readable. The method used was image color segmentation in the form of a process of segmentation of the image area based on the
similarity in colors, which was continued with the binary process that aims to change the image into binary form (0 and 1), so that it
only has two colors namely black and white. This study also used mathematical morphology in detecting objects, by using dilation
operation and filling holes. After the process of mathematical morphology was completed, the next process was motif extraction by
applying moore contour tracking algorithms and the development of chain code algorithms. The results of the process carried out
showed that the development chain code algorithm can generate the number of objects, the length of chain code, and probable value
of rate of appearances of each chain code in a motif, despite there are some objects in a motif. Then the values are stored into the
database as The Feature of Songket Motifs.
Keywords— songket; image color segmentation; binary; mathematical morphology; moore; chain code
I. INTRODUCTION
Image is one of four information contents in the
multimedia information technology which continues to
develop at this time. Therefore, image has been widely
applied in various fields. The needs for image processing can
be broadly divided into two spheres. First, sharpening or
improving the quality of information contained in the image
so that it can be interpreted correctly by the human eyes.
Second, the processing of image data for storage
requirements and transmission/ communication and to assist
in the conduct of machine perception autonomously based
on information features contained in the image [1]. Since we
have stepped into the digital era of modern technologies, a
lot of elements of our new computerized life demand various
interactions with the machines. To make them more human-
centric and useful, the machines have to be endowed with
vision capabilities [2].
This study was focused on the image of songket, starting
from capturing songket image, identifying the motifs
contained in the image of the songket, as in Fig. 1 that shows
the image of songket of West Sumatra with some motifs,
namely Baringin (1), Kali (2) and Cindawan (3), followed by
separating the motifs from the base color of the fabric up to
extracting the feature of the objects on each songket motif.
Feature extraction is, therefore, a useful tool for removing
irrelevant or redundant information and reducing feature
dimensionality. It makes the learning process more efficient,
reduces the chance of over-fitting, and improves the
generalizability of the model [3], [4], [5].
Fig. 1 Songket image
235
II. MATERIALS AND METHOD
This research proposes the development of chain code
algorithms in extracting songket motifs. The basic idea is
tracking the contours of the songket motif with moore
algorithms to obtain contours that have been arranged [6], so
that it can calculate the value of the chain, the length of the
chain value as well as the probability of each object
contained in every songket motif that serves as the
characteristics of a songket motif that then can be stored in a
database.
To build such a system, a research method that consists
of several steps, such as those in Fig. 2, is required. Thus,
this research consists of six stages.
Fig. 2 Stages of extracting system of songket objects
III. RESULT AND DISCUSSION
A. Songket Image
Songket Image in this study is a photo taken at
Silungkang Art Center Padang by using a Cannon EOS 7D
camera. New cameras such as the Canon EOS 7D and
pointgrey Grasshopper have 14-bit sensors [7]. Photos are
examples of two-dimensional images that can be processed
easily. Photos in the form of digital images (eg, derived from
a digital camera) can be processed by using a specific
software [6]. The original image was used as input data.
Each image is in a file format * .png. All of the tested
images are colorful songket images with pixel dimensions
that have a size of 1080 x 1350 pixels. There were as many
as 10 images and 21 different motifs. The aim was to unify
the dimensions of the tested images. The image of this
songket has been analyzed by songket experts to determine
the names and positions of the motifs contained therein.
B. Image Color Segmentation Process
Image segmentation is a fundamental but challenging
problem in computer vision, and it refers to dividing the
input image into many disjoint subsets such that each one is
corresponding to a meaningful region. It is a crucial step in
many applications, such as object recognition, image editing,
medical image processing and so on [8].
Image segmentation involves the identification of regions
of interest, which generally are an object or a part in a digital
image. Each region must maximise the homogeneity of its
pixels features (colour, texture) and simultaneously
maximise the differences with neighbouring regions [9].
The segmentation process was carried out by using a
measurement model of similarity (similarity of colors) and
the technique of value limit threshold (threshold). Songket
image functioned as the input image, in RGB format, and
then the determination of threshold value was done followed
by the measurement of range of colors using RGB. The color
range for RGB color space was mathematically denoted in
equations 1 and 2.
(1)
(2)
The results of the segmentation process are in the form of
a binary image (as shown in fig. 3).
(a) (b)
Fig. 3 (a) Songket original image, (b) Image segmentation result
The algorithms performed in the process of segmentation are
as follows:
C. Binarization Process
Some of the image processing refers to a binary image.
For example, by using a binary image, the ratio of length and
width of the object can be obtained. The binary image is part
Algorithm 1. Color Image Segmentation
1. Read the image of songket by
Im=double(imread('image_songket.png')
2.
Read the position of the pixel color.
p=impoint(gca,[]),
p=wait(p), x=round(p(1,1)) , y=round(p(1,2))
3. Determine the threshold limit values
(threshold) = 100
4. Determine the reference colors namely RGB colors
RGB=Im(y,x,:)
5. Calculate the RGB color distances
dR=(RGB(1,1,1)-Im(i,j,1))^2;
dG=(RGB(1,1,2)-Im(i,j,2))^2;
dB=(RGB(1,1,3)-Im(i,j,3))^2;
6. Separate the objects from the background
cit_hasilRGB(i,j,:)= Im(i,j,:)
7. Save the images
imwrite(cit_hasilRGB,'image_segmentasi.png')
236
gray-level image which has two grays, a value of 0 for black
and 1 for white, so that each pixel of the binary image is
always coded by 1.
The binary image resulting from the convertion to black
and white mode will be re-processed to detect the location of
the regarded objects by eliminating small pixels.
Bwareaopen- Morphologically open binary image (remove
small objects). It removes from a binary image all connected
components (objects) that have fewer than P pixels.
Meanwhile, the resulting binary image in another form i.e.
BW2. The default value of 4 and 8 connected neighborhood
for 2 dimension, and the default value of 6, 8 and 26
connected neighborhood for 3 dimension. In addition, for
higher dimensions can use condef(ndim (BW),’maximal’)
[10].
(a) (b)
Fig. 4 (a) The image of a binary outcome, (b) Binary image that has gone
through little object removal process
D. Cropping Process
The process of cropping is required in an image
processing; there are some parts of an image that are not
needed in the processing, it can be disposed of by cropping,
cropping can be done in various ways, ranging from
cropping manually to using available applications / software
such as photoshop and many more.
(a) (b) (c) (d)
Fig. 5 a. The binary image cleaning results, b, c, d. Motifs as the cropping
results
E. Detection Of Object By Using Mathematical
Mophology
Mathematical morphology can be used as an image edge
detection algorithm. Morphological methods selected in this
stage is the process of morphological dilation and filing
holes. The flowchart of mathematical morphology processes
carried out can be seen in Fig. 6.
Fig. 6 Stages of detecting objects
Mathematical morphology is an approach based on
topology and geometric shapes to perform analysis on the
image and has become a very useful tool to extract structures
and geometry shapes in many applications [11].
Morphological operation is a common operation applied to
binary images (black and white) to change the structure of
the shape of objects contained in the image.
Other than being applied to the binary image, actually,
morphological operations can also be subjected to the image
gray level [12]. Two basic operations in the process of
mathematical morphology are dilation and erosion. To
understand the morphological operations, an understanding
of set operations such as joint and intersection is absolutely
necessary [13].
Dilation operation is one of the bases of morphology
processing. Dilation is the operation of “lengthening” or
“thickening” in the binary image. This special way and the
extent of thickening are controlled by structural elements.
Mathematically, dilation is defined as a set operation. A is
dilated by B, written as A⊕B, is defined as [10], [14]-[16].
(3)
On the morphological reconstruction, each application is
determined by the marker and the mask image. For example,
suppose selected image is fm, and what to do is to make 0 in
Algorithm 2. Binarization
1. Read the image resulting from segmentation process
cit_hasilRGB=imread('image_segmentasi.png')
2. Using im2bw function, change the image from
grayscale to binary form by using the graythresh
function
gray = rgb2gray(cit_hasilRGB);
thresh=graythresh(Gray);
biner =im2bw(Gray,thresh);
3. View the image of the binarization
imshow(Biner)
4. Save the image of the binarization
imwrite(Biner,'image_biner.png');
5. Eliminate noise in the binary image with Function
BW2 = bwareaopen(BW,P)
6. View the binary image
imshow(BW2);
7. Save the image yielded after noise cleaning
imwrite(BW2,'image_cleaning.png');
237
every place except the image border, where the position is
set to 1 – f [16], can be seen in Equation 4.
(4)
g = [Rfc(fm)]c has the effect of filling the hole in f. The
function used to perform the computation of the filling of the
hole is imfill function with optional arguments 'holes' [16].
Results of mathematical morphology process (shown in Fig.
7).
(a)
(b)
Fig. 7 (a) Motif resulted from dilation, (b) Motif resulted from imfill
Object detection algorithms with the process of
mathematical morphology.
F. Extraction of Motifs
Inbound Tracing obtains contours that have been
arranged using moore contour tracking algorithm [6].
(5)
Fig. 8 Results from moore contour tracking
Chain code is the method used to represent objects that
otherwise limits the chain direction [17]. To make it easier to
get the chain code of the pixels neighboring a pixel, need to
manufacture index can be calculated by equation 6.
(6)
∆x expresses the different value of two neighboring pixel
columns and ∆y expresses the different value of lines of two
neighboring pixels [6].
Furthermore, calculate the rate of appearance of each 0-7,
calculate the length of the value chain, calculate the
probability level of appearance, all following the formula
below.
(7)
Algorithm 3. Object Detection Algorithm
1. Read the songket motifs resulting from the cropping
MP=imread('motif_cropping.png');
2. Show the songket motifs resulting from the cropping
imshow(MP);
3. For morphological dilation, Use imdilate function in
matlab twice
B=[1 1 1;1 1 1;1 1 1];
Dilasi1=imdilate(MP,B);
Dilasi2=imdilate(Dilasi1,B);
4. Check the rmotifs resulting from the morphological
dilation imshow(Dilasi2);
5. Save the morphological dilation result
imwrite(Dilasi2,'motif_dilasi.png');
6. Carry out filling holes with imfill function to the
results of morphological dilation
j1=imfill(i1,'hole');
7. View the motif resulting from filling holes
imshow(j1);
8. Save the filling holes results
imwrite(j1,'motif_imfill.png')
Algorithm 4. Motifs Extraction Algorithm
1. Read songket motifs resulting from object detection.
c=imread('motif_imfill.png');
2. Moore algorithm for contour tracking to find arranged
contour.
cc=inbound_tracing(bw);
3. Chain code algorith to find starting point (x,y) chain
code from the contour of each object
[kode,x,y]=chain_code(cc);
xbegin = U(1,2);
ybegin = U(1,1);
chain_kode = '';
for p=2: length(U)
deltay = U(p, 1) - U(p-1, 1);
deltax = U(p, 2) - U(p-1, 2);
indeks = 3 * deltay + deltax + 5;
chain_code = strcat(chain_code, code(indeks));
end
4. Calculate frequency level od each appearance 0 - 7,
calculate the length of chain value, calculate the
probability of appearance level
238
This motif extraction yields a number of objects contained
in a motif, the value of the appearance of each level 0-7
(chain value), chain length, and the value of the probability
of the chain value, the results can be seen in Fig. 7 and Table
1.
0000070700007676667000070100000007700007006676666
6665777100000000000000000766766666667670700000100
0070700000076666664444544544444454444235566666556
5444445444445444444565666666544444456444444444444
5444434443235667766666666664444434444434222221212
2223566444444444444444444444444444422223322222333
4444454444454444342233232233544444442344444444423
3222221000007000010000000012212222221010110000000
7001000122222222121212222200000700000000000711222
121100007010
Fig. 7 The chain code of saik kalamai motif
TABLE I
YIELDED VALUES OF MOTIFS EXTRACTION PROCESS
Motif
Names Number
of
objects
Chains
Chain
Values Change
Length Probability
Values
Baringin
(Banyan)
2
0
806
3500
0.2303
1
193 0.0551
2
551 0.1574
3
164 0.0469
4
878 0.2509
5
138 0.0394
6
589 0.1683
7
181 0.0517
0
24
98
0.2449
1
5 0.0510
2
12 0.1224
3
7 0.0714
4
25 0.2551
5
3 0.0306
6
18 0.1837
7
4 0.0408
Kali
(Streams)
1
0
363
2024
0.1793
1
96 0.0474
2
345 0.1705
3
88 0.0435
4
603 0.2979
5
77 0.0380
6
364 0.1798
7
88 0.0435
Cindawan
(Fungi)
1
0
185
797
0.2321
1
34 0.0427
2
138 0.1731
3
33 0.0414
4
200 0.2509
5
26 0.0326
6
143 0.1794
7
38 0.0477
Pucuk
Rabuang
Kociak
(Top of
little
bamboosh
oot)
1
0
51
439
0.1162
1
15 0.0342
2
139 0.3166
3
17 0.0387
4
44 0.1002
5
16 0.0364
6
146 0.3326
7
11 0,0251
Bintang
Kociak
(Little
Stars)
1
0
207
1089
0.1901
1
32 0.0294
2
264 0.2424
3
56 0.0514
4
177 0.1625
5
42 0.0386
6
277 0.2544
7
34 0.0312
Anyaman
(plaited
mats)
1
0
142
949
0.1496
1
45 0.0474
2
227 0.2392
3
60 0.0632
4
142 0.1496
5
42 0.0443
6
236 0.2487
7
55 0.0580
Pucuak
Rabuang
(Top of
bamboosh
oot)
4
0
61
331
0.1843
1
6 0.0181
2
85 0.2568
3
15 0.0453
4
58 0.1752
5
7 0.0211
6
86 0.2598
7
13 0.0393
0
34
247
0.1377
1
8 0.0324
2
72 0.2915
3
10 0.0405
4
33 0.1336
5
10 0.0405
6
69 0.2794
prob (1,1:8) = 0;
k = 1;
count = 0;
length(kode)
for i = 1 : length(kode)
Num=str2num(kode(i));
if (Num<=7) && i<length(kode)
prob(k,Num+1) = prob(k,Num+1)+1;
count = count + 1;
else
count
prob(k,1:8) = prob(k,1:8)/count
count = 0;
k = k + 1;
prob (k,1:8) = 0;
end
end
5. Save the value of each process
239
7
11 0.0445
0
645
3648
0.1768
1
134 0.0367
2
895 0.2453
3
185 0.0507
4
575 0.1576
5
155 0.0425
6
923 0.2530
7
136 0.0373
0
58
315
0.1841
1
13 0.0413
2
81 0.2571
3
7 0.0222
4
53 0.1683
5
17 0.0540
6
80 0.2540
7
6 0.0190
Gonjong
1
0
393
1773
0.2217
1
92 0.0519
2
309 0.1743
3
79 0.0446
4
418 0.2358
5
67 0.0378
6
336 0.1895
7
79 0.0446
Saik
Kalamai
1
0
115
453
0.2539
1
24 0.0530
2
60 0.1325
3
21 0.0464
4
127 0.2804
5
21 0.0464
6
57 0.1258
7
28 0.0618
Marmar
(Marble)
1
0
126
597
0.2111
1
25 0.0419
2
120 0.2010
3
26 0.0436
4
127 0.2127
5
23 0.0385
6
126 0.2111
7
24 0.0402
Mahkota
Bungo
(Crown of
flowers)
3
0
171
1002
0.1707
1
42 0.0419
2
223 0.2226
3
58 0.0579
4
185 0.1846
5
53 0.0529
6
224 0.2236
7
46 0.0459
0
176
911
0.1932
1
50 0.0549
2
173 0.1899
3
58 0.0637
4
173 0.1899
5
48 0.0527
6
180 0.1976
7
53 0.0582
0
522
2696
0.1936
1
135 0.0501
2
555 0.2059
3
146 0.0542
4
501 0.1858
5
161 0.0597
6
527 0.1955
7
149 0.0553
Tabuik
2
0
53
230
0.2304
1
8 0.0348
2
45 0.1957
3
11 0.0478
4
49 0.2130
5
11 0.0478
6
43 0.1870
7
10 0.0435
0
1078
4692
0.2295
1
168 0.0358
2
909 0.1937
3
230 0.0490
4
1000 0.2131
5
223 0.0475
6
879 0.1873
7
206 0.0439
Ubur-ubur
(jellyfish)
1
0
429
1875
0.2288
1
102 0.0544
2
292 0.1557
3
99 0.0528
4
458 0.2443
5
81 0.0432
6
308 0.1643
7
106 0.0565
IV. CONCLUSIONS
In a songket there are various motifs therein. This
research was conducted by processing the image by
separating one songket motif and other motifs so that traits
characteristics of a motif can be acquired in order to be
easily recognizable and readable by the computer.
Mechanisms used in this study utilizes algorithms that are
well known in the image processing such as color image
segmentation, binarization, cropping, object detection with
mathematical morphology, moore contour tracking
algorithms, as well as developing algorithms chain code. The
advantage of the development of algorithms that has been
doneis that it can determine the value chain, the length of the
value chain as well as the probability of each value chain,
despite that there are some objects in a motif. The entire
value is stored in the database as feature/characteristics of
songket motifs that can be used for the retrieval process.
ACKNOWLEDGMENT
We would like to thank Silungkang Art Center Padang for
allowing capture images songket and usage data.
Furthermore, we would also like to thank the songket
craftsmen who have helped in the analysis of the imagery
240
used to determine the names and positions of the motif
contained within the image songket.
REFERENCES
[1] Madenda, S, Pengolahan Citra & Video Digital, Penerbit Erlangga,
Jakarta, 2015.
[2] Karczmarek, Pawe, Kiersztyn, Adam, Pedrycz, Witold and Rutka,
Przemys ,”Chain Code-Based Local Descriptor for Face
Recognition,” Proceedings of the 9th International Conference on
Computer Recognition Systems CORES 2015, paper. 403 , p. 307
[3] Y. Luo and Y. Wen and D. Tao and J. Gui and C. Xu, “Large Margin
Multi-Modal Multi-Task Feature Extraction for Image
Classification,” IEEE Transactions on Image Processing, vol. 25 , pp.
414-427, Jan. 2016
[4] F. Nie, H. Huang, X. Cai, and C. H. Ding, “Efficient and robust
feature selection via joint l2,1-norms minimization,” in Proc. Adv.
Neural Inf. Process. Syst.,, 2010, paper 3998 , p. 1813.
[5] Z. Li, Y. Yang, J. Liu, X., Zhou, and H. Lu, “Unsupervised feature
selection using nonnegative spectral analysis,” in Proc. 26th AAAI
Conf. Artif. Intell, 2012, paper 4955, p. 1026.
[6] Kadir A. and Susanto A, Pengolahan Citra Teori dan Aplikasi, Andi,
Yogyakarta, 2013
[7] L. Zhang and A. Deshpande and X. Chen, “Denoising vs. deblurring:
HDR imaging techniques using moving cameras”, in Proc. IEEE
Computer Society Conference on Computer Vision and Pattern
Recognition, 2010, p. 522.
[8] R. Dong, B. Wang, S. Li and Z. Zhou, S. Li, and Z. Wang,
"Interactive image segmentation with color and texture information
by region merging,” in Proc. Chinese Control and Decision
Conference (CCDC), 2016, p. 777.
[9] G. Scheleyer, C. Cubillos, G. Lefranc, R. Osorio-Comparán and G.
Millán, "A new Colour Image Segmentation,” in Proc. International
Conference on Computers Communications and Control (ICCCC),
2016, p. 232.
[10] N. Senthilkumaran, J. Thimmiaraja, "An Illustrative Analysis of
Mathematical Morphology Operations for MRI Brain Images,”
International Journal of Computer Science and Information
Technologies, vol. 5, pp. 2684-2688, May 2014.
[11] Costa L.F. and Cesar R.M, Shape Analysis and Classification Theory
and Practice, Florida: CRC Press LLC, 2001.
[12] Patra J., Moulick H.N. and Manna A.K, “Biomedical Image
Processing with Morphology and Segmentation Methods for Medical
Image Analysis,” American Journal of Engineering Research
(AJER), vol. 02, pp. 227-244, 2013.
[13] Amalorpayam G., Naik H.T., Kumari J. and Suresha M, “Analysis Of
Digital Images Using Morphological Operations,” International
Journal of Computer Science & Information Technology (IJCSIT),
vol. 5 , pp. 145-159, Feb. 2013
14] Na`am, Jufriadif, Harlan, Johan, Madenda, Sarifuddin and Wibowo,
Eri Prasetio, "Identification of the Proximal Caries of Dental X-Ray
Image with Multiple Morphology Gradient Method,” International
Journal on Advanced Science, Engineering and Information
Technology, vol. 6, pp. 345-348, 2016.
[15] Zhao Fang, Ma Yulei, Zhang Junpeng, “Medical Image Processing
Based on Mathematical Morphology,” in proc. International
Conference on Computer Application and System Modeling
(ICCASM), 2012, p. 948.
[16] Prasetyo, E, Pengolahan Citra Digital dan Aplikasinya Menggunakan
Matlab, Penerbit Andi Yogyakarta, 2011.
[17] Gonzales, R. C, & Woods, R. E., Digital Image Processing : Third
Edition. Pearson International Edition, 2002.
241