Difference between revisions of "User:Level zero/proposal"

From BRL-CAD
(Created page with "Personnel Information Name Mohit Daga Email Address: mohit.daga@ieee.org IRC(nick): zero_level Phone Number: +91 9783582684 Mailing Address: E#221 Ram Path, Shyam Nagar...")
 
m
Line 1: Line 1:
Personnel Information
+
=Personnel Information=
  
 +
{| class="wikitable"
 +
|-
 +
|'''Name''' || Mohit Daga
 +
|-
 +
|'''Email Address'''||[mailto:mohit.daga@ieee.org mohit.daga@ieee.org]
 +
|-
 +
|'''IRC(nick)'''||zero_level
 +
|-
 +
|'''Phone Number'''||+91 9783582684
 +
|-
 +
|'''Mailing Address'''|| E#221 Ram Path, Shyam Nagar, Jaipur – 302019.(IN)
 +
|-
 +
|'''Time Zone'''||UTC +0530
 +
|}
  
Name
 
Mohit Daga
 
Email Address: mohit.daga@ieee.org
 
  
IRC(nick): zero_level
+
===Link to Resumé===
Phone Number: +91 9783582684
 
Mailing Address: E#221 Ram Path, Shyam Nagar,
 
Jaipur – 302019. (India)
 
Time Zone UTC +0530
 
Link to Resumé
 
  
Brief Background
+
===Brief Background===
 
I am an Undergraduate Student in Computer and Communication Engineering. Currently in my pre-final year, I have done diverse range of projects varying from Computer Systems, graphics, Image Processing and Learning. (details are in my Resume)
 
I am an Undergraduate Student in Computer and Communication Engineering. Currently in my pre-final year, I have done diverse range of projects varying from Computer Systems, graphics, Image Processing and Learning. (details are in my Resume)
I am good in Academics with current CPI of 9.16/10.
+
 
Project Information
+
Project Title
+
=Project Information=
 +
==Project Title==
 
Consolidating and Adding the Image Processing tools to LIBICV
 
Consolidating and Adding the Image Processing tools to LIBICV
Brief summary of Project
+
==Brief summary of Project==
 
BRL-CAD has a number of image processing tools. Currently all the tools are implemented in a modular fashion where in each tool is accessed as a module. The primitive task of this project is to combine the image processing tools to a library and advanced element of this project is to add additional relevant functions from cxImage library to the BRL-CAD’s image processing library (LIBICV).  
 
BRL-CAD has a number of image processing tools. Currently all the tools are implemented in a modular fashion where in each tool is accessed as a module. The primitive task of this project is to combine the image processing tools to a library and advanced element of this project is to add additional relevant functions from cxImage library to the BRL-CAD’s image processing library (LIBICV).  
 
This task will ensure the reusability of these tools by the application programmer through relevant api calls in the code and thus will be useful for building a proper GUI for BRL-CAD and helpful in other new tools/functions to be added to BRL-CAD in future.  
 
This task will ensure the reusability of these tools by the application programmer through relevant api calls in the code and thus will be useful for building a proper GUI for BRL-CAD and helpful in other new tools/functions to be added to BRL-CAD in future.  
  
Project Description (Detailed)
+
==Project Description (Detailed)==
 +
===Introduction===
 +
*This project aims at consolidating the Image Processing Tool (IPT) (around 100 in number) under a library (already initiated as LIBICV in BRL-CAD).
 +
*Additionally this project will integrate features from the cxImage library to the current tools to enhance there usability.
 +
 
 +
===BRL-CAD’s IPT(s) Information and Current Status===
 +
BRL-CAD’s IPT(s) are extensively written for various Image Processing task. Apart from the other formats, it has support for the BRL-CAD pioneered '''.pix''' format and the unix plots. Thus BRL-CAD cannot use any other third party library for Image Processing without altering them. Therefore work is underway in strengthening and Consolidating BRL-CAD’s image Processing Library.
  
This project aims at consolidating the Image Processing Tool (IPT) (around 100 in number) under a library (already initiated as LIBICV in BRL-CAD). Additionally this project will add few elements from the cxImage library dealing with dsp, filters etc. and adding additional formats of images to read and write. Details of which are given in section A.
+
Currently these tools are implemented as standalone applications where in each tool is a separate program and separate executable are compiled through these programs. To run any tool, currently we pass command line arguments to the executable file (separate for each tool) and the return arguments are received on standard output buffers or it could be done by saving the output at some location.  
BRL-CAD’s IPT(s) Information and Current Status
 
BRL-CAD’s IPT(s) are extensively written for various Image Processing task. Apart from the other formats it has support for the BRL-CAD pioneered .pix format and the unix plots. Thus BRL-CAD cannot use any other third party library for Image Processing without altering them. Therefore work is underway in strengthening and Consolidating BRL-CAD’s image Processing Library.
 
Currently these tools are implemented as standalone applications where in each tool is a separate program and separate executable are compiled through these programs. To run any tool, currently we pass command line arguments to the executable file (separate for each tool) and the return arguments are received on standard output buffers or it could be done by saving the output at some location.
 
The following figure explains the above non-modular methodology.
 
 
   
 
   
 +
===Consolidating IPT(s) under LIBICV===
 +
This is the primary task of this project wherein the current tools are to be arranged and consolidated to a library lib_icv. It is possible to create our own library of function by writing the current function as subroutines. Any api caller just needs to include the said library and thus has access to the current modules which will be declared as functions in that library.
 +
 +
Libraries consist of a set of related functions to perform a common task.  In our case we have set of tools (in src/util) which are compiled separately. We can write these tools in modules (each containing one or more current tools) and compile (into objects) them individually to link that to a shared library. This could be done very easily using the make in unix which helps resolving dependencies and compile modules and link them to shared library.
  
 +
Among the current tools groups will be identified which could enhance the usability of the tools. Proper Documentation will be done as discussed in later sections.
  
 +
===Addition of library function from cxImage===
 +
==Introduction about cxImage==
 +
[http://www.xdp.it/cximage.htm CxImage] is a C++ image processing library that can load, save, display, transform images in a very simple and fast way. CxImage is open source and licensed under the zlib license.
  
Consolidating IPT(s) under LIBICV
+
This library implements various image processing algorithms which are not the part of the current utilities. As per the current digging of the source code of the utilities, I propose to integrate functions from this library to the current BRL-CAD IPTs. This will give added functionalities with more parameter. For example  
This is the primary task of this project wherein the current tools are to be arranged and consolidated to a library lib_icv. It is possible to create our own library of function by writing the current function as subroutines. Any api caller just needs to include the said library and thus has access to the current modules which will be declared as functions in that library.
 
Libaries consist of a set of related functions to perform a common task.  In our case we have set of modules/tools (in src/util) which are compiled separately. We can compile write our tools in modules (each containing one or more current tools) and compile (into objects) them individually to link that to a shared library. This could be done very easily using the make in unix which helps resolving dependencies and compile modules and linking them to shared library.
 
Among the current tools groups will be identified which could enhance the usability of the tools. Proper Documentation will be done as discussed in later sections.
 
Addition of library function from cxImage
 
{Introduction about cxImage}
 
CxImage is a C++ image processing library that can load, save, display, transform images in a very simple and fast way. CxImage is open source and licensed under the zlib license.
 
This library implements various image processing algorithms which are not the part of the current utilities. As per the current digging of the source code of the utilities, I propose to integrate these modules to the current BRL-CAD IPTs. This will give added functionalities with more parameter. For example  
 
 
the pixinterp2x reads and interpolates a .pix file  
 
the pixinterp2x reads and interpolates a .pix file  
  
Line 64: Line 74:
 
Why you?
 
Why you?
 
I am good in c, c++. I will not say that I possess excellent coding skills. But I have enough to work on this project. Besides this I am dedicated and have an inquisitiveness to learn new things.
 
I am good in c, c++. I will not say that I possess excellent coding skills. But I have enough to work on this project. Besides this I am dedicated and have an inquisitiveness to learn new things.
Anything else?
+
Anything else?
  
 
Index
 
Index

Revision as of 18:51, 29 April 2013

Personnel Information

Name Mohit Daga
Email Address mohit.daga@ieee.org
IRC(nick) zero_level
Phone Number +91 9783582684
Mailing Address E#221 Ram Path, Shyam Nagar, Jaipur – 302019.(IN)
Time Zone UTC +0530


Link to Resumé

Brief Background

I am an Undergraduate Student in Computer and Communication Engineering. Currently in my pre-final year, I have done diverse range of projects varying from Computer Systems, graphics, Image Processing and Learning. (details are in my Resume)


Project Information

Project Title

Consolidating and Adding the Image Processing tools to LIBICV

Brief summary of Project

BRL-CAD has a number of image processing tools. Currently all the tools are implemented in a modular fashion where in each tool is accessed as a module. The primitive task of this project is to combine the image processing tools to a library and advanced element of this project is to add additional relevant functions from cxImage library to the BRL-CAD’s image processing library (LIBICV). This task will ensure the reusability of these tools by the application programmer through relevant api calls in the code and thus will be useful for building a proper GUI for BRL-CAD and helpful in other new tools/functions to be added to BRL-CAD in future.

Project Description (Detailed)

Introduction

  • This project aims at consolidating the Image Processing Tool (IPT) (around 100 in number) under a library (already initiated as LIBICV in BRL-CAD).
  • Additionally this project will integrate features from the cxImage library to the current tools to enhance there usability.

BRL-CAD’s IPT(s) Information and Current Status

BRL-CAD’s IPT(s) are extensively written for various Image Processing task. Apart from the other formats, it has support for the BRL-CAD pioneered .pix format and the unix plots. Thus BRL-CAD cannot use any other third party library for Image Processing without altering them. Therefore work is underway in strengthening and Consolidating BRL-CAD’s image Processing Library.

Currently these tools are implemented as standalone applications where in each tool is a separate program and separate executable are compiled through these programs. To run any tool, currently we pass command line arguments to the executable file (separate for each tool) and the return arguments are received on standard output buffers or it could be done by saving the output at some location.

Consolidating IPT(s) under LIBICV

This is the primary task of this project wherein the current tools are to be arranged and consolidated to a library lib_icv. It is possible to create our own library of function by writing the current function as subroutines. Any api caller just needs to include the said library and thus has access to the current modules which will be declared as functions in that library.

Libraries consist of a set of related functions to perform a common task. In our case we have set of tools (in src/util) which are compiled separately. We can write these tools in modules (each containing one or more current tools) and compile (into objects) them individually to link that to a shared library. This could be done very easily using the make in unix which helps resolving dependencies and compile modules and link them to shared library.

Among the current tools groups will be identified which could enhance the usability of the tools. Proper Documentation will be done as discussed in later sections.

Addition of library function from cxImage

Introduction about cxImage

CxImage is a C++ image processing library that can load, save, display, transform images in a very simple and fast way. CxImage is open source and licensed under the zlib license.

This library implements various image processing algorithms which are not the part of the current utilities. As per the current digging of the source code of the utilities, I propose to integrate functions from this library to the current BRL-CAD IPTs. This will give added functionalities with more parameter. For example the pixinterp2x reads and interpolates a .pix file

add three modules of CxImage which are Basic Transformations, Transformations and DSP. (Although things will be discussed with the mentors about usability of other modules in BRLCAD’s prospects) These will provide added features and will be added advantages for utilising functions calls. {Using the cxImage Library Function} To make this library useful with the current libICV, I propose to write a bridge functions to convert between the two formats (icv_image_file structure> cxImage class). These functions may look like this icv_image_file* cvt_cxImage2icv(cxImage ) cxImage * cvt_icv2cxImage(icv_image_file* ) Documentation Currently brlcad has man pages for all the tools in the utilities. I propose to change these man pages with the manuals of the functions implemented. This can be done with the sync of converting each function to the library function. Besides this since this will turn out to be a library which could be used as a third party library by users belonging to other fraternity therefore, I propose to create a complete documentation of all the functions parameters they take etc. • Links to any code or algorithms you intend to use http://www.cs.dartmouth.edu/~campbell/cs50/buildlib.html • Deliverables (specific, measurable goals) • Development schedule o List at least three milestones • Describe time availability (40+ hours/week assumed) o List any known commitments (e.g., exams, vacation) Why BRL-CAD? In my final year at the university, I am due to work on my Under Graduate thesis. As per my background, my university has assigned me a faculty dealing in graphics and Image Processing. This motivates me to utilise my summer holidays working with BRLCAD due to their large codebase dealing with Image Processing and Graphics and thus becoming a regular contributor with it in my final year which would help me to complete my thesis. Why you? I am good in c, c++. I will not say that I possess excellent coding skills. But I have enough to work on this project. Besides this I am dedicated and have an inquisitiveness to learn new things. Anything else?

Index