SlideShare a Scribd company logo
By Pallab Sarkar
Reg no :-122504060
Master of Science in Technology - Computer
Sciences
Project Start Date: 05/06/2013
Android based application for graph
analysis
Introduction
In this project we want to develop a graph analysis
tool which will,
 Provide easy and intuitive mechanism to get
values at any point in the graph.
 Effectively leverages capabilities of both Image
processing concepts and high end smart phones .
 Also try to contribute back to the open source
community in this process.
2
Problem Definition
3
 Myriad of graphical representation
are their to represent data of
various nature.
 The major problem is to analyze
this graphical representation
without hassle and with ease.
4
Coordinates
at this point
?
Values at
this point ?
5
Methodology
6
7
Image Frame input
Pre Processing of
Image
Post Processing
of Image
User Selects the
point on graph
Coordinate
provided to user
in UI
OpenCV
8
 For all the Image Processing needs we have
used OpenCV library android port
OpenCV4Android.
 This is open source library which implements lots
of image processing algorithms for direct use.
 OpenCV4Android has a modular structure,
which means that the package includes several
java libraries to use.
 Like org.opencv.core, org.opencv.imgproc,
org.opencv.video, org.opencv.calib3d,
org.opencv.features2d, org.opencv.objdetect,
org.opencv.highgui, org.opencv.android
9
Procedural Design
10
Controller Module
11
 This drives whole application based on user
input.
 It maintains the state machine for application.
 Below is the UI part which will be interacting with
the Controller module
12
public boolean onCreateOptionsMenu(Menu menu) {
Log.i(TAG, "called onCreateOptionsMenu");
mItemReset = menu.add("Reset");
mItemPreProcess = menu.add("Pre Process");
mItemPostProcess = menu.add("Post Process");
mItemLoadFile = menu.add("Load File");
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
Log.i(TAG, "called onOptionsItemSelected; selected item: " +
item);
if (item == mItemReset)
//Perform corresponding state changes and procedure calls
else if (item == mItemPreProcess)
//Perform corresponding state changes and procedure calls
else if(item == mItemPostProcess)
//Perform corresponding state changes and procedure calls
else if(item == mItemLoadFile)
//Perform corresponding state changes and procedure calls
return true;
}
PreProc Module
13
 Performs all the pre processing on the input
image
 Color conversion from RGB to Grayscale
 Histogram equalization
 Applying Gaussian blur
 Performing Canny edge detection
 Finding contours
14
 Final pre processed out put image.
15
Imgproc.cvtColor(mRgba, mRgba, Imgproc.COLOR_RGB2GRAY, 0);
Imgproc.equalizeHist(mRgba, mRgba);
Size s = new Size(7,7);
Imgproc.GaussianBlur(mRgba, mRgba, s, 1.5, 1.5);
Imgproc.Canny(mRgba, mRgba, 80, 90);
List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Imgproc.findContours(mRgba, contours, mHierarchy,
Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
Imgproc.drawContours(mRgba, contours, -1, CONTOUR_COLOR);
PostProc Module
16
 Perform feature extraction on image
 Generates the values so that it can be used for
calculation,
 Identify the type of graph
17
 To indentify the number marking on the axis and
corresponding pixel value at that point this will be
use to interpolate values later on.
CordCalc Module
18
 Uses the data stored in the post process module
and calculate the requested coordinate’s values.
Now suppose from origin (0,0) to (5,0)
total pixels are 25 then
1pixel on X axis = 5/25
Similarly from (0, 0) to (0, 4) total pixel
are 30 then
1 pixel on Y axis = 4/30.
If the point of interest is at (a, b) pixel
location then actual location on graph is
(5a/25, 4b/30).
19
What is the value
at this point?
In 2D grayscale image we have two found
out the coordinate same as linear graph i.e
the (x,y) values and also the “Z” also at that
point from the color bar legend
We have to match the average color value of
the point (x,y) area and need to match the
closet point in the color bar legend. Then
interpolate that Z value to find accurate “Z” a
value. That is how we can find (x,y,z)
coordinate for 2 D grayscale image.
Discussion of Result
20
 Below is the UI sequence of operation in the
application to found out the coordinate at any
point in graph by user touches on the desired
point
User clicks preprocess
21
Post process with result pop up
22
Conclusion
23
 This project demonstrates the power of Image processing
in general and OpenCV in particular. Image processing,
machine learning and computer vision are the one frontier
area of research and development.
 Android as an OS is very powerful tool of innovation and
gives a handy platform for development of this type of
application.
 In the future works I am planning to make it more vivid and
improve the UI .
 We can add some more feature like Premark all the points
on the graph and when user hover over it he can view the
coordinate values.
 We can also add some type of database like mySQl, to
store all theses coordinate and user is provided with an
API to extract all the values on one click.
Reference
24
 http://opencv.org/
 http://sourceforge.net/projects/digitizer/
 http://www.imagemagick.org/Magick++/
 http://getdata-graph-digitizer.com/features.php
 http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm
 http://docs.opencv.org/opencv_tutorials.pdf
 http://dcs.opencv.org/opencv2refman.pdf
 http://dcs.opencv.org/opencv_user.pdf
 http://dcs.opencv.org/opencv2manager.pdf
 http://www.cuelogic.com/blog/opencv-contour-detection-in-
android-2/
 [Canny86] 10. Canny. A Computational Approach to Edge
Detection, IEEE Trans. on Pattern Analysis and Machine
Intelligence, 8(6), pp. 679-698 (1986).
 [Suzuki85] Suzuki, S. and Abe, K., Topological Structural
Analysis of Digitized Binary Images by Border Following. CVGIP
30 1, pp 32-46 (1985)
25

More Related Content

PDF
bhargav_flowing-fountain
PDF
CG mini project
PPTX
Fog effect opengl project
PPT
Computer graphics mini project on bellman-ford algorithm
PDF
Computer Graphics Project Report on Sinking Ship using OpenGL
DOCX
Mini Project final report on " LEAKY BUCKET ALGORITHM "
PPT
KARNAUGH MAP using OpenGL (KMAP)
bhargav_flowing-fountain
CG mini project
Fog effect opengl project
Computer graphics mini project on bellman-ford algorithm
Computer Graphics Project Report on Sinking Ship using OpenGL
Mini Project final report on " LEAKY BUCKET ALGORITHM "
KARNAUGH MAP using OpenGL (KMAP)

What's hot (8)

PPT
Neuroimaging
ODP
The Micromapping Model of Computation
PPTX
Master defence 2020 - Roman Riazantsev - 3D Reconstruction of Video Sign Lan...
DOCX
C programs
PPT
Htn Planning In A Tool Supported
PPT
Cgmodule
PDF
Graphics programming in open gl
PDF
Structural eigen value analysis in c programming
Neuroimaging
The Micromapping Model of Computation
Master defence 2020 - Roman Riazantsev - 3D Reconstruction of Video Sign Lan...
C programs
Htn Planning In A Tool Supported
Cgmodule
Graphics programming in open gl
Structural eigen value analysis in c programming
Ad

Similar to Android based application for graph analysis final report (20)

PDF
Real-Time Color Detection Using Python and OpenCV
PDF
Performance Anaysis for Imaging System
PPTX
OpenCV In Mobile Technology | Computer Vision on Mobile
PPTX
OpenCV+Android.pptx
DOCX
Computer graphics
DOCX
Computer graphics
PDF
Portfolio
PPT
openGL basics for sample program (1).ppt
PPT
openGL basics for sample program.ppt
PDF
AN INTERNSHIP REPORT ON AIRPLANE GAME MANAGEMENT SYSTEM PROJECT REPORT.
PDF
IRJET - Hand Gesture Recognition to Perform System Operations
PDF
Practical Digital Image Processing 3
PDF
MicroManager_MATLAB_Implementation
PDF
Fpga human detection
PDF
426 lecture 4: AR Developer Tools
PPTX
Ai big dataconference_volodymyr getmanskyi colorization distance measuring
PDF
Volodymyr Getmanskyi "Deep learning for satellite imagery colorization and di...
PPTX
License Plate Recognition System
PPTX
19BCS1815_PresentationAutomatic Number Plate Recognition(ANPR)P.pptx
PPTX
Detection of medical instruments project- PART 1
Real-Time Color Detection Using Python and OpenCV
Performance Anaysis for Imaging System
OpenCV In Mobile Technology | Computer Vision on Mobile
OpenCV+Android.pptx
Computer graphics
Computer graphics
Portfolio
openGL basics for sample program (1).ppt
openGL basics for sample program.ppt
AN INTERNSHIP REPORT ON AIRPLANE GAME MANAGEMENT SYSTEM PROJECT REPORT.
IRJET - Hand Gesture Recognition to Perform System Operations
Practical Digital Image Processing 3
MicroManager_MATLAB_Implementation
Fpga human detection
426 lecture 4: AR Developer Tools
Ai big dataconference_volodymyr getmanskyi colorization distance measuring
Volodymyr Getmanskyi "Deep learning for satellite imagery colorization and di...
License Plate Recognition System
19BCS1815_PresentationAutomatic Number Plate Recognition(ANPR)P.pptx
Detection of medical instruments project- PART 1
Ad

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PDF
medical staffing services at VALiNTRY
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Digital Strategies for Manufacturing Companies
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
ai tools demonstartion for schools and inter college
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Introduction to Artificial Intelligence
medical staffing services at VALiNTRY
How to Choose the Right IT Partner for Your Business in Malaysia
Softaken Excel to vCard Converter Software.pdf
CHAPTER 2 - PM Management and IT Context
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Digital Strategies for Manufacturing Companies
Operating system designcfffgfgggggggvggggggggg
Wondershare Filmora 15 Crack With Activation Key [2025
ai tools demonstartion for schools and inter college
How to Migrate SBCGlobal Email to Yahoo Easily
Design an Analysis of Algorithms II-SECS-1021-03
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Odoo POS Development Services by CandidRoot Solutions
Design an Analysis of Algorithms I-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Odoo Companies in India – Driving Business Transformation.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...

Android based application for graph analysis final report

  • 1. By Pallab Sarkar Reg no :-122504060 Master of Science in Technology - Computer Sciences Project Start Date: 05/06/2013 Android based application for graph analysis
  • 2. Introduction In this project we want to develop a graph analysis tool which will,  Provide easy and intuitive mechanism to get values at any point in the graph.  Effectively leverages capabilities of both Image processing concepts and high end smart phones .  Also try to contribute back to the open source community in this process. 2
  • 3. Problem Definition 3  Myriad of graphical representation are their to represent data of various nature.  The major problem is to analyze this graphical representation without hassle and with ease.
  • 5. 5
  • 7. 7 Image Frame input Pre Processing of Image Post Processing of Image User Selects the point on graph Coordinate provided to user in UI
  • 8. OpenCV 8  For all the Image Processing needs we have used OpenCV library android port OpenCV4Android.  This is open source library which implements lots of image processing algorithms for direct use.  OpenCV4Android has a modular structure, which means that the package includes several java libraries to use.  Like org.opencv.core, org.opencv.imgproc, org.opencv.video, org.opencv.calib3d, org.opencv.features2d, org.opencv.objdetect, org.opencv.highgui, org.opencv.android
  • 9. 9
  • 11. Controller Module 11  This drives whole application based on user input.  It maintains the state machine for application.  Below is the UI part which will be interacting with the Controller module
  • 12. 12 public boolean onCreateOptionsMenu(Menu menu) { Log.i(TAG, "called onCreateOptionsMenu"); mItemReset = menu.add("Reset"); mItemPreProcess = menu.add("Pre Process"); mItemPostProcess = menu.add("Post Process"); mItemLoadFile = menu.add("Load File"); return true; } public boolean onOptionsItemSelected(MenuItem item) { Log.i(TAG, "called onOptionsItemSelected; selected item: " + item); if (item == mItemReset) //Perform corresponding state changes and procedure calls else if (item == mItemPreProcess) //Perform corresponding state changes and procedure calls else if(item == mItemPostProcess) //Perform corresponding state changes and procedure calls else if(item == mItemLoadFile) //Perform corresponding state changes and procedure calls return true; }
  • 13. PreProc Module 13  Performs all the pre processing on the input image  Color conversion from RGB to Grayscale  Histogram equalization  Applying Gaussian blur  Performing Canny edge detection  Finding contours
  • 14. 14  Final pre processed out put image.
  • 15. 15 Imgproc.cvtColor(mRgba, mRgba, Imgproc.COLOR_RGB2GRAY, 0); Imgproc.equalizeHist(mRgba, mRgba); Size s = new Size(7,7); Imgproc.GaussianBlur(mRgba, mRgba, s, 1.5, 1.5); Imgproc.Canny(mRgba, mRgba, 80, 90); List<MatOfPoint> contours = new ArrayList<MatOfPoint>(); Imgproc.findContours(mRgba, contours, mHierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE); Imgproc.drawContours(mRgba, contours, -1, CONTOUR_COLOR);
  • 16. PostProc Module 16  Perform feature extraction on image  Generates the values so that it can be used for calculation,  Identify the type of graph
  • 17. 17  To indentify the number marking on the axis and corresponding pixel value at that point this will be use to interpolate values later on.
  • 18. CordCalc Module 18  Uses the data stored in the post process module and calculate the requested coordinate’s values. Now suppose from origin (0,0) to (5,0) total pixels are 25 then 1pixel on X axis = 5/25 Similarly from (0, 0) to (0, 4) total pixel are 30 then 1 pixel on Y axis = 4/30. If the point of interest is at (a, b) pixel location then actual location on graph is (5a/25, 4b/30).
  • 19. 19 What is the value at this point? In 2D grayscale image we have two found out the coordinate same as linear graph i.e the (x,y) values and also the “Z” also at that point from the color bar legend We have to match the average color value of the point (x,y) area and need to match the closet point in the color bar legend. Then interpolate that Z value to find accurate “Z” a value. That is how we can find (x,y,z) coordinate for 2 D grayscale image.
  • 20. Discussion of Result 20  Below is the UI sequence of operation in the application to found out the coordinate at any point in graph by user touches on the desired point
  • 22. Post process with result pop up 22
  • 23. Conclusion 23  This project demonstrates the power of Image processing in general and OpenCV in particular. Image processing, machine learning and computer vision are the one frontier area of research and development.  Android as an OS is very powerful tool of innovation and gives a handy platform for development of this type of application.  In the future works I am planning to make it more vivid and improve the UI .  We can add some more feature like Premark all the points on the graph and when user hover over it he can view the coordinate values.  We can also add some type of database like mySQl, to store all theses coordinate and user is provided with an API to extract all the values on one click.
  • 24. Reference 24  http://opencv.org/  http://sourceforge.net/projects/digitizer/  http://www.imagemagick.org/Magick++/  http://getdata-graph-digitizer.com/features.php  http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm  http://docs.opencv.org/opencv_tutorials.pdf  http://dcs.opencv.org/opencv2refman.pdf  http://dcs.opencv.org/opencv_user.pdf  http://dcs.opencv.org/opencv2manager.pdf  http://www.cuelogic.com/blog/opencv-contour-detection-in- android-2/  [Canny86] 10. Canny. A Computational Approach to Edge Detection, IEEE Trans. on Pattern Analysis and Machine Intelligence, 8(6), pp. 679-698 (1986).  [Suzuki85] Suzuki, S. and Abe, K., Topological Structural Analysis of Digitized Binary Images by Border Following. CVGIP 30 1, pp 32-46 (1985)
  • 25. 25