Using+Octave

Octave with a Qt front-end is what is being suggested in place of MATLAB for the basic and most of the image processing computation.

Here's a link to the entire guide to Octave. Source ( http://www.gnu.org/software/octave/doc/interpreter/ )

Table of Contents

 * GNU Octave
 * Preface
 * [|Acknowledgements]
 * [|How You Can Contribute to Octave]
 * [|Distribution]
 * 1 A Brief Introduction to Octave
 * [|1.1 Running Octave]
 * [|1.2 Simple Examples]
 * [|1.2.1 Elementary Calculations]
 * [|1.2.2 Creating a Matrix]
 * [|1.2.3 Matrix Arithmetic]
 * [|1.2.4 Solving Systems of Linear Equations]
 * [|1.2.5 Integrating Differential Equations]
 * [|1.2.6 Producing Graphical Output]
 * [|1.2.7 Editing What You Have Typed]
 * [|1.2.8 Help and Documentation]
 * [|1.3 Conventions]
 * [|1.3.1 Fonts]
 * [|1.3.2 Evaluation Notation]
 * [|1.3.3 Printing Notation]
 * [|1.3.4 Error Messages]
 * [|1.3.5 Format of Descriptions]
 * [|1.3.5.1 A Sample Function Description]
 * [|1.3.5.2 A Sample Command Description]
 * [|1.3.5.3 A Sample Variable Description]
 * 2 Getting Started
 * [|2.1 Invoking Octave from the Command Line]
 * [|2.1.1 Command Line Options]
 * [|2.1.2 Startup Files]
 * [|2.2 Quitting Octave]
 * [|2.3 Commands for Getting Help]
 * [|2.4 Command Line Editing]
 * [|2.4.1 Cursor Motion]
 * [|2.4.2 Killing and Yanking]
 * [|2.4.3 Commands For Changing Text]
 * [|2.4.4 Letting Readline Type For You]
 * [|2.4.5 Commands For Manipulating The History]
 * [|2.4.6 Customizing readline]
 * [|2.4.7 Customizing the Prompt]
 * [|2.4.8 Diary and Echo Commands]
 * [|2.5 How Octave Reports Errors]
 * [|2.6 Executable Octave Programs]
 * [|2.7 Comments in Octave Programs]
 * [|2.7.1 Single Line Comments]
 * [|2.7.2 Block Comments]
 * [|2.7.3 Comments and the Help System]
 * 3 Data Types
 * [|3.1 Built-in Data Types]
 * [|3.1.1 Numeric Objects]
 * [|3.1.2 Missing Data]
 * [|3.1.3 String Objects]
 * [|3.1.4 Data Structure Objects]
 * [|3.1.5 Cell Array Objects]
 * [|3.2 User-defined Data Types]
 * [|3.3 Object Sizes]
 * 4 Numeric Data Types
 * [|4.1 Matrices]
 * [|4.1.1 Empty Matrices]
 * [|4.2 Ranges]
 * [|4.3 Single Precision Data Types]
 * [|4.4 Integer Data Types]
 * [|4.4.1 Integer Arithmetic]
 * [|4.5 Bit Manipulations]
 * [|4.6 Logical Values]
 * [|4.7 Promotion and Demotion of Data Types]
 * [|4.8 Predicates for Numeric Objects]
 * 5 Strings
 * [|5.1 Escape Sequences in String Constants]
 * [|5.2 Character Arrays]
 * [|5.3 Creating Strings]
 * [|5.3.1 Concatenating Strings]
 * [|5.3.2 Conversion of Numerical Data to Strings]
 * [|5.4 Comparing Strings]
 * [|5.5 Manipulating Strings]
 * [|5.6 String Conversions]
 * [|5.7 Character Class Functions]
 * 6 Data Containers
 * [|6.1 Data Structures]
 * [|6.1.1 Basic Usage and Examples]
 * [|6.1.2 Structure Arrays]
 * [|6.1.3 Creating Structures]
 * [|6.1.4 Manipulating Structures]
 * [|6.1.5 Processing Data in Structures]
 * [|6.2 Cell Arrays]
 * [|6.2.1 Basic Usage of Cell Arrays]
 * [|6.2.2 Creating Cell Array]
 * [|6.2.3 Indexing Cell Arrays]
 * [|6.2.4 Cell Arrays of Strings]
 * [|6.2.5 Processing Data in Cell Arrays]
 * [|6.3 Comma Separated Lists]
 * [|6.3.1 Comma Separated Lists Generated from Cell Arrays]
 * [|6.3.2 Comma Separated Lists Generated from Structure Arrays]
 * 7 Variables
 * [|7.1 Global Variables]
 * [|7.2 Persistent Variables]
 * [|7.3 Status of Variables]
 * 8 Expressions
 * [|8.1 Index Expressions]
 * [|8.2 Calling Functions]
 * [|8.2.1 Call by Value]
 * [|8.2.2 Recursion]
 * [|8.3 Arithmetic Operators]
 * [|8.4 Comparison Operators]
 * [|8.5 Boolean Expressions]
 * [|8.5.1 Element-by-element Boolean Operators]
 * [|8.5.2 Short-circuit Boolean Operators]
 * [|8.6 Assignment Expressions]
 * [|8.7 Increment Operators]
 * [|8.8 Operator Precedence]
 * 9 Evaluation
 * [|9.1 Calling a Function by its Name]
 * [|9.2 Evaluation in a Different Context]
 * 10 Statements
 * [|10.1 The if Statement]
 * [|10.2 The switch Statement]
 * [|10.2.1 Notes for the C Programmer]
 * [|10.3 The while Statement]
 * [|10.4 The do-until Statement]
 * [|10.5 The for Statement]
 * [|10.5.1 Looping Over Structure Elements]
 * [|10.6 The break Statement]
 * [|10.7 The continue Statement]
 * [|10.8 The unwind_protect Statement]
 * [|10.9 The try Statement]
 * [|10.10 Continuation Lines]
 * 11 Functions and Scripts
 * [|11.1 Defining Functions]
 * [|11.2 Multiple Return Values]
 * [|11.3 Variable-length Argument Lists]
 * [|11.4 Ignoring Arguments]
 * [|11.5 Variable-length Return Lists]
 * [|11.6 Returning from a Function]
 * [|11.7 Default Arguments]
 * [|11.8 Function Files]
 * [|11.8.1 Manipulating the Load Path]
 * [|11.8.2 Subfunctions]
 * [|11.8.3 Private Functions]
 * [|11.8.4 Overloading and Autoloading]
 * [|11.8.5 Function Locking]
 * [|11.8.6 Function Precedence]
 * [|11.9 Script Files]
 * [|11.10 Function Handles, Inline Functions, and Anonymous Functions]
 * [|11.10.1 Function Handles]
 * [|11.10.2 Anonymous Functions]
 * [|11.10.3 Inline Functions]
 * [|11.11 Commands]
 * [|11.12 Organization of Functions Distributed with Octave]
 * 12 Errors and Warnings
 * [|12.1 Handling Errors]
 * [|12.1.1 Raising Errors]
 * [|12.1.2 Catching Errors]
 * [|12.2 Handling Warnings]
 * [|12.2.1 Issuing Warnings]
 * [|12.2.2 Enabling and Disabling Warnings]
 * 13 Debugging
 * [|13.1 Entering Debug Mode]
 * [|13.2 Leaving Debug Mode]
 * [|13.3 Breakpoints]
 * [|13.4 Debug Mode]
 * [|13.5 Call Stack]
 * 14 Input and Output
 * [|14.1 Basic Input and Output]
 * [|14.1.1 Terminal Output]
 * [|14.1.1.1 Paging Screen Output]
 * [|14.1.2 Terminal Input]
 * [|14.1.3 Simple File I/O]
 * [|14.1.3.1 Saving Data on Unexpected Exits]
 * [|14.2 C-Style I/O Functions]
 * [|14.2.1 Opening and Closing Files]
 * [|14.2.2 Simple Output]
 * [|14.2.3 Line-Oriented Input]
 * [|14.2.4 Formatted Output]
 * [|14.2.5 Output Conversion for Matrices]
 * [|14.2.6 Output Conversion Syntax]
 * [|14.2.7 Table of Output Conversions]
 * [|14.2.8 Integer Conversions]
 * [|14.2.9 Floating-Point Conversions]
 * [|14.2.10 Other Output Conversions]
 * [|14.2.11 Formatted Input]
 * [|14.2.12 Input Conversion Syntax]
 * [|14.2.13 Table of Input Conversions]
 * [|14.2.14 Numeric Input Conversions]
 * [|14.2.15 String Input Conversions]
 * [|14.2.16 Binary I/O]
 * [|14.2.17 Temporary Files]
 * [|14.2.18 End of File and Errors]
 * [|14.2.19 File Positioning]
 * 15 Plotting
 * [|15.1 Introduction to Plotting]
 * [|15.2 High-Level Plotting]
 * [|15.2.1 Two-Dimensional Plots]
 * [|15.2.1.1 Two-dimensional Function Plotting]
 * [|15.2.2 Three-Dimensional Plotting]
 * [|15.2.2.1 Three-dimensional Function Plotting]
 * [|15.2.2.2 Three-dimensional Geometric Shapes]
 * [|15.2.3 Plot Annotations]
 * [|15.2.4 Multiple Plots on One Page]
 * [|15.2.5 Multiple Plot Windows]
 * [|15.2.6 Use of axis, line, and patch functions]
 * [|15.2.7 Manipulation of plot windows]
 * [|15.2.8 Use of the interpreter Property]
 * [|15.2.9 Printing and Saving Plots]
 * [|15.2.10 Interacting with Plots]
 * [|15.2.11 Test Plotting Functions]
 * [|15.3 Graphics Data Structures]
 * [|15.3.1 Introduction to Graphics Structures]
 * [|15.3.2 Graphics Objects]
 * [|15.3.2.1 Handle Functions]
 * [|15.3.3 Graphics Object Properties]
 * [|15.3.3.1 Root Figure Properties]
 * [|15.3.3.2 Figure Properties]
 * [|15.3.3.3 Axes Properties]
 * [|15.3.3.4 Line Properties]
 * [|15.3.3.5 Text Properties]
 * [|15.3.3.6 Image Properties]
 * [|15.3.3.7 Patch Properties]
 * [|15.3.3.8 Surface Properties]
 * [|15.3.4 Searching Properties]
 * [|15.3.5 Managing Default Properties]
 * [|15.4 Advanced Plotting]
 * [|15.4.1 Colors]
 * [|15.4.2 Line Styles]
 * [|15.4.3 Marker Styles]
 * [|15.4.4 Callbacks]
 * [|15.4.5 Object Groups]
 * [|15.4.5.1 Data Sources in Object Groups]
 * [|15.4.5.2 Area Series]
 * [|15.4.5.3 Bar Series]
 * [|15.4.5.4 Contour Groups]
 * [|15.4.5.5 Error Bar Series]
 * [|15.4.5.6 Line Series]
 * [|15.4.5.7 Quiver Group]
 * [|15.4.5.8 Scatter Group]
 * [|15.4.5.9 Stair Group]
 * [|15.4.5.10 Stem Series]
 * [|15.4.5.11 Surface Group]
 * [|15.4.6 Graphics Toolkits]
 * [|15.4.6.1 Customizing Toolkit Behavior]
 * 16 Matrix Manipulation
 * [|16.1 Finding Elements and Checking Conditions]
 * [|16.2 Rearranging Matrices]
 * [|16.3 Applying a Function to an Array]
 * [|16.4 Special Utility Matrices]
 * [|16.5 Famous Matrices]
 * 17 Arithmetic
 * [|17.1 Exponents and Logarithms]
 * [|17.2 Complex Arithmetic]
 * [|17.3 Trigonometry]
 * [|17.4 Sums and Products]
 * [|17.5 Utility Functions]
 * [|17.6 Special Functions]
 * [|17.7 Rational Approximations]
 * [|17.8 Coordinate Transformations]
 * [|17.9 Mathematical Constants]
 * 18 Linear Algebra
 * [|18.1 Techniques Used for Linear Algebra]
 * [|18.2 Basic Matrix Functions]
 * [|18.3 Matrix Factorizations]
 * [|18.4 Functions of a Matrix]
 * [|18.5 Specialized Solvers]
 * 19 Nonlinear Equations
 * 20 Diagonal and Permutation Matrices
 * [|20.1 Creating and Manipulating Diagonal and Permutation Matrices]
 * [|20.1.1 Creating Diagonal Matrices]
 * [|20.1.2 Creating Permutation Matrices]
 * [|20.1.3 Explicit and Implicit Conversions]
 * [|20.2 Linear Algebra with Diagonal and Permutation Matrices]
 * [|20.2.1 Expressions Involving Diagonal Matrices]
 * [|20.2.2 Expressions Involving Permutation Matrices]
 * [|20.3 Functions That Are Aware of These Matrices]
 * [|20.3.1 Diagonal Matrix Functions]
 * [|20.3.2 Permutation Matrix Functions]
 * [|20.4 Some Examples of Usage]
 * [|20.5 The Differences in Treatment of Zero Elements]
 * 21 Sparse Matrices
 * [|21.1 The Creation and Manipulation of Sparse Matrices]
 * [|21.1.1 Storage of Sparse Matrices]
 * [|21.1.2 Creating Sparse Matrices]
 * [|21.1.3 Finding out Information about Sparse Matrices]
 * [|21.1.4 Basic Operators and Functions on Sparse Matrices]
 * [|21.1.4.1 Sparse Functions]
 * [|21.1.4.2 The Return Types of Operators and Functions]
 * [|21.1.4.3 Mathematical Considerations]
 * [|21.2 Linear Algebra on Sparse Matrices]
 * [|21.3 Iterative Techniques applied to sparse matrices]
 * [|21.4 Real Life Example of the use of Sparse Matrices]
 * 22 Numerical Integration
 * [|22.1 Functions of One Variable]
 * [|22.2 Orthogonal Collocation]
 * [|22.3 Functions of Multiple Variables]
 * 23 Differential Equations
 * [|23.1 Ordinary Differential Equations]
 * [|23.2 Differential-Algebraic Equations]
 * 24 Optimization
 * [|24.1 Linear Programming]
 * [|24.2 Quadratic Programming]
 * [|24.3 Nonlinear Programming]
 * [|24.4 Linear Least Squares]
 * 25 Statistics
 * [|25.1 Descriptive Statistics]
 * [|25.2 Basic Statistical Functions]
 * [|25.3 Statistical Plots]
 * [|25.4 Correlation and Regression Analysis]
 * [|25.5 Distributions]
 * [|25.6 Tests]
 * [|25.7 Random Number Generation]
 * 26 Sets
 * [|26.1 Set Operations]
 * 27 Polynomial Manipulations
 * [|27.1 Evaluating Polynomials]
 * [|27.2 Finding Roots]
 * [|27.3 Products of Polynomials]
 * [|27.4 Derivatives / Integrals / Transforms]
 * [|27.5 Polynomial Interpolation]
 * [|27.6 Miscellaneous Functions]
 * 28 Interpolation
 * [|28.1 One-dimensional Interpolation]
 * [|28.2 Multi-dimensional Interpolation]
 * 29 Geometry
 * [|29.1 Delaunay Triangulation]
 * [|29.1.1 Plotting the Triangulation]
 * [|29.1.2 Identifying Points in Triangulation]
 * [|29.2 Voronoi Diagrams]
 * [|29.3 Convex Hull]
 * [|29.4 Interpolation on Scattered Data]
 * 30 Signal Processing
 * 31 Image Processing
 * [|31.1 Loading and Saving Images]
 * [|31.2 Displaying Images]
 * [|31.3 Representing Images]
 * [|31.4 Plotting on top of Images]
 * [|31.5 Color Conversion]
 * 32 Audio Processing
 * 33 Object Oriented Programming
 * [|33.1 Creating a Class]
 * [|33.2 Manipulating Classes]
 * [|33.3 Indexing Objects]
 * [|33.3.1 Defining Indexing And Indexed Assignment]
 * [|33.3.2 Indexed Assignment Optimization]
 * [|33.4 Overloading Objects]
 * [|33.4.1 Function Overloading]
 * [|33.4.2 Operator Overloading]
 * [|33.4.3 Precedence of Objects]
 * [|33.5 Inheritance and Aggregation]
 * 34 System Utilities
 * [|34.1 Timing Utilities]
 * [|34.2 Filesystem Utilities]
 * [|34.3 File Archiving Utilities]
 * [|34.4 Networking Utilities]
 * [|34.4.1 FTP Objects]
 * [|34.4.2 URL Manipulation]
 * [|34.5 Controlling Subprocesses]
 * [|34.6 Process, Group, and User IDs]
 * [|34.7 Environment Variables]
 * [|34.8 Current Working Directory]
 * [|34.9 Password Database Functions]
 * [|34.10 Group Database Functions]
 * [|34.11 System Information]
 * [|34.12 Hashing Functions]
 * 35 Packages
 * [|35.1 Installing and Removing Packages]
 * [|35.2 Using Packages]
 * [|35.3 Administrating Packages]
 * [|35.4 Creating Packages]
 * [|35.4.1 The DESCRIPTION File]
 * [|35.4.2 The INDEX File]
 * [|35.4.3 PKG_ADD and PKG_DEL Directives]
 * Appendix A Dynamically Linked Functions
 * [|A.1 Oct-Files]
 * [|A.1.1 Getting Started with Oct-Files]
 * [|A.1.2 Matrices and Arrays in Oct-Files]
 * [|A.1.3 Character Strings in Oct-Files]
 * [|A.1.4 Cell Arrays in Oct-Files]
 * [|A.1.5 Structures in Oct-Files]
 * [|A.1.6 Sparse Matrices in Oct-Files]
 * [|A.1.6.1 The Differences between the Array and Sparse Classes]
 * [|A.1.6.2 Creating Sparse Matrices in Oct-Files]
 * [|A.1.6.3 Using Sparse Matrices in Oct-Files]
 * [|A.1.7 Accessing Global Variables in Oct-Files]
 * [|A.1.8 Calling Octave Functions from Oct-Files]
 * [|A.1.9 Calling External Code from Oct-Files]
 * [|A.1.10 Allocating Local Memory in Oct-Files]
 * [|A.1.11 Input Parameter Checking in Oct-Files]
 * [|A.1.12 Exception and Error Handling in Oct-Files]
 * [|A.1.13 Documentation and Test of Oct-Files]
 * [|A.2 Mex-Files]
 * [|A.2.1 Getting Started with Mex-Files]
 * [|A.2.2 Working with Matrices and Arrays in Mex-Files]
 * [|A.2.3 Character Strings in Mex-Files]
 * [|A.2.4 Cell Arrays with Mex-Files]
 * [|A.2.5 Structures with Mex-Files]
 * [|A.2.6 Sparse Matrices with Mex-Files]
 * [|A.2.7 Calling Other Functions in Mex-Files]
 * [|A.3 Standalone Programs]
 * Appendix B Test and Demo Functions
 * [|B.1 Test Functions]
 * [|B.2 Demonstration Functions]
 * Appendix C Tips and Standards
 * [|C.1 Writing Clean Octave Programs]
 * [|C.2 Tips for Making Code Run Faster.]
 * [|C.3 Tips on Writing Comments]
 * [|C.4 Conventional Headers for Octave Functions]
 * [|C.5 Tips for Documentation Strings]
 * Appendix D Contributing Guidelines
 * [|D.1 How to Contribute]
 * [|D.2 General Guidelines]
 * [|D.3 Octave Sources (m-files)]
 * [|D.4 C++ Sources]
 * [|D.5 Other Sources]
 * Appendix E Obsolete Functions
 * Appendix F Known Causes of Trouble
 * [|F.1 Actual Bugs We Haven't Fixed Yet]
 * [|F.2 Reporting Bugs]
 * [|F.2.1 Have You Found a Bug?]
 * [|F.2.2 Where to Report Bugs]
 * [|F.2.3 How to Report Bugs]
 * [|F.2.4 Sending Patches for Octave]
 * [|F.3 How To Get Help with Octave]
 * Appendix G Installing Octave
 * [|G.1 Compiling Octave with 64-bit Indexing]
 * [|G.2 Installation Problems]
 * Appendix H Emacs Octave Support
 * [|H.1 Installing EOS]
 * [|H.2 Using Octave Mode]
 * [|H.3 Running Octave from Within Emacs]
 * [|H.4 Using the Emacs Info Reader for Octave]
 * Appendix I GNU GENERAL PUBLIC LICENSE
 * Concept Index
 * Function Index
 * Operator Index