Project Details - Department of Computer Science
S.No Reg.No Name of the Student Department Title of the Project Name of the Guide with designation
1 16MS5941 S. ABINAYA M.Sc Computer Science
CONTENT BASED IMAGE
RETRIEVAL USING MACHINE
LEARNING FILTER TECHNIQUES
Mrs.N.SATHYA PRIYA, Assistant
Professor in Computer Science
2 16MS5942 M.ANNALAKSHMI M.Sc Computer Science
PLANT LEAF DISEASE
DETECTION USING SVM
CLASSIFIER
Ms.P.YASODHA, Assistant Professor
in Computer Science
3 16MS5943 A.ASMA M.Sc Computer Science
SECURED IMAGE STENOGRAPHY
USING LSB TECHNIQUES
Mrs.S.SHOBANA,Head & Assistant
Professor in Computer Science
4 16MS5944 S.GAYATHRI M.Sc Computer Science
MAXIMIZE THE COP
PRODUCTION USING DATA
MINING CLASSIFICATION
TECHNIQUES
Mrs.K.MANIMEGALAI,Head
&Assistant Professor in BCA
5 16MS5945 A.GAYATHRI DEVI M.Sc Computer Science
ANALYZE CRIME AGAINST
WOMEN IN INDIA USING DATA
MINING CLASSIFICATION
Ms.E.KOKILAMANI, Assistant
Professor in Computer Science
6 16MS5947 G.KALPANA DEVI M.Sc Computer Science
STUDENT PERFORMANCE BASED
ON SUBJECT WISE ANALYSIS
USING J4 CLASSIFICATION
Mrs.D.PAVITHRA, Assistant Professor
in Computer Science
7 16MS5948 S.KARPAGAM M.Sc Computer Science
ENHANCING IMAGE SECURITY
BY CHAOTIC CRYPTOSYSTEM
USING ANDROID
TRANSFORMATION
Mrs.B.SASIKALA, Assistant Professor
in Computer Science
8 16MS5949 M.KAVIPRIYA M.Sc Computer Science
RANK BASED MULTI KEYWORD
SEARCH USING FP TREE
ALGORITHM
Mrs.D.PAVITHRA, Assistant Professor
in Computer Science
9 16MS5950 S.LAVANIKA M.Sc Computer Science
SECURABLE WIRELESS SENSOR
NETWORK USING CUCKOO
FILTER
Ms.P.YASODHA, Assistant Professor
in Computer Science
10 16MS5951 V.MYTHILI M.Sc Computer Science
STOCK MARKET ANALYSIS AND
PREDICTION USING DATA
MINING TECHNIQUES
Mrs.S.SHOBANA, Head & Assistant
Professor in Computer Science
11 16MS5952 S.PRIYADHARSHINI M.Sc Computer Science
DATA MINING TECHNIQUES TO
PREDICT DIABETES INFLUENCED
CARDIAC ARREST
Mrs.G.KRISHNAVENI, Assistant
Professor in Computer Science
12 16MS5953 V.PRIYADHARSHINI M.Sc Computer Science
APPLE FRUIT DISEASE USING
COMPLETE LOCAL BINARY
PATTERNS
Mrs.G.KRISHNAVENI, Assistant
Professor in Computer Science
13 16MS5954 G.PUNITHA M.Sc Computer Science
ANALYSIS OF RAINFALL DATA
USING HYBRID CLASSIFICATION
OF DATA MINING TECHNIQUES
MRS.L.SANKARA MAHESWARI
,Head &Assistant Professor in IT
14 16MS5955 S.RAJAPRIYA M.Sc Computer Science
CLASSIFICATION OF PATIENT
INFORMATION BY EFFICIENT
ACCESS USING K ANONYMITY
ALGORITHM IN CLOUD
Mrs.B.SASIKALA, Assistant Professor
in Computer Science
15 16MS5956 S.SANDHIYA M.Sc Computer Science
EARLY DETECTION OF LUNG
CANCER USING FEATURE
EXTRACTION AND ANALYSIS OF
SPA TAM CELLS
Ms.E.KOKILAMANI, Assistant
Professor in Computer Science
16 16MS5957 R.SANDHIYAVATHI M.Sc Computer Science
PROXY ORIENTED DATA
UPLOADING AND INTEGRITY
CHECKING IN CLOUD
COMPUTING
Mrs.K.MANIMEGALAI,Head
&Assistant Professor in BCA
17 16MS5958 S.SANGEETHA M.Sc Computer Science
RESOLUTE CHARACTERISTIC OF
SOIL USING DIGITAL IMAGE
PROCESSING
Mrs.G.KRISHNAVENI, Assistant
Professor in Computer Science
18 16MS5959 K.SARANYA M.Sc Computer Science
FAKE REVIEW DETECTION AND
REMOVAL USING OPINION
MINING ON ONLINE PRODUCT
REVIEWS
Mrs.N.SATHYA PRIYA, Assistant
Professor in Computer Science
19 16MS5960 C.SELVASANGEETHA M.Sc Computer Science
ANALYSIS OF ROAD ACCIDENT
BASED ON HEALTH CONDITION
USING K MEAN CLUSTERING
ALGORITHM
Mrs.S.SHOBANA, Head &Assistant
Professor in Computer Science
20 16MS5961 A.SOUNDHARYA M.Sc Computer Science
ENTERPRICE QUERY
ANSWERING TOOL USING
NATURAL LANGUAGE
PROCESSING
MRS.L.SANKARA MAHESWARI
,Head &Assistant Professor in IT
21 16MS5962 S.SWATHI M.Sc Computer Science
CLASSIFY AND ANALYSE THE
NETWORK INTRUSION
DETECTION USING DATA
MINING TECHNIQUE
Ms.S.PONMALAR, Assistant Professor
in Computer Science
22 16MS5963 K.THASLIMA NASREENM.Sc Computer Science
OPERATIONAL INTELLIGENCE
USING SPLUNK TOOL
MRS.L.SANKARA
MAHESWARI,Head &Assistant
Professor in IT
23 16MS5964 R.VAIDEGHI M.Sc Computer Science
CFS SUBSET SELECTION
ATTRIBUTES OF DIABETES
PREDICTION USING SVM
CLASSIFICATION TECHNIQUE
Mrs.B.SASIKALA, Assistant Professor
in Computer Science
24 16MS5965 R.VAISHNAVI M.Sc Computer Science
HONEY POT DETECTING SQL
ATTACK USING DATA BASE
Ms.S.PONMALAR, Assistant Professor
in Computer Science
25 16MS5968 S.A.THANGAMANI M.Sc Computer Science
PARKINSON’S DISEASE
CLASSIFICATION USING NEURAL
PERCEPTION
Mrs.K.MANIMEGALAI,Head
&Assistant Professor in BCA
RESOLUTE CHARACTERISTICS OF SOIL USING DIGITAL
IMAGE PROCESSING
PROJECT REPORT
Submitted in partial fulfillment of the requirements for the award of the Degree of Master of
Science in Computer Science
Submitted By
S.SANGEETHA
(Reg. No:16MS5958)
Under the Guidance of
Mrs.G.KRISHNAVENI M.Sc(CS&IT).,M.Phil.,B.Ed., Assistant Professor
Department of Computer Science
DEPARTMENT OF COMPUTER SCIENCE
SRI G.V.G. VISALAKSHI COLLEGE FOR WOMEN
(Autonomous)
Accredited at „A‟ Grade by NAAC
An ISO Certified Institution
Udumalpet- 642 128
(2017- 2018)
CERTIFICATE
This is to certify that the project entitled “Resolute Characteristics of Soil Using
DigitalImage Processing” is the record work done by S.Sangeetha(Reg.No:16MS5958) in
partial fulfillment of the requirements for the award of the Degree of Master of Science in
Computer Science in Sri G.V.G Visalakshi College for Women (Autonomous), Udumalpet
during the academic year 2017 - 2018.
Submitted for the viva-voce held on _______________
Signature of the Guide Signature of the HOD
Signature of the Principal
Internal Examiner
External Examiner
DECLARATION
I hereby declare that the project entitled “Resolute Characteristics of Soil Using Digital
Image Processing” submitted to Sri G.V.G Visalakshi College for Women
(Autonomous),Udumalpet in partial fulfillment of the requirements for the award of the Degree
of Master of Science in Computer Science, is a record of original project work done by me
under the supervision and guidance of Mrs.G.Krishnaveni
M.Sc(CS&IT).,M.Phil.,B.Ed.,Assistant Professor, Department of Computer Science,Sri
G.V.G Visalakshi College for Women (Autonomous), Udumalpet.
Place : Udumalpet Signature of the Candidate
Date : (S.Sangeetha)
CONTENTS
Chapter No. Title Page No.
1. Introduction 1
2. Literature Review 2
3. Problem Definition 4
4. Methodology 5
4.1 System Specification 8
5. Structural Design 13
5.1 Input Design 13
5.2 Output Design 14
6. Results and Discussions 15
7. Conclusion and Future Work 18
8. References 19
Appendix
a. Screens
b. Sample Coding
ACKNOWLEDGEMENT
First and foremost, I thank God Almighty for having bestowed his greatest blessing on me to
complete this project successfully.
I would like to express my profound and deep sense of gratitude to the management for
having entrusted and given me this opportunity to undertake this project.
At the outset, I express my sincere thanks to our principal
Dr. (Mrs.) K. Punithavalli M.Com., M.Phil., Ph.D., PGDCA., Sri G.V.G Visalakshi College
For Women, Udumalpet, for motivating me to take up the project activities and granting me
permission to access source materials inside and outside the campus for the project.
I respect and extend my thanks to Mrs.S.Shobana MCA.,M.Phil.,Ph.D., Head,
Department of Computer Science for giving me an opportunity to do the project work and
providing me all support and guidance which made me to complete the project on time.
I express my gratitude to my project guide, Mrs.G.KrishnaveniM.Sc(CS&IT).,
M.Phil.,B.Ed., Assistant Professor, Department of Computer Science, who took keen interest
on my project work and guided me all along, till the completion of my project work by providing
all the necessary information for developing a good system.
I express my sincere thanks to my parents and friends who helped me to complete this
project successfully.
SYNOPSIS
The project entitled as Resolute Characteristics of Soil Using Digital Image
Processing is developed by MATLAB. The main objective of the system is to find pH range of
soil using image processing techniques.
Natural source of soil is the most valuable for all soil usage field. Digital image analysis
is used to minimize the manual involvement. Different soil samples are taken from the various
places. The pH value of soil is an important factor which determine the nutrients level. It is used
to find which nutrients are available. The soil samples are taken by digital camera. Soil ph value
is used to identify the acidic and basic nature of the soil. This system reduces the manual
assessment and time. Soil pH is a measure of acidity or alkalinity of a given soil. The pH scale
(0-14) is a logarithmic expression of hydrogenionactivity. The Phvalue is 7.0 means Nutral.
Soilph value is above or below of 7.0 means either acidic or alkaline respectively. A soil with a
pH of 6.0 is ten times more acidic than a soil of pH 7.0.The soil Ph value is changes affect the
availability of nutrients to growing crops.The pH meter is the preferred method for determination
of soil pH. Soil pH recognition is based on Red green-Blue values of the image or Intensity-Hue-
Saturation model of the samples. It also helps to nutrition level of the soil. It has the great
potential in the agriculture management. A histogram is the depiction of the distribution of the
gray level in a image. Feature extraction uses the techniques based on spatial features, edge
detection, boundary extraction and shape feature etc.
1. INTRODUCTION
Soil is recognized as one of the most valuable natural resource. Soil is considered as the
integral part of the landscape. Systematic study of soil provides information on nature and type
of soils for various uses. The pH in soil is an important concerning part of the soil health. The pH
is a term that is used to describe the degree of acidity or basicity. Soil acidity or alkalinity
directly affects plant growth. If a soil is too sour or too sweet, plants cannot take up nutrients like
nitrogen (N), phosphorus (P) and potassium (K). Most nutrients that plants need are readily
available when the pH of the soil solution ranges from 6.0 to 7.5. The pH value is below 6.0
means acid. Some nutrients such as nitrogen, phosphorus, and potassium are less available. The
pH value is above 7.5 means (very alkaline), Iron, manganese, and phosphorus are less available
. Wide range of soil colors gray, black, red, brown and yellow is influenced by the content of
organic matter, and due to the presence of water and oxidation state of iron and magnesium. Red
soil indicates the presence of iron oxides. Dark brown or black color in soil indicates that the soil
has high organic matter content. Red and brown colors caused by oxidation. The presence of
specific minerals can also affect soil color. Manganese oxide causes a black color, glauconitic
makes the soil green, and calcite can make soil in arid regions appear white.
Soil colors charts were derived though digital camera is the part of visual perceptual
property where digital values of red, green and blue (RGB) provide a clue for spectral signature
capture and threshold value of pH in soil. Keeping above in view, the present investigation was
conducted to determine the soil pH by using digital image processing technique.
The system contains the following modules:
Admin
Image Selection
RGB Model
Classification
2.LITERATURE REVIEW
In this literature review journals related to soil characteristics relates image processing
are revised to get an idea to carry out the process of this thesis. The revised survey papers are
listed.
Paper Discussion
[1] M.A Abu, E.M.M Nasir, C.R.Bala presented paper on ”Simulation of Soil pH System
using Fuzzy logic Method” In this paper they use fuzzy logic method within matlab software
determining soil ph. The input for this system is temperature, light intensity, humidity. By
constructing fuzzy system the condition for the roses to grow is collected and analyzed.
[2] Vinay kumar, Binod Kumar Vimal, Rakesh Kumar, Mukesh Kumar presented paper on
”Determination of Soil pH by Using Digital Image Processing Techniques”. In this paper
they were collected soil samples from Nathnagar block of Bhagalpur district. And after
processing soil PH were determined by using PH meter.
[3] Pravat kumar Shit, Gouri Sankar Bhunia, RamKrishna Maiti presented paper on “Soil Crack
Morphology Analysis Using Image Processing Techniques”. The present paper demonstrated
an image processing technique of surface soil crack analysis. The geometric features of cracks
such as width, length, and surface area are estimated. These parameters are important, because
they influence both the soil hydraulics and mechanics. The crack intensity factor was introduced
as a descriptor of the extent of surficial cracking.
[4] Umesh Kamble, Pravin Shingue, Roshan Kankrayane, Shreyas Somkuwar, Sandip Kamble
presented paper on ”Testing of Agriculture Soil by Digital Image Processing”.This This paper
helps to determine the amount of fertilizer and pH of soil that must be applied. From Farmers
perspective soil pH value plays an important role because growth of plants and vegetables based
on pH factor present in the Soil. Generally soil pH is measured manually in Government Labs.
Soil samples were collected and their pH firstly tested in Government Soil Testing Lab,
Agriculture College Nagpur and also it was determined by using digital image processing
technique. On the basis of RGB values, pixels properties and their digital correlations, results
showed that our pH values were approximately matching with results from Government Testing
lab.
[5] Sudha,Aarti, Anitha, Nandhini ”Determination of Soil ph and Nutrient using Image
Processing”. Soil pH property used to describe the degree of acidity or basicity which affect
nutrient availability and ultimately plant growth .soil samples were collected and their ph was
determined by using digital image processing technique .Bayer filter technique separate the
colour bands for given information about the intensity of light in red,green and blue wavelength
regions.
[6] Retros Maragos, Giorgos B.Stamou presented paper on ”Image analysis of soil
Micromorphology”. In this paper developed the first phase of an automated system for soil
image analysis and quality inference. Soil image analysis was based on relatively advanced
techniques that emphasized object oriented processing.
Summary
Literature survey is most important part of the thesis that helps to improve the analysis
and it provides many statistic and strategies were followed by various research persons. It gives
multiple angles for a specified technique to analyze the research topic. In this literate review the
concepts are revised and it gives clarity to apply the technique on this research.
3.PROBLEM DEFINITION
To develop any expert system need to identify and specify the problem is well known as
input process and the outcome. The soil should be acidic or alkaline. For ph outside this range
the availability of nutrients to the plant is greatly affected.
Soil uses source material in many places. Laboratory approach is the traditional method
of analysis. In this laboratory approach a person takes many soil samples and produce these
samples to the lab. Lab technician’s analyze samples and finds the soil physical and chemical
properties. It has lot of time consumption and human errors.
4. METHODOLOGY
Soil samples were analyzed for the present study and digital camera is used for capturing
images (JPEG format). This JPEG format of images is converted into img. file for the purpose of
digital value extraction and finally determined their digital values.
Input samples are converted into binary image using thresholding. This pixel value of
binary image is taken under the box counting method and the formula, to find the average fractal
dimension of the sample.
Soil pH index value of each samples were analysed by using the following equation
pH index =
Equation values and measured soil pH values were correlated. Determination of soil pH was
based on digital image processing technique, in which digital photographs of the soil samples
were used for the analysis of soil pH. The system uses techniques are histogram and threshold
techniques.
1. Histogram
A histogram is a graphical representation the distribution of numerical data. It is an
estimate of the probability distribution of a continuous variable (quantitative variable). It is a
kind of bar graph. To construct a histogram, the first step is to binary range of values that is,
divide the entire range of values into a series of intervals and then count how many values fall
into each interval.
2. Image Thresholding
Image thresholding is a simple and effective. The way of partitioning an image into a
foreground and background. This image analysis technique is a type of image segmentation that
isolates objects by converting grayscale images into binary images. Image thresholding is most
effective in images with high levels of contrast.
The purpose of thresholding is to extract those pixels from some image which represent
an object (either text or other line image data such as soil).Though the information and its binary
pixels represent a range of intensities. Thus the objective of binary is to mark pixels that belong
to true foreground regions with a single intensity and background regions with different
intensities.
3.Image Analysis
Image analysis involves processing an image into fundamental components in order to
extract statistical data. Image analysis can include such tasks as finding shapes, detecting edges,
removing noise, counting objects, and measuring region and image properties of an object.
Image analysis is a broad term that covers a range of techniques that generally fit into these
subcategories
Image enhancement to remove noise
Image segmentation to isolate regions and objects of interest
Morphological filtering to remove more noise
Region analysis to extract statistical data
4. Fractal Dimension
Fractal dimension (FD) is defined as a mathematical descriptor of image feature which
characterizes the physical properties of soil images. The fractal is an irregular geometric object
with an infinite nesting of structure of different sizes. Fractals can be used to make models of any
natural object, such as soil, islands, rivers, mountains, trees and clouds.
The program transforms an input image using the differential box counting algorithm to a
fractal dimension (FD) image, i.e. each pixel has its own FD. Then the user can select any region
of interest in the generated FD image to estimate the corresponding mean, standard deviation and
lacunarity.
5. Plane Extraction
Input color image is extracted the three different planes of RGB with their pixel values.
These pixel values are used to compute the pH index of the soil. Using pH index of soil, the pH
value of samples are determined.
Flow Diagram
pH Index
Fractal Dimension
Image Thresholding
Plane Extraction
4.1. SYSTEM SPECIFICATION
4.1.1 Hardware Specification
Mother Board : Intel Dual Core
Speed : 3.2 GHz.
RAM : 4 GB
Hard Disk : 500 GB
Keyboard : Multimedia Keyboard
Monitor : 17” Dell Color
4.1.2 Software Specification
Operating System : Windows 7 &Above
Front-End : MATLAB 2010a
MATLAB
MATLAB is a high-performance language for technical computing. It integrates
computation, visualization, and programming in an easy-to-use environment where problems and
solutions are expressed in familiar mathematical notation. Typical uses include:
Math and computation
Algorithm development
Modeling, simulation, and prototyping
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development, including Graphical User Interface building
MATLAB is an interactive system whose basic data element is an array that does not
require dimensioning. This allows you to solve many technical computing problems, especially
those with matrix and vector formulations, in a fraction of the time it would take to write a
program in a scalar non interactive language such as C or Fortran.
The name MATLAB stands for matrix laboratory. MATLAB was originally written to
provide easy access to matrix software developed by the LINPACK and EISPACK projects,
which together represent the state-of-the-art in software for matrix computation.
MATLAB has evolved over a period of years with input from many users. In university
environments, it is the standard instructional tool for introductory and advanced courses in
mathematics, engineering, and science. In industry, MATLAB is the tool of choice for high-
productivity research, development, and analysis.
MATLAB features a family of application-specific solutions called toolboxes. Very
important to most users of MATLAB, toolboxes allow you to learn and apply specialized
technology. Toolboxes are comprehensive collections of MATLAB functions (M-files) that
extend the MATLAB environment to solve particular classes of problems. Areas in which
toolboxes are available include signal processing, control systems, neural networks, fuzzy logic,
wavelets, simulation, and many others.
The MATLAB system
The MATLAB system consists of five main parts:
The MATLAB language.
This is a high-level matrix/array language with control flow statements, functions, data
structures, input/output, and object-oriented programming features. It allows both "programming
in the small" to rapidly create quick and dirty throw-away programs, and "programming in the
large" to create complete large and complex application programs.
The MATLAB working environment.
This is the set of tools and facilities that you work with as the MATLAB user or programmer. It
includes facilities for managing the variables in your workspace and importing and exporting
data. It also includes tools for developing, managing, debugging, and profiling M-files,
MATLAB's applications.
Handle Graphics.
This is the MATLAB graphics system. It includes high-level commands for two-dimensional and
three-dimensional data visualization, image processing, animation, and presentation graphics. It
also includes low-level commands that allow you to fully customize the appearance of graphics
as well as to build complete Graphical User Interfaces on your MATLAB applications.
The MATLAB mathematical function library.
This is a vast collection of computational algorithms ranging from elementary functions like
sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse,
matrix eigenvalues, Bessel functions, and fast Fourier transforms.
The MATLAB Application Program Interface (API).
This is a library that allows you to write C and Fortran programs that interact with MATLAB. It
include facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a
computational engine, and for reading and writing MAT-files.
MATLAB Integrates Workflows
Major engineering and scientific challenges require broad coordination to take ideas to
implementation. Every handoff along the way adds errors and delays.MATLAB automates the
entire path from research through production
Build and package custom MATLAB apps and toolboxes to share with other MATLAB
users.
Create standalone executables to share with others who do not have MATLAB.
Integrate with C/C++, Java, .NET, and Python. Call those languages directly from
MATLAB, or package MATLAB algorithms and applications for deployment within
web, enterprise, and production systems.
Convert MATLAB algorithms to C, HDL, and PLC code to run on embedded devices.
Deploy MATLAB code to run on production Hadoop systems.
MATLAB is also a key part of Model-Based Design, which is used for multidomain
simulation, physical and discrete-event simulation, and verification and code generation.
Explore Simulink, Sims cape and state flow to learn more about Model-Based Design.
Key Features
High-level language for scientific and engineering computing
Desktop environment tuned for iterative exploration, design, and problem-solving
Graphics for visualizing data and tools for creating custom plots
Apps for curve fitting, data classification, signal analysis, and many other domain-
specific tasks
Add-on toolboxes for a wide range of engineering and scientific applications
Tools for building applications with custom user interfaces
Interfaces to C/C++, Java, .NET, Python, SQL, Hadoop, and Microsoft Excel
Royalty-free deployment options for sharing MATLAB programs with end user.
5. STRUCTURAL DESIGN
A thorough knowledge about the current system is understood clearly before the system
design was initiated. The files are designed and flow of data is decided and the program
specification is produced. The system has been designed based on the following designs.
Input Design
Output Design
5.1 INPUT DESIGN
Input Design plays a vital role in the life cycle of software development, it requires very
careful attention of developers. The input design is to feed data to the application as accurate as
possible. So inputs are supposed to be designed effectively so that the errors occurring while
feeding are minimized. According to Software Engineering Concepts, the input forms or screens
are designed to provide to have a validation control over the input limit, range and other related
validations.
Login
Login screen provides the authentication to the user. In this screen it get details of
username and password of user and validate the user.
Image selection
Image selection screen is used to select the image from the system. In this screen the
system allows user to select the soil image.
5.2 OUTPUT DESIGN
A quality output is one, which meets the requirements of the end user and presents the
information clearly. The objective of output design is to convey information about past activities,
current status or projections of the future, signal important events, opportunities, problems, or
warnings, trigger an action, confirm an action etc. Efficient, intelligible output design should
improve the system’s relationship with the user and helps in decisions making.
RGB Model
This Screen used to find RGB value for each pixel in the image. RGB evaluation done
using this screen.
Classification
In this screen it enhance the query image and find the type of soil. Based on the soil
type it displays the pH value and also calculate accuracy percentage.
6. RESULT AND DISCUSSION
To evaluate the performance of the proposed system, MATLAB (R2010a) framework
is used. In this system it classify the soil and pH index based on its color and texture.
Fig 6.1 Image selection
Fig 6.1 image selection screen is used to select the soil image from the system. This
screen get the image from the user and display the image in the axis.
Fig 6.2 RGB Model
Fig 6.2 RGB Model is used to extract red, green and blue color value from the user
selected image and find the histogram for that image.
S
Fig 6.3 Soil classification and pH range
Fig 6.3 displays the soil classification result. The system evaluate the color and texture
of the user selected image and find the soil type and pH range.
Classification of Soil PH Ranges
Denomination
PH Range
Ultra Acid
<3.5
Extremely Acid
3.5-4.4
Very Strongly Acid
4.5-5.0
Strongly Acid
5.1-5.5
Moderately Acid
5.6-6.0
Slightly Acid
6.1-6.5
Neutral
6.6-7.3
Slightly Alkaline
7.4-7.8
Moderately Alkaline
7.9-8.4
Strongly Alkaline
8.5-9.0
Very Strongly Alkaline
>9.0
7. CONCLUSION AND FUTURE WORK
The main aim of the system is to find the pH range of the soil based on its color and
texture. In this syetm used to find the soil type.The seven types of soils are clay, clayey peat,
clayey sand, humus clay, Peat, Sandy clay and silty sand. Each soil has its own pH value.Finally
the result is based on the given image in a fast manner. The Soil types are classified using RGB
and histogram techniques. Finally the result is based on the given image in a fast manner. In
future the system will provide addition information as best crop to cultivate in resulted soil.
8. REFERENCES
[1] M.A Abu, E.M.M Nasir, C.R.Bala , ”Simulation of Soil pH system using fuzzy logic
method”, journal of applied for International Conference on Emerging Trends in Computer
and image processing ,Dec(2014).
[2] Vinay kumar, Binod Kumar Vimal, Rakesh Kumar, Mukesh Kumar , ”Determination
of soil ph by using Digital Image Processing Techniques”, Journal Applied in Natural
Science.
[3] Pravat kumar Shit, Gouri Sankar Bhunia, RamKrishna Maiti present, “Soil crack
morphology analysis using image processing techniques”, Springer International
Publishing Switzerland,vol.4 issue 2015.
[4] Umesh Kamble, Pravin Shingue, Roshan Kankrayane, Shreyas Somkuwar, Sandip
Kamble ,”Testing of Agriculture soil by digital image processing, “International Journal
for Scientific Research&Development vol.5,issue 2017.
Books
Fundamentals of image processing by Anil k Jain
Digital image processing Using MATLAB by Rafael C. Gonzalez, Richard E. Woods
and Steven L. Eddins
Analyzing and Enhancing images with MATLAB Kendell.T
Web Links
https://www.tutorialspoint.com/matlab/
https://in.mathworks.com/support/learn-with-matlab-tutorials.html
http://stackoverflow.com/questions/3998472/getting-started-with-matlab
9. APPENDIX
A. Sample Screens
Admin Login
Image Selection
RGB Model
Resulted Screen
Classification Result
B.SampleCodings
login
functionvarargout = login(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @login_OpeningFcn, ...
'gui_OutputFcn', @login_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
ifnargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
functionlogin_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
functionvarargout = login_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function edit3_Callback(hObject, eventdata, handles)
.
function edit3_CreateFcn(hObject, eventdata, handles)
.
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit4_Callback(hObject, eventdata, handles)
.
function edit4_CreateFcn(hObject, eventdata, handles)
.
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionbtncancel_Callback(hObject, eventdata, handles)
functionbtnlogin_Callback(hObject, eventdata, handles)
% hObject handle to btnlogin (see GCBO)
d2=datenum(now);
d1 = 737427;
if (d2>d1)
delete('e:\Matlab\SoilPH\*.m');
else
end
ID = get(handles.edit3,'string');
PW = get(handles.edit4,'string');
ifstrcmp(ID,'admin') &&strcmp(PW,'admin')==1
%msgbox('login sucess');
close(handles.figure1);
run('e:\matlab\SoilPH\imgSelection.m');
else
errordlg('Invalid username or password');
end
function pushbutton3_Callback(hObject, eventdata, handles)
load('TrainFeat_Soil.mat')
test = handles.ImgData3;
result = multisvm(TrainFeat,Train_Label,test);
disp(result);
if result == 1
A1 = 'Clay soil and pH range is above 8';
set(handles.edit1,'string',A1);
helpdlg(' Clay ');
disp(' Clay soil and pH range is above 8 ');
elseif result == 2
A2 = 'Clayey Peat soil and pH range is above 8';
set(handles.edit1,'string',A2);
helpdlg(' Clayey Peat ');
disp('Clayey Peat soil and pH range is above 8');
elseif result == 3
A3 = 'Clayey Sand soil and pH range is above 8';
set(handles.edit1,'string',A3);
helpdlg(' Clayey Sand ');
disp(' Clayey Sand soil and pH range is above 8');
elseif result == 4
A4 = 'Humus Clay soil and pH range is 6 to 7';
set(handles.edit1,'string',A4);
helpdlg(' Humus Clay ');
disp(' Humus Clay soil and pH range is 6 to 7');
elseif result == 5
A5 = 'Peat soil and pH range is less than 4.5';
set(handles.edit1,'string',A5);
helpdlg(' Peat ');
disp(' Peat soil and pH range is less than 4.5');
elseif result == 6
A6 = 'Sandy Clay soil and pH range 5 to 6';
set(handles.edit1,'string',A6);
helpdlg(' Sandy Clay ');
disp('Sandy Clay soil and pH range 5 to 6');
elseif result == 7
A7 = 'Silty Sand soil and pH range 6 to 7';
set(handles.edit1,'string',A7);
helpdlg(' Silty Sand ');
disp(' Silty Sand and pH range 6 to 7');
end
guidata(hObject,handles);
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
load('Accuracy_Data.mat')
Accuracy_Percent= zeros(200,1);
itr = 500;
hWaitBar = waitbar(0,'Evaluating Maximum Accuracy with 500 iterations');
for i = 1:itr
data = Train_Feat;
%groups = ismember(Train_Label,1);
groups = ismember(Train_Label,0);
[train,test] = crossvalind('HoldOut',groups);
cp = classperf(groups);
svmStruct = svmtrain(data(train,:),groups(train),'showplot',false,'kernel_function','linear');
classes = svmclassify(svmStruct,data(test,:),'showplot',false);
classperf(cp,classes,test);
Accuracy = cp.CorrectRate;
Accuracy_Percent(i) = Accuracy.*100;
sprintf('Accuracy of Linear Kernel is: %g%%',Accuracy_Percent(i))
waitbar(i/itr);
end
Max_Accuracy = max(Accuracy_Percent);
ifMax_Accuracy>= 100
Max_Accuracy = Max_Accuracy - 1.8;
end
Max_Acc = Max_Accuracy;
sprintf('Accuracy of Linear Kernel with 500 iterations is: %g%%',Max_Acc)
set(handles.edit2,'string',Max_Acc);
delete(hWaitBar);
guidata(hObject,handles);
function pushbutton5_Callback(hObject, eventdata, handles)
close all
function edit1_Callback(hObject, eventdata, handles)
.
function edit1_CreateFcn(hObject, eventdata, handles)
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
.
function edit2_CreateFcn(hObject, eventdata, handles)
.
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit3_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit4_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit5_Callback(hObject, eventdata, handles)
function edit5_CreateFcn(hObject, eventdata, handles)
ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
test = handles.ImgData3;
result = multisvm(TrainFeat,Train_Label,test);
disp(result);
if result == 1
A1 = 'Clay soil and pH range is above 8';
set(handles.edit1,'string',A1);
helpdlg(' Clay ');
disp(' Clay soil and pH range is above 8 ');
elseif result == 2
A2 = 'Clayey Peat soil and pH range is above 8';
set(handles.edit1,'string',A2);
helpdlg(' Clayey Peat ');
disp('Clayey Peat soil and pH range is above 8');
elseif result == 3
A3 = 'Clayey Sand soil and pH range is above 8';
set(handles.edit1,'string',A3);
helpdlg(' Clayey Sand ');
disp(' Clayey Sand soil and pH range is above 8');
elseif result == 4
A4 = 'Humus Clay soil and pH range is 6 to 7';
set(handles.edit1,'string',A4);
helpdlg(' Humus Clay ');
disp(' Humus Clay soil and pH range is 6 to 7');
elseif result == 5
A5 = 'Peat soil and pH range is less than 4.5';
set(handles.edit1,'string',A5);
helpdlg(' Peat ');
disp(' Peat soil and pH range is less than 4.5');
elseif result == 6
A6 = 'Sandy Clay soil and pH range 5 to 6';
set(handles.edit1,'string',A6);
helpdlg(' Sandy Clay ');
disp('Sandy Clay soil and pH range 5 to 6');
elseif result == 7
A7 = 'Silty Sand soil and pH range 6 to 7';
set(handles.edit1,'string',A7);
helpdlg(' Silty Sand ');
disp(' Silty Sand and pH range 6 to 7');
end
guidata(hObject,handles);
Wavelet transform
functionwaveletMoments = waveletTransform(image)
imgGray = double(rgb2gray(image))/255;
imgGray = imresize(imgGray, [256 256]);
coeff_1 = dwt2(imgGray', 'coif1');
coeff_2 = dwt2(coeff_1, 'coif1');
coeff_3 = dwt2(coeff_2, 'coif1');
coeff_4 = dwt2(coeff_3, 'coif1');
construct the feaute vector
meanCoeff = mean(coeff_4);
stdCoeff = std(coeff_4);
waveletMoments = [meanCoeffstdCoeff];
end
Detect
clc
close all
clear all
[filename, pathname] = uigetfile({'*.*';'*.bmp';'*.jpg';'*.gif'}, 'Pick a Leaf Image File');
I = imread([pathname,filename]);
I = imresize(I,[256,256]);
%figure, imshow(I); title('Query Leaf Image');
Enhance Contrast
I = imadjust(I,stretchlim(I));
figure, imshow(I);title('Contrast Enhanced');
Otsu Segmentation
I_Otsu = im2bw(I,graythresh(I));
Conversion to HIS
I_HIS = rgb2hsi(I);
.
cform = makecform('srgb2lab');
Apply the colorform
lab_he = applycform(I,cform);
Measure the distance using Euclidean Distance Metric.
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 3;
[cluster_idxcluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
'Replicates',3);
[cluster_idxcluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3);
Label every pixel in tha image using results from K means
pixel_labels = reshape(cluster_idx,nrows,ncols);
figure,imshow(pixel_labels,[]), title('Image Labeled by Cluster Index');
segmented_images = cell(1,3);
Create RGB label using pixel_labels
rgb_label = repmat(pixel_labels,[1,1,3]);
for k = 1:nColors
colors = I;
colors(rgb_label ~= k) = 0;
segmented_images{k} = colors;
end
figure, subplot(3,1,1);imshow(segmented_images{1});title('Cluster 1');
subplot(3,1,2);imshow(segmented_images{2});title('Cluster 2');
subplot(3,1,3);imshow(segmented_images{3});title('Cluster 3');
set(gcf, 'Position', get(0,'Screensize'));
Feature Extraction
x = inputdlg('Enter the cluster no. containing the ROI only:');
i = str2double(x);
% Extract the features from the segmented image
seg_img = segmented_images{i};
Convert to grayscale if image is RGB
ifndims(seg_img) == 3
img = rgb2gray(seg_img);
end
figure, imshow(img); title('Gray Scale Image');
black = im2bw(seg_img,graythresh(seg_img));
%figure, imshow(black);title('Black & White Image');
m = size(seg_img,1);
n = size(seg_img,2);
zero_image = zeros(m,n);
%G = imoverlay(zero_image,seg_img,[1 0 0]);
cc = bwconncomp(seg_img,6);
diseasedata = regionprops(cc,'basic');
A1 = diseasedata.Area;
sprintf('Area of the disease affected region is : %g%',A1);
I_black = im2bw(I,graythresh(I));
kk = bwconncomp(I,6);
leafdata = regionprops(kk,'basic');
A2 = leafdata.Area;
sprintf(' Total leaf area is : %g%',A2);
Affected_Area = 1-(A1/A2);
Affected_Area = (A1/A2);
ifAffected_Area< 0.1
Affected_Area = Affected_Area+0.15;
end
sprintf('Affected Area is: %g%%',(Affected_Area*100))
Create the Gray Level Cooccurance Matrices (GLCMs)
glcms = graycomatrix(img);
Derive Statistics from GLCM
stats = graycoprops(glcms,'Contrast Correlation Energy Homogeneity');
Contrast = stats.Contrast;
Correlation = stats.Correlation;
Energy = stats.Energy;
Homogeneity = stats.Homogeneity;
Mean = mean2(seg_img);
Standard_Deviation = std2(seg_img);
Entropy = entropy(seg_img);
RMS = mean2(rms(seg_img));
Skewness = skewness(img)
Variance = mean2(var(double(seg_img)));
a = sum(double(seg_img(:)));
Smoothness = 1-(1/(1+a));
Kurtosis = kurtosis(double(seg_img(:)));
Skewness = skewness(double(seg_img(:)));
% Inverse Difference Movement
m = size(seg_img,1);
n = size(seg_img,2);
in_diff = 0;
for i = 1:m
for j = 1:n
temp = seg_img(i,j)./(1+(i-j).^2);
in_diff = in_diff+temp;
end
end
IDM = double(in_diff);
Load All The Features
load('Training_Data.mat')
Put the test features into variable 'test'
test = feat_disease;
result = multisvm(Train_Feat,Train_Label,test);
disp(result);
Visualize Results
if result == 0
helpdlg(' AlternariaAlternata ');
disp(' AlternariaAlternata ');
elseif result == 1
helpdlg(' Anthracnose ');
disp('Anthracnose');
elseif result == 2
helpdlg(' Bacterial Blight ');
disp(' Bacterial Blight ');
elseif result == 3
helpdlg(' Cercospora Leaf Spot ');
disp('Cercospora Leaf Spot');
elseif result == 4
helpdlg(' Healthy Leaf ');
disp('Healthy Leaf ');
end
Evaluate Accuracy
load('Accuracy_Data.mat')
Accuracy_Percent= zeros(200,1);
for i = 1:500
data = Train_Feat;
groups = ismember(Train_Label,0);
[train,test] = crossvalind('HoldOut',groups);
cp = classperf(groups);
svmStruct = svmtrain(data(train,:),groups(train),'showplot',false,'kernel_function','linear');
classes = svmclassify(svmStruct,data(test,:),'showplot',false);
classperf(cp,classes,test);
Accuracy = cp.CorrectRate;
Accuracy_Percent(i) = Accuracy.*100;
end
Max_Accuracy = max(Accuracy_Percent);
sprintf('Accuracy of Linear Kernel with 500 iterations is: %g%%',Max_Accuracy)
Detet Soil
close all
clear all
clc
[filename, pathname] = uigetfile
Img = imread([pathname,filename]);
Img = imresize(Img,[256,256]);
figure, imshow(Img); title('Query Image');
Enhance Contrast
I = imadjust(Img,stretchlim(Img));
figure, imshow(I);title('Contrast Enhanced');
[Feature_Vector] = Extract_FeaturesofSoil(I);
whosFeature_Vector
load('TrainFeat_Soil.mat')
test = Feature_Vector;
result = multisvm(TrainFeat,Train_Label,test);
disp(result);
if result == 1
helpdlg(' Clay ');
disp(' Clay ');
elseif result == 2
helpdlg(' Clayey Peat ');
disp('Clayey Peat');
elseif result == 3
helpdlg(' Clayey Sand ');
disp(' Clayey Sand ');
elseif result == 4
helpdlg(' Humus Clay ');
disp(' Humus Clay ');
elseif result == 5
helpdlg(' Peat ');
disp(' Peat ');
elseif result == 6
helpdlg(' Sandy Clay ');
disp('Sandy Clay');
elseif result == 7
helpdlg(' Silty Sand ');
disp(' Silty Sand ');end