Image Processing Using VHDL
Image Processing Using VHDL
HARDWARE IMPLEMENTATION
6.1 FPGA
The software code is equipped with a field-programmable gate array (FPGA). FPGA
is an integrated circuit which can be designed and deployed after configuring it to the
requirements of the developers. After manufacturing the field programmable gate array, the
IC is deployed in the real time applications with great ease. The configuration is declared
using hardware description language (HDL) which is specific to ICs, and configurations for
the applications are performed using an application-specific integrated circuit (ASIC). Huge
number logic gates and RAM blocks are used to build the Contemporary circuits with FPGAs
to enable them to perform complex digital computations. FPGA designed architectures are
built withswift IOs and bidirectional data buses, the system is expected to verify correct
timing of data and time validityalong with setup time and hold time. FPGA is backed up with
floor planning activities which enables resources allocation to adhere to these time
constraints. FPGAs can be deployed as an alternative used to apply any logical function
which can be implemented with ASIC.The benefits of FPGA range with an ability to
reconfigure the functionality after deployment, minimal re-configuration of a particular
segment of the design andcheaper non-recurring engineering costs associated with an ASIC
design, and much more with respect to design and implementations.
FPGA is fundamentally built with programmable logic components known as “logic
blocks”. These blocks constitute a hierarchy of reconfigurable interconnects to compose
different logic blocks to be “wired together”. Many designs are changed with adding or
removing changeable logic gatesin different configurations with simplicity. Logic blocks
from simple AND, OR, XOR gates performing simple mathematical operations to complex
combinational functions. In most FPGAs, memory blocks made with flip flops or even higher
configurations are merged together to increase the functionality.
FPGAs are enabled with the combined functionalities of analog features and digital
functions together with some designated variants. Programmable slew rate and drive strength
are available on every output pin, which permits the developers to define slow rates on lightly
loaded pins to preserve overloads causing the unaccepted rings. The extended design of
FPGAs can be implemented toset stronger, quicker rates when pins are heavily allocated over
high-speed channels, these channels will be comparatively slower in usual cases if they
would not have been defined accordingly. A relatively general features with analog attributes
arethe differential comparators implemented on input pins. These pins are usually designed to
connect with multiple differential signaling channels.Digital signal processing, digital image
processing, prototyping, software-defined ratio, ASIC prototyping, medical image analytics,
computer vision, speech recognition, cryptography, biomedical and bioinformatics, computer
hardware emulation, radio astronomy, metal detection are some of the applications of FPGA
and they are extensively researched in many other domains.
6.1.1 FPGA ARCHITECTURE
The core and programmable functional elements of FPGA architecture are described as
follows:
Configurable Logic Blocks (CLBs) are known as look up tables which functions like
Random Access Memories to store and order the instructions for executions. Flip flops or
latches constitute the CLB components. CLBs are capable of executing a diverse range of
logical functions beyond storing and retrieving data.Based on the functionality of FPGAs,
they can be grouped into either category being fine grained or coarse grained.Fine grained FPGAs
are built with transistors, includes a couple of logic gates,3-input LUT. On the other hand, more
complex units define the functional elements of a coarse grained FPGA such as a 4-input LUT to
implement better operations compared to that of a fine grained FPGA.
Input/ Output Blocks (IOBs) are responsible for controlling the input and output pins
and thus regulate the flow of data between these pins. The internal logic of the devices is
also monitored with IOBs. Bidirectional data flow along with threestately operations are
facilitated by IOB supports. Such supports are used to monitor the operations of various
signal standards, subjecting four high-performance standards, Double Data-Rate (DDR)
registers.
Block RAMutilizes 18-Kbit dual- port blocks for facilitating data storage.
Interconnect defines the interface of a hub of between the inputs and outputs, with other
functional elements alongside the FPGA, such as IOBs, CLBs, DCMs, and block RAM.
Interconnect can also function as routing, and segmentation is performed for optimal
connectivity between different components of FPGA.
6.3 MICROBLAZE
The microprocessors available for use in Xilinx Field Programmable Gate Arrays
(FPGAs) with Xilinx EDK software tools can be broken down into two broad categories.
There are soft-core microprocessors (MicroBlaze) and the hard-core embedded
microprocessor (PowerPC).Soft-core MicroBlaze microprocessor, is present in most of the
Spartan-II, Spartan-3 and Virtex FPGA families. The hard-core embedded microprocessor
mentioned is an IBM PowerPC 405 processor, which is only available in the Virtex-II Pro
and Virtex-4 FX FPGA’s.The MicroBlaze is a virtual microprocessor that is built by
combining blocks of code called cores inside a Xilinx Field Programmable Gate Array
(FPGA). The user can also tailor the project according to his or her specific needs (for
example Flash, UART, General Purpose Input/Output peripherals and etc.).Soft core
processors are more flexible than hard core processors.Because MicroBlaze is a soft-core
microprocessor, any optional features not used will not be implemented and will not take up
any of the FPGAs resources.
MicroBlaze processor present in the FPGA is as depicted:
Figure 6.2- Microblaze Based Embedded Processor in a FPGA
MicroBlaze is a load/store type of processor meaning that it can only load/store data
from/to memory. It cannot do any operations on data in memory directly; instead the data in
memory must be brought inside the MicroBlaze processor and placed into the general-
purpose registers to do any operations. Both instruction and data interfaces of MicroBlaze are
32 bit wide and uses big-endian, bit-reversed format to represent data.
In general, while making use of a FPGA embedded processor the following two
memories should be taken into consideration:
Local Memory
The local memory provides the fastest option in accessing memory. Xilinx FPGA
local memory is made up of large FPGA memory blocks called BlockRAM (BRAM). The
Block RAM (BRAM) is a configurable memory module that attaches to a variety of BRAM
Interface Controllers.The Block RAM controllers for MicroBlaze include
–PLB block RAM controller (xps_bram_if_cntlr)
–OPB block RAM controller (opb_bram_if_cntlr)
–LMB block RAM controller (lmb_bram_if_cntlr)
The BRAM Block structural HDL is generated by the Embedded Development Kit
(EDK) design tools based on the configuration of the BRAM interface controller IP. All
BRAM Block parameters are automatically calculated and assigned by the EDK tools Platgen
and Simgen.
Embedded processor accesses BRAM in a single bus cycle.Since the processor and
the bus run at the same frequency in MicroBlaze, instructions stored in BRAM are executed
at the full MicroBlaze processor frequency.
External Memory
Xilinx FPGAs provides several memory controllers that interface with a variety of
external memory devices. These memory controllers are connected to the processor’s
peripheral bus. The three types of volatile memory are supported by Xilinx FPGAs are static
RAM (SRAM), single-data-rate RAM (SDRAM), and the double-data-rate RAM (DDR)
SRAM. The SRAM controller is the smallest and simplest inside the FPGA while the
SDRAM is the most expensive of the three memory types. The DDR SDRAM controller is
the largest and most expensive inside the FPGA, but requires fewer FPGA input-output (I/O)
ports and is least expensive per megabyte.
The Microblaze processor has up to three interfaces for memory accesses:
Local Memory Bus (LMB)
IBM’s Processor Local Bus (PLB) or On-chip Peripheral Bus (OPB)
Xilinx CacheLink (XCL)
The MicroBlaze processor has a 32-bit LMB that provides single-cycle access to on-
chip dual-port block RAM (BRAM) and is split into instruction-side LMB and data-side
LMB. The OPB interface provides a connection to both on-chip and off-chip peripherals and
memory.The MicroBlaze processor includes a tightly coupled, off-chip Flash/SRAM/DDR2
memory controller interface. The CacheLink interface is intended for use with specialized
external memory controllers.The LMB memory address range must not overlap with PLB,
OPB or XCL ranges.
MicroBlaze is a system which is established with 8 Fast Simplex Link (FSL) ports,
FSL interface are categorized into master and slave ports. The FSL is proven to be minimal
but powerful interface with point-to-point accessibility. The interface is connected with user
components, hardware accelerators co-processors to the MicroBlaze and hence the processes
are pipelined to limit the time taken for processing algorithms. Certain algorithms cannot be
consuming higher time and hence optimized with MicroBlaze systems.
The MicroBlaze implements a stack based convention to operate from a
greatermemory location and reduced downward to lower memory locations. The items are
stored one over the other as the storage mechanism is implemented with stacksand a
function call. The elements are pushed on top of stack and items are popped off the stack
from the top. The elements are accessed on the reverse order, the order in which they were
added. The MicroBlaze processor is constituted with a number of special purpose registers
namely Program Counter (PC) to store the list of instructions in the order of executions, the
order cannot bewritten but only read. The next register is the Machine Status Register (MSR)
which holds the status of processor represented by the operations like indicating arithmetic
carry, divide by zero error, a Fast Simplex Link (FSL) error and enabling/disabling interrupts
to name a few. The purpose ofan Exception Address Register (EAR) is to store the complete
addresses that resulted in an exception. An indication of the type of exception occurred is
also noted in the register. The next register is to identify the invalid operations such
asinvalid operation, divide by zero error, overflow, underflow and
denormalized operand errorand named to be Floating Point Status Register (FSR).
EDK Interface
Writing a software code to control the MicroBlaze processor accepts only the C/C++
programming language. Since the possible method is implementing C/C++ programs, it is
also known to be a standard language for programming with hardware. Known to be a
preferred method by most people, the format that the Xilinx Embedded Development Kit
(EDK) software tools expects as the default programming language. Necessary compilers of
C/C++ are in built within the EDK tools to translate the given code into necessary machine
code to be understood by the MicroBlaze processor.The MicroBlaze processor is simply a
processor which can work only with supporting peripherals and EDKs. Without the
supporting toolkits, the functions are almost zero. The On-chip Peripheral Bus (OPB) and/or
Processor Local Bus (PLB) are the supporting toolkits which are used to connect with
processor system developed by EDK. This defines the necessity of the custom peripherals
and its needs to be either of OPB or PLB compliance. The system denotes that the top-
level module must contain a set of bus ports adhering to the variants of OPB or PLB protocol
in order to accustom to newly defined peripherals. The system can ensure that they can
beapplied with systematic approach using the OPB or PLB bus.
The XPS is assisted with multiple labels in the main window, identifying the following areas
as shown in the Figure 6.6
1. Connectivity Panel (4)
2. View Buttons (5)
3. Filters Pane (6)
When a new XPS project is to be created, the Base System Builder is prepared and
invoked for facilitating the build operations. The Base System Builder (BSB) defines the
usage and implementation of prerequisite hardware and software components necessary for
configuration tasks which are generic to most processor designs. If the user intends to
utilizeone among the sustained embedded processor development boards available in the list
of machinesin Xilinx, the BSB furnishes the list of peripherals available on that board, for the
end users to opt and automatically match them with the FPGA pinout with the board. This
selection will in turn, create a completed platform. The completed and tested application will
soon be downloaded and executed on the board. If the user develops a new design with a
customized model over a custom board, the BSB still permits the user to select and
interconnect the new components with existing processor cores. The newly formed model
with a variety of compatible peripheral cores from the library can be derived and achieved
better outcomes based on the applications. The users are provided with a list of hardware
platforms as the commencing point of the solution to be built with processors and peripherals
and new components if needed, where the custom peripherals can also be implemented using
the tools provided in XPS.
BSB allows the users to configure their applications with options to select from the
following system attributes:
Intended Processor type either MicroBlaze or PowerPC, based on the FPGA
device to be implemented
Clock frequencies of reference and processor-bus
Default buses
List of Peripherals
Cache blocks
Type and size of Memory block
Common peripherals
When embedded processor development boards is decided and development
commences, BSB lists the possible peripherals which can be connected with control off-chip
devices. These devices are furnished to accommodate the new features defined by the users
provided on the board. The peripherals which are not preferred by the users are removed from
the entire system to limit the functionalities and reduce the usage of FPGA.
The BSB is furnished with the following board-specific services:
On-board FPGA selection
Selection of clock
Selection of on-board oscillators
Reset polarity definitions
Definition of FPGA pinout to adhere to the board connections, for the
preferred components
A functional default values are pre-defined in XPS for every valued option available
in the architecture. Microprocessor Hardware Specification (MHS) file is generated and
uploaded into the XPS project during the initializations.One or multiple software
contributions are generated by the BSB Wizard, every individual application denotes a
sample fully functional software with its equivalent script. All such coding scripts will be
compiled and executed on a hardware designated with a target development board.
The flow of communication between the hardware components is shown in figure 6.6
Figure 6.6 – Hardware Flow []
Bus Layout
List of Peripherals
Processor Configurations
Connectivity within the system
The MHS file is usually an automatically generated text file with potential
information about the IO Port declarations, peripherals like memory blocks, Microblaze port
connections, bus organization and parameters, Local Memory Bus/On-chip Peripheral Bus
and Bus specifications.
i) Hardware components
ii) List of Netlist docs
iii) List of downstream toolkits
iv) Wrappers of HDL
Xilinx Implementation Flow is used for batch mode place and route.
6.6.1.3Software Flow
Once the hardware components and their functionalities are defined in the system,
control flow, software flow and intercommunications are defined. It is to be noted that
software communication is independent of the hardware flow.The software flow is illustrated
in figure 6.7.
6.6.1.3.2 LibGen
Libgen is the short form for libraries and generations which is composed of various
libraries, drivers for various devices, files and their systems / structures, finally interrupt
handlers. On the whole the grouping is performed for generating a software platform for the
embedded processor system. The definition of a software platform indicates the connectivity
of each processor with its necessary drivers needed for accessing the peripherals, connect
with hardware components namely the board support package, required libraries, standard
input and output devices, interrupt handler routines, and other related software features.
Libgen understands the MSS and MHS components as its primary design inputs. Depending
on the software description files and libraries, Libgen controls the EDK libraries and other
processor core (pcore) with Microprocessor Driver Definition (MDD) and driver code) from
the EDK library and any user IP repository. LibGen configures libraries and device drivers. It
creates
i. Xparameters.h defines the list of files required for driver installations.
ii. libc.a, libm.a, libxil.a: defines the set of libraries which can be accessed by
the processor.
6.6.1.3.3 Compiler
GNU compiler tools are meant for compiling, interpreting and linking the program on
the processors to enable the execution. All user written programs are compiled in all cases,
checked for errors and hence it becomes a mandatory process during the execution.
Compilers are usually different according to the level of processors.
1. MicroBlaze processor utilizes the mb-gcc compiler.
2. Power PC processors utilizes the powerpc-eabi-gcc compilers.
3. XPS can accommodate GNU compiler for MicroBlaze.
6.6.1.3.3.1 Object-File Sections
An executable file takes the input sections from the users, concatenate them with the
object files (.o files) which have to be linked together in further execution stages. The
compiler, as the name intends, translates the code in a machine understandable format and
creates coding components to fit into proper and standard subjects. The following figure
illustrates the sectional layout of an object or an executable file.
Figure 6.8 –Sectional Layout of an Object or Executable File []
Figure 6.9- XPS and EDK Leading to FPGA Configuration with components, links
and control flows
6.7 VISUAL BASIC 6.0
Figure6.10 – Logo of Visual Basic
Visual Basicis a comprehensive framework assisting users to build windows based
applications with convenient Graphic User Interface –GUI. The applications tend to possess
user-friendly appearances to the users. Visual Basic framework is based on events, indicating
that the code remains inactive until the users trigger an activity on the windows. The common
events are clicking by a mouse (left click, right click and scrolling functions) or keyboard
events. Visual Basic is operable through an event processor which allows the system to
respond with actions whenever an event is detected. The actual process code is executed only
when the corresponding event is triggered by the users. After the code is executed, the
Program control is returned to the event processor.
Visual Basic is built with abundant features and some of them are listed below:
The soft core MicroBlaze microprocessor is fitted into the Spartan 3E FPGA
architecture and is defined as a principal component of entire FPGA design
implementation.The following image in figure 6.11 is the input image, subjected to that is
given to the FPGA for tumor detection is as shown:
The MATLAB simulation software is loaded with a number of header files for processing
input images. The Xilinx Platform Studio along with the hardware of FPGA defined
embedded processor are combined together to develop the overall system. The base system
builder is used to define the required peripherals and various interfaces are chosen for
constructing the system.The screen capture is the representation of Xilinx Platform Studio
(XPS) design software. The soft processor MicroBlaze is instantiated along with all the
interfaces that are created for this project. The figure demonstrates the connectivity to the
MicroBlaze with processors, local bus and PLB. The other components are identified to be
the data local memory bus (DLMB) and instruction local memory bus (ILMB) and how they
are connected to Microblaze with their their respective controllers.
Figure 6.12-System Assembly Viewof an Embedded Processor
The system is assembled and its bit-stream is defined. The processor is powered with
a software development for executing the required operations. From the observations, the size
of BRAM in FPGA is small, and hence we implemented a use off-chip memory known as
DDR SDRAM. The system block diagram is illustrated in Figure 6.13. Since DDR SDRAM
is an external memory segment, MPMC(Multi Port Memory Controller) core is
implementedfor connecting the external memory.The. elf file is written and stored in the right
location, with .bit file loaded to the FPGA. Xilinx Microprocessor Debugger is used toload
the .elf file and is uploaded to the FPGA as illustrated in the following figure 6.14 .
Figure 6.13 - System Block Diagram
The input images are sent into the system which delivers the output image with the detected
tumor. The detected segment is isolated from the input image and shown in a separate
window. The implementation of the system is obtained fromFPGA; interface is illustrated
using the Visual Basic software on the PC as shown below:
4. Selvakumar J, Lakshmi A & Arivoli T, 2012, Brain tumor segmentation and itsarea
calculation in brain MR images using K-mean clustering and Fuzzy Cmeanalgorithm,
International Conference on Advances in Engineering,Science and Management (ICAESM),
pp. 186-190.
5. www.Braintumorfoundationsof India.com
7. www.cancer.net
8. http://www.dnaindia.com/health/report-cancer-now-india-s-biggest-killerclaims-5lakh-
yearly-2088326Updated: May 23, 2015, 06:05 AM IST, DNA
9. Haseena Thasneem A, Mehaboobathunnisa R, Mohammed Sathik M &Arumugam S,
2015, "Comparison of Different Segmentation algorithms forDermoscpic images," ICTACT
Journal on Image & Video Processing, vol.5,no. 4, pp. 1030-1036.
10. Saini S, Kasliwal B & Bhatia S, 2013, Comparative study of image edgedetection
algorithms, International Journal of Mathematical Sciences, vol.3,no. 2, pp. 1-5.
11. Biswas R & Sil J, 2012, "An improved canny edge detection algorithm basedon type-2
fuzzy sets," Procedia Technology, vol. 4, pp. 820-824.
12. Stefan B, Roland W, Lutz PN & Mauricio R, 2013, A survey of MRI-basedmedical image
analysis for brain tumor studies, Journal of Physics inMedicine and Biology, vol. 58,no. 13,
p. R97.
13. Roy S, Nag S, Maitra IK & Bandyopadhyay SK, 2013, "A Review onAutomated Brain
Tumor Detection and Segmentation from MRI of Brain, "International Journal of Advanced
Research in Computer Science and SofwareEngineering, Volume 3, Issue 6, pp. 1706-1746
14. Patel J & Doshi K, 2014, "A study of segmentation methods for detection oftumor in
brain MRI," Advance in Electronic and Electric Engineering, vol. 4,no. 3, pp. 279-284.
16. Dubey RB, Hanmandlu M & Vasikarla S, 2011, "Evaluation of Three Methodsfor MRI
Brain Tumor Segmentation," Eighth International Conference onInformation Technology:
New Generations (ITNG), pp. 494-499.
17. Kowar MK & Yadav S, 2012, "Brain tumor detection and segmentation usinghistogram
thresholding," International Journal of Engineering and AdvancedTechnology (IJEAT) ISSN,
vol. 2249, p. 8958.
20. Jin L, Min L, Wang J, Fangxiang W, Liu T & Yi P, 2014, "A survey of MRIbasedbrain
tumor segmentation methods," International Journal of Science andTechnology, vol. 19,no. 6,
pp. 578-595
21. Azhari E-EM, Hatta M, Htike ZZ & Win SL, 2014, "Brain tumor detection
andlocalizationin magnetic resonance imaging," International Journal ofInformation
Technology Convergence and services (IJITCS), vol. 4,no. 1, pp.1-11.
22. Demirhan A, 2015, "Segmentation of Tumor and Edema Along With HealthyTissues of
Brain Using Wavelets and Neural Networks, " IEEE Journal ofBiomedical and Health
Informatics, vol. 19,no. 4, pp. 1451-1458
23. Pereira S, Pinto A, Alves V & Silva CA, 2016, "Brain Tumor SegmentationUsing
Convolutional Neural Networks in MRI Images," IEEE Transactions onMedical Imaging,
vol. 35,no. 5, pp. 1240-1251.
24. Anitha V & Murugavalli S, 2016, "Brain tumour classification using two-tierclassifier
with adaptive segmentation technique," IET Computer Vision, vol.0,no. 1, pp. 9-17.
26. Rashmi MK, Rohini Saxena, 2013, Algorithm and Technique on VariousEdge Detection:
ASurvey, Signal & Image Processing :An InternationalJournal, vol. 4,no. 3, pp. 65-75.
27. Sharma P, Diwakar M & Choudhary S, 2012, Application of Edge Detectionfor Brain
Tumor Detection, International Journal of Computer Applications,vol. 58,no. 16, pp. 21-25.
28. Verma N, Muralidhar GS, Bovik AC, Cowperthwaite MC & Markey MK,2011, Model-
driven, probabilistic level set based segmentation of magneticresonance images of the brain,
2011 Annual International Conference of theIEEE on Engineering in Medicine and Biology
Society( EMBC), pp. 2821-2824.
29. Kazerooni AF, Ahmadian A, Serej ND, Rad HS, Saberi H, Yousefi H,
2011,"Segmentation of brain tumors in MRI images using multi-scale gradientvector flow,"
IEEE Journal of Engineering in Medicine and Biology society,pp. 7973-7976.
32. Goswami S & Bhaiya LKP, 2013, "Brain Tumour Detection UsingUnsupervised
Learning Based Neural Network," International ConferenceonCommunication Systems and
Network Technologies (CSNT), pp. 573-577.
33. Ain Q, Jaffar MA & Choi T-S, 2014,"Fuzzy anisotropic diffusion basedsegmentation and
texture based ensemble classification of braintumor,"International Journal of Applied Soft
Computing, vol. 21, pp. 330-340.
35. Selvakumar J, Lakshmi A & Arivoli T, 2012, Brain tumor segmentation and itsarea
calculation in brain MR images using K-mean clustering and Fuzzy Cmeanalgorithm,
International Conference on Advances in Engineering,Science and Management (ICAESM),
pp. 186-190.
36. Vijay J & Subhashini J, 2013, An efficient brain tumor detection methodologyusing K-
means Clustering algorithm, IEEE International Conference onCommunications and Signal
Processing, pp. 653-657
37. Malathi R & AR NK, 2015, "Brain Tumor Detection and Identification UsingK-Means
Clustering Technique," Proceedings of the UGC Sponsored NationalConference on
Advanced Networking and Applications, pp. 14-18.
38. Sangamitra, T.Gamble and M.R.Rathod 2015, " Brain Tumor Segmentationusing K-
Means clustering algorithm , International Journal ox CurrentEngineering and
Technology,Vol. 5, No. 3, pp. 1521-1524.
39. Sivasundari.S, R.Siva Kumar & M.Karnan 2014, "Performance Analysis ofImage
Filtering Algorithms for MRI Images, International Journal of Researchin Engineering and
Technology, Vol. 3,no. 5.pp. 438-440.
40. J. Sijbers, A.J. den Dekker, M. Verhoye, J. Van Audekerke, and D. Van Dyck1987,
Estimation of noise from magnitude MR images, Magn Reson Imaging,pp 87 90.
45. Buades, Antoni 2005, "A non-local algorithm for image denoising," ComputerVision and
Pattern Recognition, Vol 2, pp. 60 65
47. Eman, Elmogy & Rashid, 2015, "Brain tumour segmentation based on a hybridclustering
technique, "Egyptian Informatics Journal(2015)16 production andhosting by Elsevier B.V,
pp.71-81.
48. Selvanayaki K & Karnan M 2010, CAD system for automatic detection ofbrain tumor
through magnetic resonance image-a review, International Journalof Engineering Science and
Technology, vol. 2,no. 10, pp. 5890-5901.
49. Singh A, Yadav A & Rana A, 2013, K-means with Three different DistanceMetrics,
International Journal of Computer Applications, vol. 67,no. 1048. Eman, Elmogy & Rashid,
2015, "Brain tumour segmentation based on a hybridclustering technique, "Egyptian
Informatics Journal(2015)16 production andhosting by Elsevier B.V, pp.71-81.
53. Awalludin EA, Hitam MS, Bachok Z & Hj WNJ, 2013, "Analysis of CoralReefs
distribution using Edge Detection and Blob ProcessingTechniques,"International Journal of
Interactive Digital Media, Vol. 1(1), pp.7-13.
55. Mohanta RK & Sethi B 2012, "A review of genetic algorithm application for image
segmentation," International Journal of Computer Technology andApplications, vol. 3,no. 2,
pp.2054-2069.