diff --git a/help/builder_help.sce b/help/builder_help.sce
new file mode 100644
index 0000000..4d4e031
--- /dev/null
+++ b/help/builder_help.sce
@@ -0,0 +1,21 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+mode(-1)
+lines(0)
+
+toolbox_title = "FOSSEE_Image_Processing_Toolbox"
+
+help_dir = get_absolute_file_path('builder_help.sce');
+
+tbx_builder_help_lang("en_US", help_dir);
+
+clear toolbox_title;
diff --git a/help/builder_help.sce~ b/help/builder_help.sce~
new file mode 100644
index 0000000..da2f4f7
--- /dev/null
+++ b/help/builder_help.sce~
@@ -0,0 +1,21 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: harpreet.mertia@gmail.com
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+mode(-1)
+lines(0)
+
+toolbox_title = "FOSSEE_Optimization_Toolbox"
+
+help_dir = get_absolute_file_path('builder_help.sce');
+
+tbx_builder_help_lang("en_US", help_dir);
+
+clear toolbox_title;
diff --git a/help/en_US/build_help.sce b/help/en_US/build_help.sce
new file mode 100644
index 0000000..81154f3
--- /dev/null
+++ b/help/en_US/build_help.sce
@@ -0,0 +1,17 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+help_lang_dir = get_absolute_file_path('build_help.sce');
+
+tbx_build_help(TOOLBOX_TITLE, help_lang_dir);
+
+clear help_lang_dir;
+
diff --git a/help/en_US/build_help.sce~ b/help/en_US/build_help.sce~
new file mode 100644
index 0000000..0205c56
--- /dev/null
+++ b/help/en_US/build_help.sce~
@@ -0,0 +1,17 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: harpreet.mertia@gmail.com
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+help_lang_dir = get_absolute_file_path('build_help.sce');
+
+tbx_build_help(TOOLBOX_TITLE, help_lang_dir);
+
+clear help_lang_dir;
+
diff --git a/help/en_US/colorChange.xml b/help/en_US/colorChange.xml
new file mode 100644
index 0000000..b3c6b47
--- /dev/null
+++ b/help/en_US/colorChange.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+ colorChange
+ This function seamlessly mixes two differently colored versions of the input image.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = colorChange(src, mask, red_mul, green_mul, blue_mul )
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input source image
+ mask:
+ Input mask image with same size as that of source image.
+ red_mul:
+ R-channel multiply factor (float) (default value= 1.0f)
+ green_mul:
+ G-channel multiply factor.(float) (default value= 1.0f)
+ blue_mul:
+ B-channel multiply factor.(float) (default value= 1.0f)
+
+
+
+
+ Description
+
+Given an original color image, two differently colored versions of this image can be mixed seamlessly.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/convert.xml b/help/en_US/convert.xml
new file mode 100644
index 0000000..24defc0
--- /dev/null
+++ b/help/en_US/convert.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+ convert
+ This function converts a matrix to another data type with optional scaling.
+
+
+
+
+ Calling Sequence
+
+ src = imread('location-of-src');
+ dst = convert(src,rtype, alpha,beta);
+
+
+
+
+
+ Parameters
+
+ src :
+ the source matrix/image
+ alpha:
+ optional scale factor (default value is 1) (type- Double)
+ beta:
+ optional delta added to the scaled values (default value is 0) (type- Double)
+ rtype:
+ (type- string)desired output matrix type/depth.It supports the following types -> 1) CV_8U, 2) CV_8S, 3) CV_16U ,4) CV_16S, 5) CV_32S, 6) CV_64F
+
+
+
+
+ Description
+
+The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overflows-
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/detailEnhance.xml b/help/en_US/detailEnhance.xml
new file mode 100644
index 0000000..99d6e99
--- /dev/null
+++ b/help/en_US/detailEnhance.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+ detailEnhance
+ This filter enhances the details of a the given image.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ outputImage = detailEnhance(src,sigma_s,sigma_r)
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input 8-bit 3-channel image.
+ sigma_s:
+ Range between 0 to 200 (float) (default value is 10)
+ sigma_r:
+ Range between 0 to 1. (float) (default value is 0.15f)
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/edgePreservingFilter.xml b/help/en_US/edgePreservingFilter.xml
new file mode 100644
index 0000000..dda9ae2
--- /dev/null
+++ b/help/en_US/edgePreservingFilter.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+ edgePreservingFilter
+ This function smoothens the given input image while preserving the edges.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ outputImage = edgePreservingFilter(src,flag,sigma_s,sigma_r)
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input 8-bit 3-channel image.
+ flag:
+ (default value is 1) (denotes Edge preserving filters). It takes 2 values -> 1) 1 (for RECURS_FILTER) ; 2) 2 (for NORMCONV_FILTER)
+ sigma_s:
+ Range between 0 to 200 (float) (default value is 60 )
+ sigma_r:
+ Range between 0 to 1. (float) (default value is 0.4f)
+
+
+
+
+ Description
+
+Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters
+are used in many different applications
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/getDepth.xml b/help/en_US/getDepth.xml
new file mode 100644
index 0000000..33ae8c0
--- /dev/null
+++ b/help/en_US/getDepth.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+ getDepth
+ This function returns the depth of the input matrix element.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ depth = getDepth(src)
+
+
+
+
+
+ Parameters
+
+ src:
+ Input 8-bit 3-channel image.
+ depth:
+ a string which denoted the depth of the src.It identifies the following- 1) CV_8U - 8-bit unsigned integers ( 0..255 ) ; 2) CV_8S - 8-bit signed integers ( -128..127 ); 3) CV_16U - 16-bit unsigned integers ( 0..65535 ); 4) CV_16U - 16-bit unsigned integers ( 0..65535 ); 5) CV_16S - 16-bit signed integers ( -32768..32767 ) ; 6) CV_32S - 32-bit signed integers ( -2147483648..2147483647 ) ; 7) CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN )
+
+
+
+
+ Examples
+
+
+
+
+ Description
+
+Note - Scilab does not support CV_32F - it would be considered as CV_64F
+
+
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/getStructuringElement.xml b/help/en_US/getStructuringElement.xml
new file mode 100644
index 0000000..a486245
--- /dev/null
+++ b/help/en_US/getStructuringElement.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+ getStructuringElement
+ This function returns a structuring element required for the morphological operations.
+
+
+
+
+ Calling Sequence
+
+ se = raw_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+
+
+
+
+
+ Parameters
+
+ se:
+ output structuring element matrix
+ shape:
+ element shape that could be one of the following-
+ cols:
+ Width of the structuring element
+ rows:
+ Height of the structuring element
+ anchor:
+ Anchor position within the element. The value (-1, -1) means that the anchor is at the center.
+ anchor_x:
+ x-coordinate of the anchor
+ anchor_y:
+ y-coordinate of the anchor
+
+
+
+
+ Description
+
+The function constructs and returns the structuring element that can be further passed to
+function that perform morphological operations like erode or dilate.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Sukul Bagai
+
+
+
diff --git a/help/en_US/illuminationChange.xml b/help/en_US/illuminationChange.xml
new file mode 100644
index 0000000..eab5a07
--- /dev/null
+++ b/help/en_US/illuminationChange.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+ illuminationChange
+ This function is used to reduce specular reflections or highlight under-exposed foreground objects.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = illuminationChange(src, mask, alpha, beta )
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input source image
+ mask:
+ Input mask image with same size as that of source image.
+ alpha:
+ Value ranges between 0-2. (float) (default value= 0.2f)
+ beta:
+ Value ranges between 0-2. (float) (default value= 0.4f)
+
+
+
+
+ Description
+
+Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating
+back with a Poisson solver, modifies locally the apparent illumination of an image.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/localMaximaFinder.xml b/help/en_US/localMaximaFinder.xml
new file mode 100644
index 0000000..aff3c17
--- /dev/null
+++ b/help/en_US/localMaximaFinder.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+ localMaximaFinder
+ This function returns local maxima in input matrice.
+
+
+
+
+ Calling Sequence
+
+ location=localMaximaFinder(inputMatrix,neighborhood,maxNoOfMaxima,threshold)
+
+
+
+
+
+ Parameters
+
+ inputMatrix:
+ 2-D input matrix
+ neighborhood:
+ It specifies the neighborhood around maxima, function zeros out the values inside the block.
+ maxNoOfMaxima:
+ maximum number of local maxima you want to find.
+ threshold:
+ It specifies minimum value of the local maxima.
+
+
+
+
+ Description
+
+localMaximaFinder returns [x y] coordinates of the local maxima in a M-by-2 matrix where M is
+the number of local maxima and each row represents one local maximum
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
diff --git a/help/en_US/master_help.xml b/help/en_US/master_help.xml
new file mode 100644
index 0000000..fe069b9
--- /dev/null
+++ b/help/en_US/master_help.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+ FOSSEE Image Processing Toolbox
+
+
+
+FOSSEE Image Processing Toolbox
+&a9ec40b34c5f549027c0eea3e8f1265a9;
+&a299a344bcba191174e5f27907137a5a3;
+&a499106a84662ba4412a6205674f1fc87;
+&a43e4065178b6a3c4e0b5bb54442950ea;
+&a78b9cadacbff316f7a1ce51f3df35f9d;
+&a0603f323705f457e4dd38568fdf2627b;
+&a28faf1d6451ab38a3502e6f30bd02f7e;
+&ad269082a179d69d1bebb64224b0dd11f;
+&ac26c9c7f3d61cb2afb5c3e3e0efda3d8;
+&a03f4c40d3bc0c19671a86caf49064e1b;
+&a42c1e9d77c0ad52ff79a65eeecbe9726;
+&a3fca328b22cb6929651e630f42a7b0f8;
+&a6b42f1c5b15ed223fd5e8325d0026495;
+&a7739060770044c23e8397bd2f20616a0;
+&a1b6ee78858c49bd79d043dea51d55f6e;
+&a2ced9e3a6f8f997e636ea3ae6c6afd62;
+&a6054d5e8b605e9d1f7bdff2c1ef04a86;
+&a89cbf7de07ce6b50dd9173e8e31c453e;
+&aceda8fbf845d059f2253e50367ed6fcd;
+&ac010e344a8b8d75230d24be683d83ffa;
+&ab0828a610921e67065053cba8eed9099;
+&a042a487be4f8e9c1abd060477da56a53;
+
+
diff --git a/help/en_US/minAreaRect.xml b/help/en_US/minAreaRect.xml
new file mode 100644
index 0000000..51726ec
--- /dev/null
+++ b/help/en_US/minAreaRect.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+ minAreaRect
+ This function is used to find a rotated rectangle of the minimum area enclosing the input 2D point set.
+
+
+
+
+ Calling Sequence
+
+ x = [x1 x2 x3 ...............xn]
+ y = [y1 y2 y3................yn]
+ out = minAreaRect(x , y)
+
+
+
+
+
+ Parameters
+
+ x:
+ 1xn matrix denoting the x coordinates of the points
+ y:
+ 1xn matrix denoting the corresponding y coordinates of the points
+ out:
+ Output structure with the following members - 1) width- width of the rectangle, 2) height- height of the rectangle, 3) center_x- x coordinate of the center of the rectangle, 4) center_y- x coordinate of the center of the rectangle, 5) angle- the angle by which the rectanle is rotated, 6) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 7) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 8) y_coordinates_vertices- 1x4 Double matrix denoting the corresponding y coordinates of the vertices of the rectangle
+
+
+
+
+ Description
+
+The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a specified point set.
+the returned rotatedRect can contain negative indices when data is close to the containing Mat element boundary.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Priyanka Hiranandani
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/minEnclosingCircle.xml b/help/en_US/minEnclosingCircle.xml
new file mode 100644
index 0000000..d9d0ec4
--- /dev/null
+++ b/help/en_US/minEnclosingCircle.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+ minEnclosingCircle
+ This function is used to find the circumcircle of an object constituted by the given set of input points.
+
+
+
+
+ Calling Sequence
+
+ x = [x1 x2 x3 ...............xn]
+ y = [y1 y2 y3................yn]
+ out = minEnclosingCirlce(x , y)
+
+
+
+
+
+ Parameters
+
+ x:
+ 1xn matrix denoting the x coordinates of the points of the object
+ y:
+ 1xn matrix denoting the corresponding y coordinates of the points of the object
+ out:
+ Output structure with the following members- 1) center_x- x coordinate of the center of the circle, 2)center_y- x coordinate of the center of the circle, 3) radius- radius of the circle
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Priyanka Hiranandani
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/partition.xml b/help/en_US/partition.xml
new file mode 100644
index 0000000..0acc665
--- /dev/null
+++ b/help/en_US/partition.xml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+ partition
+ This function is used to split an imageSet.
+
+
+
+
+ Calling Sequence
+
+ imgSet = imageSet(location) //or imgSet = imageSet(location,'recursive')
+ [set1 set2 ... setN] = partition(imgSet, groupSizes)
+ [set1 set2 ... setN] = partition(imgSet, groupPercentages)
+ [set1 set2 ... setN] = partition(..., method)
+
+
+
+
+
+ Parameters
+
+ set:
+ Output imageSet structure
+ imgSet:
+ Input imageSet to be split
+ groupSizes:
+ Matrix that specifies size of output sets
+ groupPercentages:
+ Matrix that specifies percentage content of each output set
+ method:
+ (Optional) Determines whether split is 'sequential' or 'randomized' (Default: 'sequential')
+
+
+
+
+ Description
+
+This function splits an imageSet into two or more imageSets on the basis of the groupSizes or groupPercentages provided.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohit Suri
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/pencilSketch.xml b/help/en_US/pencilSketch.xml
new file mode 100644
index 0000000..3a875fb
--- /dev/null
+++ b/help/en_US/pencilSketch.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+ pencilSketch
+ This function is used to give a non-photorealistic pencil-like line drawing effect to the given input image.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ [outputImage_1 outputImage_2 ] = pencilSketch(src,sigma_s,sigma_r,shade_factor)
+
+
+
+
+
+ Parameters
+
+ outputImage_1:
+ resultant Output image with single channel
+ outputImage_2:
+ resultant Output image with 3 channels
+ src:
+ Input 8-bit 3-channel image.
+ sigma_s:
+ Range between 0 to 200 (float) (default value is 60)
+ sigma_r:
+ Range between 0 to 1. (float) (default value is 0.07f)
+ shade_factor:
+ Range between 0 to 0.1 (default value is 0.02f)
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/pyramid.xml b/help/en_US/pyramid.xml
new file mode 100644
index 0000000..892663a
--- /dev/null
+++ b/help/en_US/pyramid.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+ pyramid
+ This function computes the pyramid reduction or expansion of input_image.
+
+
+
+
+ Calling Sequence
+
+ output_image=pyramid(inputimage,direction,level);
+
+
+
+
+
+ Parameters
+
+ inputimage :
+ image matrix on which pyramid reduction or expansion has to be applied
+ Direction :
+ An input string 'expand' for expand or 'reduce' for reduce the image matrix
+ level :
+ It is specify number of times want to expand or reduce the dimension of an image matrix.
+ output_image :
+ Expanded or reduced form of image after pyramid reduction or expansio
+
+
+
+
+ Description
+
+This function computes the pyramid reduction or expansion of input image.It uses Gaussian pyramid to downsamples
+and upsamples the image pixels.In reduction it reduces the size of image (if m*n matrix image) by m/pow(2,level)
+and n/pow(2,level).In expansion it expands the size of image (if m*n matrix image) by m*pow(2,level)
+and n*pow(2,level) where pow(x,y)=x^y.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Diwakar Bhardwaj
+
+
+
diff --git a/help/en_US/regionFill.xml b/help/en_US/regionFill.xml
new file mode 100644
index 0000000..f66144b
--- /dev/null
+++ b/help/en_US/regionFill.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+ regionFill
+ This function restores the selected region in an image using the region neighborhood.
+
+
+
+
+ Calling Sequence
+
+ src = imread(location-for-image)
+ x = [x1 x2 ...........xn ] //x coordinates of polygon covering the region that you want to fill
+ y = [y1 y2 ...........yn ] //corresponding y coordinates of polygon covering the region that you want to fill
+ dstImg 1= regionFill(srcImg,inpaintRadius,x,y)
+
+ mask = roiFreeHand(srx) //making a mask - you can also use other function to make the mask
+ dstImg2 = regionFill(srcImg,inpaintRadius,mask)
+
+
+
+
+
+ Parameters
+
+ srcImg:
+ input source imge //it is converted to 8 bit internally
+ inpaintRadius:
+ Radius of a circular neighborhood of each point inpainted that is considered by the algorithm(Double)
+ mask:
+ Inpainting mask. Non-zero pixels indicate the area that needs to be inpainted.
+ x:
+ 1xn matrix denoting x coordinates of polygon covering the region that you want to fill
+ y:
+ 1xn matrix denoting y coordinates of polygon covering the region that you want to fill
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Vinay Bhat
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/rgb2gray.xml b/help/en_US/rgb2gray.xml
new file mode 100644
index 0000000..a0264e9
--- /dev/null
+++ b/help/en_US/rgb2gray.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+ rgb2gray
+ Given an original color image, this function converts it into a single channel grayscale image and return the same.
+
+
+
+
+ Calling Sequence
+
+ inputImage = imread("image-location-for-inputImage");
+ outputImg = rgb2gray(inputImage)
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ single channel grayscale version of the inputImage
+ inputImage:
+ Input source image
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Priyanka Hiranandani
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/roiFreeHand.xml b/help/en_US/roiFreeHand.xml
new file mode 100644
index 0000000..675d98c
--- /dev/null
+++ b/help/en_US/roiFreeHand.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+ roiFreeHand
+ This is a gui based function which is used to create a mask by selecting the region of interest
+
+
+
+
+ Calling Sequence
+
+ src = imread(image-location-for-src)
+ mask = roiFreeHand(src)
+
+
+
+
+
+ Parameters
+
+ mask:
+ Output 8 bit mask image with same size as input image
+ image:
+ Input image to be masked
+
+
+
+
+ Description
+
+This function allows the user to create a mask by selecting the region of interest in the image.
+Start selecting the region of interest by pressing the left mouse button and moving in the clockwise direction.
+Don't leave the left mouse button until you are done selecting the region. Once the region has been selected,
+wait until the process completes.
+More than one region of interest can be selected by repeating the same procedure.
+Once you are done selecting the ROI, press the small 's' key.This would stop the process.
+This function returns a 8 bit mask image with (the ROI being white and the rest of the region being black).
+
+
+Note
+more than one ROI can be selected from the image. Press key 's' only after all ROI have been selected.
+Move the mouse only in the clockwise direction.
+This algorithm assumes that the selected points in the ROI are very close to each other. Thus for best result, move
+the mouse slowly while selecting the ROI
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/roiPoly.xml b/help/en_US/roiPoly.xml
new file mode 100644
index 0000000..457ff99
--- /dev/null
+++ b/help/en_US/roiPoly.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+ roiPoly
+ This function creates mask by selecting the ROI as a poygon.
+
+
+
+
+ Calling Sequence
+
+ I = imimread(image-location)
+ c = [c1 c2 ..............cn]
+ r = [r1 r2 ..............rn]
+ BW = roipoly(I, c, r)
+
+
+
+
+
+ Parameters
+
+ I :
+ Input image
+ c :
+ a 1xn vector specifying the column indices of the vertices of the n sided polygon
+ r :
+ a 1xn vector specifying the row indices of the vertices of the n sided polygon
+ BW:
+ Output mask image for input I
+
+
+
+
+ Description
+
+Returns the ROI specified by the polygon described by vectors c and r, which specify the column
+and row indices of each vertex, respectively. c and r must be the same size.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Vinay Bhat
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..42ca2b7
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..6d4b50e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,5 @@
+euu_0ueeuu8bF3]aq^(`K8ʾʌ(ҫ2b
+*"29Jʸ\`T`]w02r̘66/<ͫ20ͪ2&B,Ϊ0.23*
+̦/55b*3.2034`J<
+00
+*(*8̊(®/02*2*6*+*0`
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..b89bfe1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
@@ -0,0 +1,2 @@
+(י}K]<#*Dg"-FE.IW3
+MfF/)E /L[ыce dHFMᶯ0
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..104e68b
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..9dc05ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=807 id2=1
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..1335a4b
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP differ
diff --git a/help/en_US/scilab_en_US_help/ScilabCaution.png b/help/en_US/scilab_en_US_help/ScilabCaution.png
new file mode 100644
index 0000000..a9e4ff3
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabCaution.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabEdit.png b/help/en_US/scilab_en_US_help/ScilabEdit.png
new file mode 100644
index 0000000..188e1c1
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabEdit.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabExecute.png b/help/en_US/scilab_en_US_help/ScilabExecute.png
new file mode 100644
index 0000000..a7de0fe
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabExecute.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabImportant.png b/help/en_US/scilab_en_US_help/ScilabImportant.png
new file mode 100644
index 0000000..81e9ed2
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabImportant.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabNote.png b/help/en_US/scilab_en_US_help/ScilabNote.png
new file mode 100644
index 0000000..8851b99
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabNote.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabTip.png b/help/en_US/scilab_en_US_help/ScilabTip.png
new file mode 100644
index 0000000..8851b99
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabTip.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabWarning.png b/help/en_US/scilab_en_US_help/ScilabWarning.png
new file mode 100644
index 0000000..a9e4ff3
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabWarning.png differ
diff --git a/help/en_US/scilab_en_US_help/c_code.css b/help/en_US/scilab_en_US_help/c_code.css
new file mode 100644
index 0000000..948d2ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/c_code.css
@@ -0,0 +1,54 @@
+.ccomment {
+ font-style: italic;
+ color: #b22222
+}
+
+.cdefault {
+ font-style: normal;
+ color: #000000
+}
+
+.copenclose {
+ font-style: normal;
+ color: #000000
+}
+
+.coperator {
+ font-style: normal;
+ color: #000000
+}
+
+.cstring {
+ font-style: normal;
+ color: #a6557a
+}
+
+.ctype {
+ font-style: normal;
+ color: #55a655
+}
+
+.cpreprocessor {
+ font-style: normal;
+ color: #9965a6
+}
+
+.cid {
+ font-style: normal;
+ color: #000000
+}
+
+.ckeyword {
+ font-style: normal;
+ color: #ad3ff2
+}
+
+.cmodifier {
+ font-style: normal;
+ color: #ad3ff2
+}
+
+.cnumber {
+ font-style: normal;
+ color: #008b8b
+}
diff --git a/help/en_US/scilab_en_US_help/colorChange.html b/help/en_US/scilab_en_US_help/colorChange.html
new file mode 100644
index 0000000..445cd2b
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/colorChange.html
@@ -0,0 +1,111 @@
+
This function seamlessly mixes two differently colored versions of the input image.
+
+
+
Calling Sequence
+
src = imread("image-location-for-src");
+mask = roiFreeHand(src); //we can also use other function to create the mask
+outputImage = colorChange(src, mask, red_mul, green_mul, blue_mul )
+
+
Parameters
+
outputImage:
+
resultant Output image
+
src:
+
Input source image
+
mask:
+
Input mask image with same size as that of source image.
Given an original color image, two differently colored versions of this image can be mixed seamlessly.
+
+
+
Examples
+
src=imread("/images/color2.jpeg");
+mask=roiFreeHand(src);//creating a mask
+
+outputImage1=colorChange(src,mask)//using default value for all optional parameters
+imshow(outputImage1);//view the output
+
+outputImage2=colorChange(src,mask,0.5)//specifying just the value of red_mul
+imshow(outputImage2);//view the output
+
+outputImage3=colorChange(src,mask,0.5,1,2.5)//specifying value of all optional parameter
+imshow(outputImage3);//view the output
+
+outputImage4=colorChange(src,mask,0.5,[],2.5)//skipping the second argument
+imshow(outputImage4);//view the output
+
+
Examples
+
src=imread("../images/color2.jpeg");
+[rowcol]=size(src)
+mask=zeros(row,col)//creating a mask
+mask(100:140,100:150)=255
+imshow(mask);viewthemask
+outputImage=colorChange(src,mask,0.5,1,2.5)//specifying value of all optional parameter
+imshow(outputImage);//view the output
The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overflows-
+
+
+
Examples
+
src=imread('/images/color2.jpeg');
+dst=convert(src,'CV_8U')//convert to 8 bit unsigned int using default values of alpha and beta
+dst//viewing the content of dst
+
+dst2=convert(src,'CV_64F')//convert to 64 bit floating point using default values of alpha and beta
+dst2//viewing the content of dst2
Range between 0 to 200 (float) (default value is 10)
+
sigma_r:
+
Range between 0 to 1. (float) (default value is 0.15f)
+
+
Examples
+
src=imread("/images/color2.jpeg");
+outputImage1=detailEnhance(src)//using the default values for optional parameter
+imshow(outputImage1);//view the output
+
+outputImage2=detailEnhance(src,[],0.4)//providing value for second optional parameter
+imshow(outputImage2);//view the output
+
+outputImage3=detailEnhance(src,121,0.4)// providing value all optional parameters
+imshow(outputImage3);//view the output
(default value is 1) (denotes Edge preserving filters). It takes 2 values -> 1) 1 (for RECURS_FILTER) ; 2) 2 (for NORMCONV_FILTER)
+
sigma_s:
+
Range between 0 to 200 (float) (default value is 60 )
+
sigma_r:
+
Range between 0 to 1. (float) (default value is 0.4f)
+
+
Description
+
Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters
+are used in many different applications
+
+
+
Examples
+
src=imread("/images/color2.jpeg");
+outputImage1=edgePreservingFilter(src)//using default values for all optional arguments
+imshow(outputImage1);//view the output
+
+outputImage2=edgePreservingFilter(src,2)//using default values for sigma_s & sigma_r
+imshow(outputImage2);//view the output
+
+outputImage3=edgePreservingFilter(src,[],[],0.6)//using default values for sigma_s & sigma_r
+imshow(outputImage3);//view the output
This function returns a structuring element required for the morphological operations.
+
+
+
Calling Sequence
+
se = raw_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+
+
Parameters
+
se:
+
output structuring element matrix
+
shape:
+
element shape that could be one of the following-
+
cols:
+
Width of the structuring element
+
rows:
+
Height of the structuring element
+
anchor:
+
Anchor position within the element. The value (-1, -1) means that the anchor is at the center.
+
anchor_x:
+
x-coordinate of the anchor
+
anchor_y:
+
y-coordinate of the anchor
+
+
Description
+
The function constructs and returns the structuring element that can be further passed to
+function that perform morphological operations like erode or dilate.
+
+
+
Examples
+
src=imread("/images/color2.jpeg");
+se1=getStructuringElement('MORPH_RECT',5,7,3,4);//make a rectangular structuring element
+out=dilate(src,se1,3,4,1);//perform dilate morphological operation
+imshow(out);//view the output image
+
+
Examples
+
src=imread("../images/color2.jpeg");
+se2=getStructuringElement('MORPH_ELLIPSE',10,15,2,2);//make an elliptical structuring element
+out=dilate(src,se2,2,2,2);//perform dilate morphological operation
+imshow(out);//view the output image
This function is used to reduce specular reflections or highlight under-exposed foreground objects.
+
+
+
Calling Sequence
+
src = imread("image-location-for-src");
+mask = roiFreeHand(src); //we can also use other function to create the mask
+outputImage = illuminationChange(src, mask, alpha, beta )
+
+
Parameters
+
outputImage:
+
resultant Output image
+
src:
+
Input source image
+
mask:
+
Input mask image with same size as that of source image.
+
alpha:
+
Value ranges between 0-2. (float) (default value= 0.2f)
+
beta:
+
Value ranges between 0-2. (float) (default value= 0.4f)
+
+
Description
+
Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating
+back with a Poisson solver, modifies locally the apparent illumination of an image.
+
+
+
Examples
+
src=imread("/images/color2.jpeg");//reading an image
+mask=roiFreeHand(src);//creating a mask
+imshow(mask);//view mask
+
+outputImage1=illuminationChange(src,mask)//using default arguments
+imshow(outputImage1);// view outputImage1
+
+outputImage2=illuminationChange(src,mask,1.9,0.3)//providing all optional input arguments
+imshow(outputImage2);// view outputImage2
+
+outputImage3=illuminationChange(src,mask,[],0.3)//skipping first optional input argument
+imshow(outputImage3);// view outputImage3
+
+
Examples
+
src=imread("/images/color2.jpeg");
+[rowcol]=size(src)
+mask=zeros(row,col)//creating a mask
+mask(100:140,100:150)=255
+imshow(mask);viewthemask
+outputImage=illuminationChange(src,mask)//using default arguments
+imshow(outputImage);//view the output
It specifies the neighborhood around maxima, function zeros out the values inside the block.
+
maxNoOfMaxima:
+
maximum number of local maxima you want to find.
+
threshold:
+
It specifies minimum value of the local maxima.
+
+
Description
+
localMaximaFinder returns [x y] coordinates of the local maxima in a M-by-2 matrix where M is
+the number of local maxima and each row represents one local maximum
1xn matrix denoting the x coordinates of the points
+
y:
+
1xn matrix denoting the corresponding y coordinates of the points
+
out:
+
Output structure with the following members - 1) width- width of the rectangle, 2) height- height of the rectangle, 3) center_x- x coordinate of the center of the rectangle, 4) center_y- x coordinate of the center of the rectangle, 5) angle- the angle by which the rectanle is rotated, 6) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 7) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 8) y_coordinates_vertices- 1x4 Double matrix denoting the corresponding y coordinates of the vertices of the rectangle
+
+
Description
+
The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a specified point set.
+the returned rotatedRect can contain negative indices when data is close to the containing Mat element boundary.
1xn matrix denoting the x coordinates of the points of the object
+
y:
+
1xn matrix denoting the corresponding y coordinates of the points of the object
+
out:
+
Output structure with the following members- 1) center_x- x coordinate of the center of the circle, 2)center_y- x coordinate of the center of the circle, 3) radius- radius of the circle
Range between 0 to 200 (float) (default value is 60)
+
sigma_r:
+
Range between 0 to 1. (float) (default value is 0.07f)
+
shade_factor:
+
Range between 0 to 0.1 (default value is 0.02f)
+
+
Examples
+
src=imread("/images/color2.jpeg");
+outputImage1=pencilSketch(src)//using default values for all optional parameters
+imshow(outputImage1);//view the output
+
+outputImage2=pencilSketch(src,100,[],0.07)//using default values for sigma_s
+imshow(outputImage2);//view the output
+
+outputImage3=pencilSketch(src,100,0.4,0.07)//providing values for all optional parameters
+imshow(outputImage3);//view the output
This function computes the pyramid reduction or expansion of input_image.
+
+
+
Calling Sequence
+
output_image=pyramid(inputimage,direction,level);
+
+
Parameters
+
inputimage :
+
image matrix on which pyramid reduction or expansion has to be applied
+
Direction :
+
An input string 'expand' for expand or 'reduce' for reduce the image matrix
+
level :
+
It is specify number of times want to expand or reduce the dimension of an image matrix.
+
output_image :
+
Expanded or reduced form of image after pyramid reduction or expansio
+
+
Description
+
This function computes the pyramid reduction or expansion of input image.It uses Gaussian pyramid to downsamples
+and upsamples the image pixels.In reduction it reduces the size of image (if m*n matrix image) by m/pow(2,level)
+and n/pow(2,level).In expansion it expands the size of image (if m*n matrix image) by m*pow(2,level)
+and n*pow(2,level) where pow(x,y)=x^y.
+
+
+
Examples
+
inputimage1=imread('/images/color2.jpeg');//read an image
+a=pyramid(inputimage1,'expand',2);//perform 'expand' operation
+imshow(a);//view the output
+b=pyramid(inputimage1,'reduce',4);
+imshow(b);//view the output
This function restores the selected region in an image using the region neighborhood.
+
+
+
Calling Sequence
+
src = imread(location-for-image)
+x = [x1x2 ...........xn ] //x coordinates of polygon covering the region that you want to fill
+y = [y1y2 ...........yn ] //corresponding y coordinates of polygon covering the region that you want to fill
+dstImg 1= regionFill(srcImg,inpaintRadius,x,y)
+
+mask = roiFreeHand(srx) //making a mask - you can also use other function to make the mask
+dstImg2 = regionFill(srcImg,inpaintRadius,mask)
+
+
Parameters
+
srcImg:
+
input source imge //it is converted to 8 bit internally
+
inpaintRadius:
+
Radius of a circular neighborhood of each point inpainted that is considered by the algorithm(Double)
+
mask:
+
Inpainting mask. Non-zero pixels indicate the area that needs to be inpainted.
+
x:
+
1xn matrix denoting x coordinates of polygon covering the region that you want to fill
+
y:
+
1xn matrix denoting y coordinates of polygon covering the region that you want to fill
Output 8 bit mask image with same size as input image
+
image:
+
Input image to be masked
+
+
Description
+
This function allows the user to create a mask by selecting the region of interest in the image.
+Start selecting the region of interest by pressing the left mouse button and moving in the clockwise direction.
+Don't leave the left mouse button until you are done selecting the region. Once the region has been selected,
+wait until the process completes.
+More than one region of interest can be selected by repeating the same procedure.
+Once you are done selecting the ROI, press the small 's' key.This would stop the process.
+This function returns a 8 bit mask image with (the ROI being white and the rest of the region being black).
+
Note
+more than one ROI can be selected from the image. Press key 's' only after all ROI have been selected.
+Move the mouse only in the clockwise direction.
+This algorithm assumes that the selected points in the ROI are very close to each other. Thus for best result, move
+the mouse slowly while selecting the ROI
+
+
+
Examples
+
src=imread("/images/color2.jpeg");
+mask=roiFreeHand(src);//creating a mask
+imshow(mask)//view the mask
+
+outputImage1=colorChange(src,mask)//using this mask in the colorChange function
+imshow(outputImage1);//view the output
a 1xn vector specifying the column indices of the vertices of the n sided polygon
+
r :
+
a 1xn vector specifying the row indices of the vertices of the n sided polygon
+
BW:
+
Output mask image for input I
+
+
Description
+
Returns the ROI specified by the polygon described by vectors c and r, which specify the column
+and row indices of each vertex, respectively. c and r must be the same size.
+
+
+
Examples
+
I=imread('image_01.jpeg');
+c=[5050100100]//defining the column indices of the vertices of the ROI
+r=[100150150100]//defining the corresponding row indices of the vertices of the ROI
+BW=roipoly(I,c,r)//creating a mask
+imshow(BW)//viewing the mask
+c=colorChange(I,mask,2.4,2.0,2.2);//using this mask in colorChange function
+imshow(c);
+
+
Examples
+
I=imread('../images/color3.jpg');
+c=[150200250300250200];//defining the column indices of the vertices of the ROI
+r=[135100100135170170];//defining the corresponding row indices of the vertices of the ROI
+gray=rgb2gray(I);//for a grayscale image
+BW=roiPoly(I,c,r);//creating a mask
+imshow(BW)//viewing the mask
+
+
Examples
+
I=imread('/images/color3.jpg');
+c1=[200250300250150200]
+r1=[170170135100135100]//undesired output because changing the order of points
+BW=roiPoly(I,c1,r1);
+imshow(BW)
This function is used to seamlessly clone a source image onto a destination image.
+
+
+
Calling Sequence
+
src = imread("image-location-for-src");
+mask = roiFreeHand(src); //we can also use other function to create the mask
+outputImage = seamlessClone(src,dst,mask, pointMatirx, flag)
+
+
Parameters
+
outputImage:
+
resultant Output image
+
src:
+
Input source image.
+
dst:
+
Input destination image on which the source image will be cloned onto .
+
mask:
+
Input mask image with same size as that of source image.
+
pointMatirx:
+
a 1x2 vector denoting the x & y coordinates of the point in dst where the src image will be cloned (x & y are Double)
+
flag( Cloning method that could be one of the following):
+
Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or
+local changes concerned to a selection. Here we are interested in achieving local changes, ones
+that are restricted to a region manually selected (ROI), in a seamless and effortless manner.
+The extent of the changes ranges from slight distortions to complete replacement by novel content
+
+
Note: The size of the source image should be equal to or less than the destination image. The point 'p'
+should be chosen such that it fully fits inside the destination image.If not, then this function will throw the error=>
+-(minxd >= 0 && minyd >= 0 && maxxd <= dest.rows && maxyd <= dest.cols) in seamlessClone
+
+
+
Examples
+
dst=imread("/images/color3.jpg");//read destination image
+src=imread("/images/cartoon.jpg");//read source image
+mask=roiFreeHand(src);//create a mask for source image
+output=seamlessClone(src,dst,mask,[75120],1);//perform the seamelessClone
+imshow(output);
+
+
Examples
+
dst=imread("/images/color3.jpg");//read destination image
+src=imread("/images/cartoon.jpg");//read source image
+[rowscols]=size(src)//creating a mask for source image
+mask=zeros(rows,cols);
+mask(50:rows,1:cols)=255;
+output=seamlessClone(src,dst,mask,[75120],1);//perform the seamelessClone
+imshow(output);
Range between 0 to 200 (float) (default value is 60)
+
sigma_r:
+
Range between 0 to 1. (float) (default value is 0.45f)
+
+
Description
+
Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving,
+or enhancing, high-contrast features.
+
+
+
Examples
+
src=imread("/images/color2.jpeg");
+outputImage1=stylization(src)//using default values for optional parameters
+imshow(outputImage1);//view the output
+
+outputImage2=stylization(src,121)//using default value for sigma_r
+imshow(outputImage2);//view the output
+
+outputImage3=stylization(src,[],0.2)//using default value for sigma_s
+imshow(outputImage3);//view the output
Searched template. It must not be greater than the source image and have the same data type of input image.
+
newimage :
+
Map of comparison results. It must be single channel 32-bit floating-point. Its size is (W-w+1) * (H-h+1) if image
+
x:
+
the row no. of the location where the template matched occured in the input image
+
y:
+
x: the column no. of the location where the template matched in the input image
+
+
Description
+
The function compares the w * h sized images of the original image against the template image and stores the result in the new_image.
+The point of maxima in the image gives the position of the match.
+
+
+
Examples
+
src=imread("/images/color3.jpg");//reading the source image
+gray_src=rgb2gray(src);//converting src to grayscale
+tem=imread("/images/smile.jpg");//reading the template image
+tem=rgb2gray(tem);//converting template image to gray
+imshow(tem);//view the template image
+[jxy]=templateMatcher(gray_src,tem);//perform the template matching
+[rowscols]=size(tem)
+t=rectangle(src,x,y,x+cols,y+rows,0,0,255,2,8,0);//mark the position of the point of template match in the src image
+imshow(j)//view the CV_64F output image of templateMatcher
+imshow(t)//view the src image with the template object marked
This function washes out the texture of the selected region in the input image, giving its contents a flat aspect.
+
+
+
Calling Sequence
+
src = imread("image-location-for-src");
+mask = roiFreeHand(src); //we can also use other function to create the mask
+outputImage = textureFlattening(src,mask,low_threshold,high_threshold, kernel_size);
+
+
Parameters
+
outputImage:
+
resultant Output image
+
src:
+
Input source image.
+
mask:
+
Input mask image with same size as that of source image ( 1 or 3-channel image)
+
low_threshold:
+
Range from 0 to 100. (double) (default value is 30)
+
high_threshold:
+
Value > 100 & <=255. (double) (default value is 120)
+
kernel_size:
+
The size of the Sobel kernel to be used: it can be 3 , 5 or 7
+
+
Description
+
It retain the gradients at edge locations, before integrating with the Poisson solver. It uses Canny Edge Detector.
+The algorithm assumes that the color of the source image is close to that of the destination.
+This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.
+
+
+
Examples
+
src=imread("/images/color2.jpeg");
+mask=roiFreeHand(src);//creating a mask
+imshow(mask);//view mask
+
+outputImage1=textureFlattening(src,mask)// using default value for optional parameters
+imshow(outputImage1);// view outputImage1
+
+outputImage2=textureFlattening(src,mask,50,180.5)//providing value for 1st and 2nd optional argument
+imshow(outputImage2);// view outputImage2
+
+outputImage2=textureFlattening(src,mask,[],[],7)//providing value for only 3rd optional argument
+imshow(outputImage3);// view outputImage3
+
+
Examples
+
src=imread("/images/color2.jpeg");
+[rowcol]=size(src)
+mask=zeros(row,col)//creating a mask
+mask(100:140,100:150)=255
+imshow(mask);viewthemask
+outputImage=textureFlattening(src,mask)
+imshow(outputImage);//view the output
This function returns a marker based segmented image for the given input image.
+
+
+
Calling Sequence
+
src = imread("image-location-for-src");
+[dstImg] = watershed(srcImg) //uses distance transform to find the contours
+
+src = imread("image-location-for-src");
+markerMat = roiFreeHand(src); //using roiFreeHand to roughly mark the contours manually by selecting the ROI
+[dstImg] = watershed(srcImg,markerMat)
+src = imread("image-location-for-src");
+
+
Parameters
+
dstImg:
+
output segmented image
+
src:
+
Input source image
+
markerMat:
+
a mask image with the the contours marked(region selected)
+
+
Description
+
The second calling sequence gives better results.Here the user has to manually select the region of interest using roiFreeHand.
+Go through the documentation of roiFreeHand to see how it works.
+
+
+
Examples
+
src=imread("/images/watershed2.jpg");
+w2=watershed(src);// markers are created after performing distance transform by default
+imshow(w2);
+
+
Examples
+
src=imread("../images/watershed2.jpg");
+mask=roiFreeHand(src);//creating markers - selecting each coin separately using the function roiFreeHand
+w2=watershed(src,mask);//retrieve the segmented image
+imshow(w2);
+
+
diff --git a/help/en_US/scilab_en_US_help/xml_code.css b/help/en_US/scilab_en_US_help/xml_code.css
new file mode 100644
index 0000000..9e4c27f
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/xml_code.css
@@ -0,0 +1,94 @@
+.xmlcomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmldefault {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlentity {
+ font-style: normal;
+ color: #ffaa00
+}
+
+.xmlopeninstr {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlcloseinstr {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlinstrname {
+ font-style: normal;
+ color: #9965a6
+}
+
+.xmllowtag {
+ font-style: normal;
+ color: #000000
+}
+
+.xmltagname {
+ font-style: normal;
+ color: #0303ff
+}
+
+.xmllowclose {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlopencomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmlcommentend {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmlcomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmlopencdata {
+ font-style: normal;
+ color: #c45555
+}
+
+.xmlcdataend {
+ font-style: normal;
+ color: #c45555
+}
+
+.xmlcdata {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlattributename {
+ font-style: normal;
+ color: #9965a6
+}
+
+.xmlequal {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlattributevalue {
+ font-style: normal;
+ color: #973964
+}
+
+.xmlautoclose {
+ font-style: normal;
+ color: #000000
+}
diff --git a/help/en_US/seamlessClone.xml b/help/en_US/seamlessClone.xml
new file mode 100644
index 0000000..bb6591d
--- /dev/null
+++ b/help/en_US/seamlessClone.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+ seamlessClone
+ This function is used to seamlessly clone a source image onto a destination image.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = seamlessClone(src,dst,mask, pointMatirx, flag)
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input source image.
+ dst:
+ Input destination image on which the source image will be cloned onto .
+ mask:
+ Input mask image with same size as that of source image.
+ pointMatirx:
+ a 1x2 vector denoting the x & y coordinates of the point in dst where the src image will be cloned (x & y are Double)
+ flag( Cloning method that could be one of the following):
+ 1) 1 - NORMAL_CLONE ; 2) 2 - MIXED_CLONE ; 3) 3 - FEATURE_EXCHANGE
+
+
+
+
+ Description
+
+Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or
+local changes concerned to a selection. Here we are interested in achieving local changes, ones
+that are restricted to a region manually selected (ROI), in a seamless and effortless manner.
+The extent of the changes ranges from slight distortions to complete replacement by novel content
+
+
+
+
+Note: The size of the source image should be equal to or less than the destination image. The point 'p'
+should be chosen such that it fully fits inside the destination image.If not, then this function will throw the error=>
+-(minxd >= 0 && minyd >= 0 && maxxd <= dest.rows && maxyd <= dest.cols) in seamlessClone
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/stylization.xml b/help/en_US/stylization.xml
new file mode 100644
index 0000000..3773698
--- /dev/null
+++ b/help/en_US/stylization.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+ stylization
+ This function aims to produce non-photorealistic digital imagery with a wide variety of effects.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ outputImage = stylization(src,sigma_s,sigma_r)
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input 8-bit 3-channel image.
+ sigma_s:
+ Range between 0 to 200 (float) (default value is 60)
+ sigma_r:
+ Range between 0 to 1. (float) (default value is 0.45f)
+
+
+
+
+ Description
+
+Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving,
+or enhancing, high-contrast features.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/templateMatcher.xml b/help/en_US/templateMatcher.xml
new file mode 100644
index 0000000..4b7e9b9
--- /dev/null
+++ b/help/en_US/templateMatcher.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+ templateMatcher
+ This function compares a template in overlapped image regions and returns the coordinates of the point of match.
+
+
+
+
+ Calling Sequence
+
+ [new_image x y] = templateMatcher(image, template_image)
+
+
+
+
+
+ Parameters
+
+ image :
+ 8-bit int or 32-bit floating image
+ template_image :
+ Searched template. It must not be greater than the source image and have the same data type of input image.
+ newimage :
+ Map of comparison results. It must be single channel 32-bit floating-point. Its size is (W-w+1) * (H-h+1) if image
+ x:
+ the row no. of the location where the template matched occured in the input image
+ y:
+ x: the column no. of the location where the template matched in the input image
+
+
+
+
+ Description
+
+The function compares the w * h sized images of the original image against the template image and stores the result in the new_image.
+The point of maxima in the image gives the position of the match.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Suraj Prakash
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/textureFlattening.xml b/help/en_US/textureFlattening.xml
new file mode 100644
index 0000000..75a3e37
--- /dev/null
+++ b/help/en_US/textureFlattening.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+ textureFlattening
+ This function washes out the texture of the selected region in the input image, giving its contents a flat aspect.
+
+
+
+
+ Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = textureFlattening(src,mask,low_threshold,high_threshold, kernel_size);
+
+
+
+
+
+ Parameters
+
+ outputImage:
+ resultant Output image
+ src:
+ Input source image.
+ mask:
+ Input mask image with same size as that of source image ( 1 or 3-channel image)
+ low_threshold:
+ Range from 0 to 100. (double) (default value is 30)
+ high_threshold:
+ Value > 100 & <=255. (double) (default value is 120)
+ kernel_size:
+ The size of the Sobel kernel to be used: it can be 3 , 5 or 7
+
+
+
+
+ Description
+
+It retain the gradients at edge locations, before integrating with the Poisson solver. It uses Canny Edge Detector.
+The algorithm assumes that the color of the source image is close to that of the destination.
+This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Rohan Gurve
+
+
+
diff --git a/help/en_US/watershed.xml b/help/en_US/watershed.xml
new file mode 100644
index 0000000..1e43f3c
--- /dev/null
+++ b/help/en_US/watershed.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+ watershed
+ This function returns a marker based segmented image for the given input image.
+
+
+
+
+ Calling Sequence
+
+
+ src = imread("image-location-for-src");
+ [dstImg] = watershed(srcImg) //uses distance transform to find the contours
+
+ src = imread("image-location-for-src");
+ markerMat = roiFreeHand(src); //using roiFreeHand to roughly mark the contours manually by selecting the ROI
+ [dstImg] = watershed(srcImg,markerMat)
+ src = imread("image-location-for-src");
+
+
+
+
+
+ Parameters
+
+ dstImg:
+ output segmented image
+ src:
+ Input source image
+ markerMat:
+ a mask image with the the contours marked(region selected)
+
+
+
+
+ Description
+
+The second calling sequence gives better results.Here the user has to manually select the region of interest using roiFreeHand.
+Go through the documentation of roiFreeHand to see how it works.
+
+
+
+
+
+
+ Examples
+
+
+
+
+ Examples
+
+
+
+
+ Authors
+
+ Tess Zacharias
+ Ashish Manatosh Barik
+ Rohan Gurve
+
+
+
diff --git a/images/accordion/image_0001.jpg b/images/accordion/image_0001.jpg
new file mode 100644
index 0000000..fb0ff1b
Binary files /dev/null and b/images/accordion/image_0001.jpg differ
diff --git a/images/accordion/image_0002.jpg b/images/accordion/image_0002.jpg
new file mode 100644
index 0000000..963f1a2
Binary files /dev/null and b/images/accordion/image_0002.jpg differ
diff --git a/images/accordion/image_0003.jpg b/images/accordion/image_0003.jpg
new file mode 100644
index 0000000..2c18cf9
Binary files /dev/null and b/images/accordion/image_0003.jpg differ
diff --git a/images/accordion/image_0004.jpg b/images/accordion/image_0004.jpg
new file mode 100644
index 0000000..7b7ec1c
Binary files /dev/null and b/images/accordion/image_0004.jpg differ
diff --git a/images/accordion/image_0005.jpg b/images/accordion/image_0005.jpg
new file mode 100644
index 0000000..bc4122b
Binary files /dev/null and b/images/accordion/image_0005.jpg differ
diff --git a/images/accordion/image_0006.jpg b/images/accordion/image_0006.jpg
new file mode 100644
index 0000000..991a28b
Binary files /dev/null and b/images/accordion/image_0006.jpg differ
diff --git a/images/accordion/image_0007.jpg b/images/accordion/image_0007.jpg
new file mode 100644
index 0000000..b31bf33
Binary files /dev/null and b/images/accordion/image_0007.jpg differ
diff --git a/images/accordion/image_0008.jpg b/images/accordion/image_0008.jpg
new file mode 100644
index 0000000..9985ff2
Binary files /dev/null and b/images/accordion/image_0008.jpg differ
diff --git a/images/accordion/image_0009.jpg b/images/accordion/image_0009.jpg
new file mode 100644
index 0000000..0952c05
Binary files /dev/null and b/images/accordion/image_0009.jpg differ
diff --git a/images/accordion/image_0010.jpg b/images/accordion/image_0010.jpg
new file mode 100644
index 0000000..71067de
Binary files /dev/null and b/images/accordion/image_0010.jpg differ
diff --git a/images/accordion/image_0011.jpg b/images/accordion/image_0011.jpg
new file mode 100644
index 0000000..d4714a2
Binary files /dev/null and b/images/accordion/image_0011.jpg differ
diff --git a/images/accordion/image_0012.jpg b/images/accordion/image_0012.jpg
new file mode 100644
index 0000000..41e30f1
Binary files /dev/null and b/images/accordion/image_0012.jpg differ
diff --git a/images/accordion/image_0013.jpg b/images/accordion/image_0013.jpg
new file mode 100644
index 0000000..771b6f7
Binary files /dev/null and b/images/accordion/image_0013.jpg differ
diff --git a/images/accordion/image_0014.jpg b/images/accordion/image_0014.jpg
new file mode 100644
index 0000000..bb0e38a
Binary files /dev/null and b/images/accordion/image_0014.jpg differ
diff --git a/images/accordion/image_0015.jpg b/images/accordion/image_0015.jpg
new file mode 100644
index 0000000..5fe081c
Binary files /dev/null and b/images/accordion/image_0015.jpg differ
diff --git a/images/accordion/image_0016.jpg b/images/accordion/image_0016.jpg
new file mode 100644
index 0000000..e0da16c
Binary files /dev/null and b/images/accordion/image_0016.jpg differ
diff --git a/images/accordion/image_0017.jpg b/images/accordion/image_0017.jpg
new file mode 100644
index 0000000..e6ed46a
Binary files /dev/null and b/images/accordion/image_0017.jpg differ
diff --git a/images/accordion/image_0018.jpg b/images/accordion/image_0018.jpg
new file mode 100644
index 0000000..1742411
Binary files /dev/null and b/images/accordion/image_0018.jpg differ
diff --git a/images/accordion/image_0019.jpg b/images/accordion/image_0019.jpg
new file mode 100644
index 0000000..4c0ea07
Binary files /dev/null and b/images/accordion/image_0019.jpg differ
diff --git a/images/accordion/image_0020.jpg b/images/accordion/image_0020.jpg
new file mode 100644
index 0000000..17d2503
Binary files /dev/null and b/images/accordion/image_0020.jpg differ
diff --git a/images/accordion/image_0021.jpg b/images/accordion/image_0021.jpg
new file mode 100644
index 0000000..78170cd
Binary files /dev/null and b/images/accordion/image_0021.jpg differ
diff --git a/images/accordion/image_0022.jpg b/images/accordion/image_0022.jpg
new file mode 100644
index 0000000..f1f4ad5
Binary files /dev/null and b/images/accordion/image_0022.jpg differ
diff --git a/images/accordion/image_0023.jpg b/images/accordion/image_0023.jpg
new file mode 100644
index 0000000..bc5fce8
Binary files /dev/null and b/images/accordion/image_0023.jpg differ
diff --git a/images/accordion/image_0024.jpg b/images/accordion/image_0024.jpg
new file mode 100644
index 0000000..fcdb781
Binary files /dev/null and b/images/accordion/image_0024.jpg differ
diff --git a/images/accordion/image_0025.jpg b/images/accordion/image_0025.jpg
new file mode 100644
index 0000000..40e04a0
Binary files /dev/null and b/images/accordion/image_0025.jpg differ
diff --git a/images/accordion/image_0026.jpg b/images/accordion/image_0026.jpg
new file mode 100644
index 0000000..ba722be
Binary files /dev/null and b/images/accordion/image_0026.jpg differ
diff --git a/images/accordion/image_0027.jpg b/images/accordion/image_0027.jpg
new file mode 100644
index 0000000..5dbece8
Binary files /dev/null and b/images/accordion/image_0027.jpg differ
diff --git a/images/accordion/image_0028.jpg b/images/accordion/image_0028.jpg
new file mode 100644
index 0000000..c008c89
Binary files /dev/null and b/images/accordion/image_0028.jpg differ
diff --git a/images/accordion/image_0029.jpg b/images/accordion/image_0029.jpg
new file mode 100644
index 0000000..b8987d0
Binary files /dev/null and b/images/accordion/image_0029.jpg differ
diff --git a/images/accordion/image_0030.jpg b/images/accordion/image_0030.jpg
new file mode 100644
index 0000000..8688cf2
Binary files /dev/null and b/images/accordion/image_0030.jpg differ
diff --git a/images/accordion/image_0031.jpg b/images/accordion/image_0031.jpg
new file mode 100644
index 0000000..db414fc
Binary files /dev/null and b/images/accordion/image_0031.jpg differ
diff --git a/images/accordion/image_0032.jpg b/images/accordion/image_0032.jpg
new file mode 100644
index 0000000..fa3a393
Binary files /dev/null and b/images/accordion/image_0032.jpg differ
diff --git a/images/accordion/image_0033.jpg b/images/accordion/image_0033.jpg
new file mode 100644
index 0000000..10ef3cf
Binary files /dev/null and b/images/accordion/image_0033.jpg differ
diff --git a/images/accordion/image_0034.jpg b/images/accordion/image_0034.jpg
new file mode 100644
index 0000000..fcb0ac0
Binary files /dev/null and b/images/accordion/image_0034.jpg differ
diff --git a/images/accordion/image_0035.jpg b/images/accordion/image_0035.jpg
new file mode 100644
index 0000000..799d778
Binary files /dev/null and b/images/accordion/image_0035.jpg differ
diff --git a/images/accordion/image_0036.jpg b/images/accordion/image_0036.jpg
new file mode 100644
index 0000000..e02fed9
Binary files /dev/null and b/images/accordion/image_0036.jpg differ
diff --git a/images/accordion/image_0037.jpg b/images/accordion/image_0037.jpg
new file mode 100644
index 0000000..d408301
Binary files /dev/null and b/images/accordion/image_0037.jpg differ
diff --git a/images/accordion/image_0038.jpg b/images/accordion/image_0038.jpg
new file mode 100644
index 0000000..4c90e5d
Binary files /dev/null and b/images/accordion/image_0038.jpg differ
diff --git a/images/accordion/image_0039.jpg b/images/accordion/image_0039.jpg
new file mode 100644
index 0000000..431fbb4
Binary files /dev/null and b/images/accordion/image_0039.jpg differ
diff --git a/images/accordion/image_0040.jpg b/images/accordion/image_0040.jpg
new file mode 100644
index 0000000..0de7974
Binary files /dev/null and b/images/accordion/image_0040.jpg differ
diff --git a/images/accordion/image_0041.jpg b/images/accordion/image_0041.jpg
new file mode 100644
index 0000000..4f4b620
Binary files /dev/null and b/images/accordion/image_0041.jpg differ
diff --git a/images/accordion/image_0042.jpg b/images/accordion/image_0042.jpg
new file mode 100644
index 0000000..760b5b0
Binary files /dev/null and b/images/accordion/image_0042.jpg differ
diff --git a/images/accordion/image_0043.jpg b/images/accordion/image_0043.jpg
new file mode 100644
index 0000000..efc0fd8
Binary files /dev/null and b/images/accordion/image_0043.jpg differ
diff --git a/images/accordion/image_0044.jpg b/images/accordion/image_0044.jpg
new file mode 100644
index 0000000..2d505fb
Binary files /dev/null and b/images/accordion/image_0044.jpg differ
diff --git a/images/accordion/image_0045.jpg b/images/accordion/image_0045.jpg
new file mode 100644
index 0000000..aec728b
Binary files /dev/null and b/images/accordion/image_0045.jpg differ
diff --git a/images/accordion/image_0046.jpg b/images/accordion/image_0046.jpg
new file mode 100644
index 0000000..b01b078
Binary files /dev/null and b/images/accordion/image_0046.jpg differ
diff --git a/images/accordion/image_0047.jpg b/images/accordion/image_0047.jpg
new file mode 100644
index 0000000..fac0152
Binary files /dev/null and b/images/accordion/image_0047.jpg differ
diff --git a/images/accordion/image_0048.jpg b/images/accordion/image_0048.jpg
new file mode 100644
index 0000000..f23da56
Binary files /dev/null and b/images/accordion/image_0048.jpg differ
diff --git a/images/accordion/image_0049.jpg b/images/accordion/image_0049.jpg
new file mode 100644
index 0000000..8fc5656
Binary files /dev/null and b/images/accordion/image_0049.jpg differ
diff --git a/images/accordion/image_0050.jpg b/images/accordion/image_0050.jpg
new file mode 100644
index 0000000..9b55ed3
Binary files /dev/null and b/images/accordion/image_0050.jpg differ
diff --git a/images/accordion/image_0051.jpg b/images/accordion/image_0051.jpg
new file mode 100644
index 0000000..0176d10
Binary files /dev/null and b/images/accordion/image_0051.jpg differ
diff --git a/images/accordion/image_0052.jpg b/images/accordion/image_0052.jpg
new file mode 100644
index 0000000..dee964d
Binary files /dev/null and b/images/accordion/image_0052.jpg differ
diff --git a/images/accordion/image_0053.jpg b/images/accordion/image_0053.jpg
new file mode 100644
index 0000000..addc492
Binary files /dev/null and b/images/accordion/image_0053.jpg differ
diff --git a/images/accordion/image_0054.jpg b/images/accordion/image_0054.jpg
new file mode 100644
index 0000000..fd62c84
Binary files /dev/null and b/images/accordion/image_0054.jpg differ
diff --git a/images/accordion/image_0055.jpg b/images/accordion/image_0055.jpg
new file mode 100644
index 0000000..1010007
Binary files /dev/null and b/images/accordion/image_0055.jpg differ
diff --git a/images/airplanes/image_0001.jpg b/images/airplanes/image_0001.jpg
new file mode 100644
index 0000000..39b7760
Binary files /dev/null and b/images/airplanes/image_0001.jpg differ
diff --git a/images/airplanes/image_0002.jpg b/images/airplanes/image_0002.jpg
new file mode 100644
index 0000000..c6a1026
Binary files /dev/null and b/images/airplanes/image_0002.jpg differ
diff --git a/images/airplanes/image_0003.jpg b/images/airplanes/image_0003.jpg
new file mode 100644
index 0000000..2589eaa
Binary files /dev/null and b/images/airplanes/image_0003.jpg differ
diff --git a/images/airplanes/image_0004.jpg b/images/airplanes/image_0004.jpg
new file mode 100644
index 0000000..10aada6
Binary files /dev/null and b/images/airplanes/image_0004.jpg differ
diff --git a/images/airplanes/image_0005.jpg b/images/airplanes/image_0005.jpg
new file mode 100644
index 0000000..380fac3
Binary files /dev/null and b/images/airplanes/image_0005.jpg differ
diff --git a/images/airplanes/image_0006.jpg b/images/airplanes/image_0006.jpg
new file mode 100644
index 0000000..ab7bbba
Binary files /dev/null and b/images/airplanes/image_0006.jpg differ
diff --git a/images/airplanes/image_0007.jpg b/images/airplanes/image_0007.jpg
new file mode 100644
index 0000000..fbabcd6
Binary files /dev/null and b/images/airplanes/image_0007.jpg differ
diff --git a/images/airplanes/image_0008.jpg b/images/airplanes/image_0008.jpg
new file mode 100644
index 0000000..ea7ac84
Binary files /dev/null and b/images/airplanes/image_0008.jpg differ
diff --git a/images/airplanes/image_0009.jpg b/images/airplanes/image_0009.jpg
new file mode 100644
index 0000000..2d6e5e7
Binary files /dev/null and b/images/airplanes/image_0009.jpg differ
diff --git a/images/airplanes/image_0010.jpg b/images/airplanes/image_0010.jpg
new file mode 100644
index 0000000..fe8bea2
Binary files /dev/null and b/images/airplanes/image_0010.jpg differ
diff --git a/images/airplanes/image_0011.jpg b/images/airplanes/image_0011.jpg
new file mode 100644
index 0000000..3710000
Binary files /dev/null and b/images/airplanes/image_0011.jpg differ
diff --git a/images/airplanes/image_0012.jpg b/images/airplanes/image_0012.jpg
new file mode 100644
index 0000000..9202ec7
Binary files /dev/null and b/images/airplanes/image_0012.jpg differ
diff --git a/images/airplanes/image_0013.jpg b/images/airplanes/image_0013.jpg
new file mode 100644
index 0000000..d5a0829
Binary files /dev/null and b/images/airplanes/image_0013.jpg differ
diff --git a/images/airplanes/image_0014.jpg b/images/airplanes/image_0014.jpg
new file mode 100644
index 0000000..16a7d19
Binary files /dev/null and b/images/airplanes/image_0014.jpg differ
diff --git a/images/airplanes/image_0015.jpg b/images/airplanes/image_0015.jpg
new file mode 100644
index 0000000..63e7380
Binary files /dev/null and b/images/airplanes/image_0015.jpg differ
diff --git a/images/airplanes/image_0016.jpg b/images/airplanes/image_0016.jpg
new file mode 100644
index 0000000..e3c0d79
Binary files /dev/null and b/images/airplanes/image_0016.jpg differ
diff --git a/images/airplanes/image_0017.jpg b/images/airplanes/image_0017.jpg
new file mode 100644
index 0000000..d2b906e
Binary files /dev/null and b/images/airplanes/image_0017.jpg differ
diff --git a/images/airplanes/image_0018.jpg b/images/airplanes/image_0018.jpg
new file mode 100644
index 0000000..88c7375
Binary files /dev/null and b/images/airplanes/image_0018.jpg differ
diff --git a/images/airplanes/image_0019.jpg b/images/airplanes/image_0019.jpg
new file mode 100644
index 0000000..a9a69ec
Binary files /dev/null and b/images/airplanes/image_0019.jpg differ
diff --git a/images/airplanes/image_0020.jpg b/images/airplanes/image_0020.jpg
new file mode 100644
index 0000000..c7f94d3
Binary files /dev/null and b/images/airplanes/image_0020.jpg differ
diff --git a/images/airplanes/image_0021.jpg b/images/airplanes/image_0021.jpg
new file mode 100644
index 0000000..21e6c5d
Binary files /dev/null and b/images/airplanes/image_0021.jpg differ
diff --git a/images/airplanes/image_0022.jpg b/images/airplanes/image_0022.jpg
new file mode 100644
index 0000000..f9bff19
Binary files /dev/null and b/images/airplanes/image_0022.jpg differ
diff --git a/images/airplanes/image_0023.jpg b/images/airplanes/image_0023.jpg
new file mode 100644
index 0000000..c4a0823
Binary files /dev/null and b/images/airplanes/image_0023.jpg differ
diff --git a/images/airplanes/image_0024.jpg b/images/airplanes/image_0024.jpg
new file mode 100644
index 0000000..112768f
Binary files /dev/null and b/images/airplanes/image_0024.jpg differ
diff --git a/images/airplanes/image_0025.jpg b/images/airplanes/image_0025.jpg
new file mode 100644
index 0000000..883bcdd
Binary files /dev/null and b/images/airplanes/image_0025.jpg differ
diff --git a/images/airplanes/image_0026.jpg b/images/airplanes/image_0026.jpg
new file mode 100644
index 0000000..63707f8
Binary files /dev/null and b/images/airplanes/image_0026.jpg differ
diff --git a/images/airplanes/image_0027.jpg b/images/airplanes/image_0027.jpg
new file mode 100644
index 0000000..ff53034
Binary files /dev/null and b/images/airplanes/image_0027.jpg differ
diff --git a/images/airplanes/image_0028.jpg b/images/airplanes/image_0028.jpg
new file mode 100644
index 0000000..bedb732
Binary files /dev/null and b/images/airplanes/image_0028.jpg differ
diff --git a/images/airplanes/image_0029.jpg b/images/airplanes/image_0029.jpg
new file mode 100644
index 0000000..c6f8e44
Binary files /dev/null and b/images/airplanes/image_0029.jpg differ
diff --git a/images/airplanes/image_0030.jpg b/images/airplanes/image_0030.jpg
new file mode 100644
index 0000000..98557ca
Binary files /dev/null and b/images/airplanes/image_0030.jpg differ
diff --git a/images/cap.jpeg b/images/cap.jpeg
new file mode 100644
index 0000000..9944eb9
Binary files /dev/null and b/images/cap.jpeg differ
diff --git a/images/cars.jpg b/images/cars.jpg
new file mode 100644
index 0000000..bbcc16e
Binary files /dev/null and b/images/cars.jpg differ
diff --git a/images/cartoon.jpg b/images/cartoon.jpg
new file mode 100644
index 0000000..8f0b767
Binary files /dev/null and b/images/cartoon.jpg differ
diff --git a/images/color1.jpg b/images/color1.jpg
new file mode 100644
index 0000000..be7af24
Binary files /dev/null and b/images/color1.jpg differ
diff --git a/images/color2.jpeg b/images/color2.jpeg
new file mode 100644
index 0000000..21d5012
Binary files /dev/null and b/images/color2.jpeg differ
diff --git a/images/color3.jpg b/images/color3.jpg
new file mode 100644
index 0000000..85bbad1
Binary files /dev/null and b/images/color3.jpg differ
diff --git a/images/cow.jpg b/images/cow.jpg
new file mode 100644
index 0000000..21ce1ad
Binary files /dev/null and b/images/cow.jpg differ
diff --git a/images/cow2.jpg b/images/cow2.jpg
new file mode 100644
index 0000000..039ab11
Binary files /dev/null and b/images/cow2.jpg differ
diff --git a/images/face.png b/images/face.png
new file mode 100644
index 0000000..948091a
Binary files /dev/null and b/images/face.png differ
diff --git a/images/ghost.jpg b/images/ghost.jpg
new file mode 100644
index 0000000..8152ff1
Binary files /dev/null and b/images/ghost.jpg differ
diff --git a/images/glass.jpg b/images/glass.jpg
new file mode 100644
index 0000000..18b3684
Binary files /dev/null and b/images/glass.jpg differ
diff --git a/images/group.jpg b/images/group.jpg
new file mode 100644
index 0000000..003d663
Binary files /dev/null and b/images/group.jpg differ
diff --git a/images/gs1.jpg b/images/gs1.jpg
new file mode 100644
index 0000000..d2d915d
Binary files /dev/null and b/images/gs1.jpg differ
diff --git a/images/gs2.bmp b/images/gs2.bmp
new file mode 100644
index 0000000..1fd4d82
Binary files /dev/null and b/images/gs2.bmp differ
diff --git a/images/image_0197.jpg b/images/image_0197.jpg
new file mode 100644
index 0000000..d6f024a
Binary files /dev/null and b/images/image_0197.jpg differ
diff --git a/images/img_folder/accordion/image_0001.jpg b/images/img_folder/accordion/image_0001.jpg
new file mode 100644
index 0000000..fb0ff1b
Binary files /dev/null and b/images/img_folder/accordion/image_0001.jpg differ
diff --git a/images/img_folder/accordion/image_0002.jpg b/images/img_folder/accordion/image_0002.jpg
new file mode 100644
index 0000000..963f1a2
Binary files /dev/null and b/images/img_folder/accordion/image_0002.jpg differ
diff --git a/images/img_folder/accordion/image_0003.jpg b/images/img_folder/accordion/image_0003.jpg
new file mode 100644
index 0000000..2c18cf9
Binary files /dev/null and b/images/img_folder/accordion/image_0003.jpg differ
diff --git a/images/img_folder/accordion/image_0004.jpg b/images/img_folder/accordion/image_0004.jpg
new file mode 100644
index 0000000..7b7ec1c
Binary files /dev/null and b/images/img_folder/accordion/image_0004.jpg differ
diff --git a/images/img_folder/accordion/image_0005.jpg b/images/img_folder/accordion/image_0005.jpg
new file mode 100644
index 0000000..bc4122b
Binary files /dev/null and b/images/img_folder/accordion/image_0005.jpg differ
diff --git a/images/img_folder/accordion/image_0006.jpg b/images/img_folder/accordion/image_0006.jpg
new file mode 100644
index 0000000..991a28b
Binary files /dev/null and b/images/img_folder/accordion/image_0006.jpg differ
diff --git a/images/img_folder/accordion/image_0007.jpg b/images/img_folder/accordion/image_0007.jpg
new file mode 100644
index 0000000..b31bf33
Binary files /dev/null and b/images/img_folder/accordion/image_0007.jpg differ
diff --git a/images/img_folder/accordion/image_0008.jpg b/images/img_folder/accordion/image_0008.jpg
new file mode 100644
index 0000000..9985ff2
Binary files /dev/null and b/images/img_folder/accordion/image_0008.jpg differ
diff --git a/images/img_folder/accordion/image_0009.jpg b/images/img_folder/accordion/image_0009.jpg
new file mode 100644
index 0000000..0952c05
Binary files /dev/null and b/images/img_folder/accordion/image_0009.jpg differ
diff --git a/images/img_folder/accordion/image_0010.jpg b/images/img_folder/accordion/image_0010.jpg
new file mode 100644
index 0000000..71067de
Binary files /dev/null and b/images/img_folder/accordion/image_0010.jpg differ
diff --git a/images/img_folder/accordion/image_0011.jpg b/images/img_folder/accordion/image_0011.jpg
new file mode 100644
index 0000000..d4714a2
Binary files /dev/null and b/images/img_folder/accordion/image_0011.jpg differ
diff --git a/images/img_folder/accordion/image_0012.jpg b/images/img_folder/accordion/image_0012.jpg
new file mode 100644
index 0000000..41e30f1
Binary files /dev/null and b/images/img_folder/accordion/image_0012.jpg differ
diff --git a/images/img_folder/accordion/image_0013.jpg b/images/img_folder/accordion/image_0013.jpg
new file mode 100644
index 0000000..771b6f7
Binary files /dev/null and b/images/img_folder/accordion/image_0013.jpg differ
diff --git a/images/img_folder/accordion/image_0014.jpg b/images/img_folder/accordion/image_0014.jpg
new file mode 100644
index 0000000..bb0e38a
Binary files /dev/null and b/images/img_folder/accordion/image_0014.jpg differ
diff --git a/images/img_folder/accordion/image_0015.jpg b/images/img_folder/accordion/image_0015.jpg
new file mode 100644
index 0000000..5fe081c
Binary files /dev/null and b/images/img_folder/accordion/image_0015.jpg differ
diff --git a/images/img_folder/accordion/image_0016.jpg b/images/img_folder/accordion/image_0016.jpg
new file mode 100644
index 0000000..e0da16c
Binary files /dev/null and b/images/img_folder/accordion/image_0016.jpg differ
diff --git a/images/img_folder/accordion/image_0017.jpg b/images/img_folder/accordion/image_0017.jpg
new file mode 100644
index 0000000..e6ed46a
Binary files /dev/null and b/images/img_folder/accordion/image_0017.jpg differ
diff --git a/images/img_folder/accordion/image_0018.jpg b/images/img_folder/accordion/image_0018.jpg
new file mode 100644
index 0000000..1742411
Binary files /dev/null and b/images/img_folder/accordion/image_0018.jpg differ
diff --git a/images/img_folder/accordion/image_0019.jpg b/images/img_folder/accordion/image_0019.jpg
new file mode 100644
index 0000000..4c0ea07
Binary files /dev/null and b/images/img_folder/accordion/image_0019.jpg differ
diff --git a/images/img_folder/accordion/image_0020.jpg b/images/img_folder/accordion/image_0020.jpg
new file mode 100644
index 0000000..17d2503
Binary files /dev/null and b/images/img_folder/accordion/image_0020.jpg differ
diff --git a/images/img_folder/accordion/image_0021.jpg b/images/img_folder/accordion/image_0021.jpg
new file mode 100644
index 0000000..78170cd
Binary files /dev/null and b/images/img_folder/accordion/image_0021.jpg differ
diff --git a/images/img_folder/accordion/image_0022.jpg b/images/img_folder/accordion/image_0022.jpg
new file mode 100644
index 0000000..f1f4ad5
Binary files /dev/null and b/images/img_folder/accordion/image_0022.jpg differ
diff --git a/images/img_folder/accordion/image_0023.jpg b/images/img_folder/accordion/image_0023.jpg
new file mode 100644
index 0000000..bc5fce8
Binary files /dev/null and b/images/img_folder/accordion/image_0023.jpg differ
diff --git a/images/img_folder/accordion/image_0024.jpg b/images/img_folder/accordion/image_0024.jpg
new file mode 100644
index 0000000..fcdb781
Binary files /dev/null and b/images/img_folder/accordion/image_0024.jpg differ
diff --git a/images/img_folder/accordion/image_0025.jpg b/images/img_folder/accordion/image_0025.jpg
new file mode 100644
index 0000000..40e04a0
Binary files /dev/null and b/images/img_folder/accordion/image_0025.jpg differ
diff --git a/images/img_folder/accordion/image_0026.jpg b/images/img_folder/accordion/image_0026.jpg
new file mode 100644
index 0000000..ba722be
Binary files /dev/null and b/images/img_folder/accordion/image_0026.jpg differ
diff --git a/images/img_folder/accordion/image_0027.jpg b/images/img_folder/accordion/image_0027.jpg
new file mode 100644
index 0000000..5dbece8
Binary files /dev/null and b/images/img_folder/accordion/image_0027.jpg differ
diff --git a/images/img_folder/accordion/image_0028.jpg b/images/img_folder/accordion/image_0028.jpg
new file mode 100644
index 0000000..c008c89
Binary files /dev/null and b/images/img_folder/accordion/image_0028.jpg differ
diff --git a/images/img_folder/accordion/image_0029.jpg b/images/img_folder/accordion/image_0029.jpg
new file mode 100644
index 0000000..b8987d0
Binary files /dev/null and b/images/img_folder/accordion/image_0029.jpg differ
diff --git a/images/img_folder/accordion/image_0030.jpg b/images/img_folder/accordion/image_0030.jpg
new file mode 100644
index 0000000..8688cf2
Binary files /dev/null and b/images/img_folder/accordion/image_0030.jpg differ
diff --git a/images/img_folder/accordion/image_0031.jpg b/images/img_folder/accordion/image_0031.jpg
new file mode 100644
index 0000000..db414fc
Binary files /dev/null and b/images/img_folder/accordion/image_0031.jpg differ
diff --git a/images/img_folder/accordion/image_0032.jpg b/images/img_folder/accordion/image_0032.jpg
new file mode 100644
index 0000000..fa3a393
Binary files /dev/null and b/images/img_folder/accordion/image_0032.jpg differ
diff --git a/images/img_folder/accordion/image_0033.jpg b/images/img_folder/accordion/image_0033.jpg
new file mode 100644
index 0000000..10ef3cf
Binary files /dev/null and b/images/img_folder/accordion/image_0033.jpg differ
diff --git a/images/img_folder/accordion/image_0034.jpg b/images/img_folder/accordion/image_0034.jpg
new file mode 100644
index 0000000..fcb0ac0
Binary files /dev/null and b/images/img_folder/accordion/image_0034.jpg differ
diff --git a/images/img_folder/accordion/image_0035.jpg b/images/img_folder/accordion/image_0035.jpg
new file mode 100644
index 0000000..799d778
Binary files /dev/null and b/images/img_folder/accordion/image_0035.jpg differ
diff --git a/images/img_folder/accordion/image_0036.jpg b/images/img_folder/accordion/image_0036.jpg
new file mode 100644
index 0000000..e02fed9
Binary files /dev/null and b/images/img_folder/accordion/image_0036.jpg differ
diff --git a/images/img_folder/accordion/image_0037.jpg b/images/img_folder/accordion/image_0037.jpg
new file mode 100644
index 0000000..d408301
Binary files /dev/null and b/images/img_folder/accordion/image_0037.jpg differ
diff --git a/images/img_folder/accordion/image_0038.jpg b/images/img_folder/accordion/image_0038.jpg
new file mode 100644
index 0000000..4c90e5d
Binary files /dev/null and b/images/img_folder/accordion/image_0038.jpg differ
diff --git a/images/img_folder/accordion/image_0039.jpg b/images/img_folder/accordion/image_0039.jpg
new file mode 100644
index 0000000..431fbb4
Binary files /dev/null and b/images/img_folder/accordion/image_0039.jpg differ
diff --git a/images/img_folder/accordion/image_0040.jpg b/images/img_folder/accordion/image_0040.jpg
new file mode 100644
index 0000000..0de7974
Binary files /dev/null and b/images/img_folder/accordion/image_0040.jpg differ
diff --git a/images/img_folder/accordion/image_0041.jpg b/images/img_folder/accordion/image_0041.jpg
new file mode 100644
index 0000000..4f4b620
Binary files /dev/null and b/images/img_folder/accordion/image_0041.jpg differ
diff --git a/images/img_folder/accordion/image_0042.jpg b/images/img_folder/accordion/image_0042.jpg
new file mode 100644
index 0000000..760b5b0
Binary files /dev/null and b/images/img_folder/accordion/image_0042.jpg differ
diff --git a/images/img_folder/accordion/image_0043.jpg b/images/img_folder/accordion/image_0043.jpg
new file mode 100644
index 0000000..efc0fd8
Binary files /dev/null and b/images/img_folder/accordion/image_0043.jpg differ
diff --git a/images/img_folder/accordion/image_0044.jpg b/images/img_folder/accordion/image_0044.jpg
new file mode 100644
index 0000000..2d505fb
Binary files /dev/null and b/images/img_folder/accordion/image_0044.jpg differ
diff --git a/images/img_folder/accordion/image_0045.jpg b/images/img_folder/accordion/image_0045.jpg
new file mode 100644
index 0000000..aec728b
Binary files /dev/null and b/images/img_folder/accordion/image_0045.jpg differ
diff --git a/images/img_folder/accordion/image_0046.jpg b/images/img_folder/accordion/image_0046.jpg
new file mode 100644
index 0000000..b01b078
Binary files /dev/null and b/images/img_folder/accordion/image_0046.jpg differ
diff --git a/images/img_folder/accordion/image_0047.jpg b/images/img_folder/accordion/image_0047.jpg
new file mode 100644
index 0000000..fac0152
Binary files /dev/null and b/images/img_folder/accordion/image_0047.jpg differ
diff --git a/images/img_folder/accordion/image_0048.jpg b/images/img_folder/accordion/image_0048.jpg
new file mode 100644
index 0000000..f23da56
Binary files /dev/null and b/images/img_folder/accordion/image_0048.jpg differ
diff --git a/images/img_folder/accordion/image_0049.jpg b/images/img_folder/accordion/image_0049.jpg
new file mode 100644
index 0000000..8fc5656
Binary files /dev/null and b/images/img_folder/accordion/image_0049.jpg differ
diff --git a/images/img_folder/accordion/image_0050.jpg b/images/img_folder/accordion/image_0050.jpg
new file mode 100644
index 0000000..9b55ed3
Binary files /dev/null and b/images/img_folder/accordion/image_0050.jpg differ
diff --git a/images/img_folder/accordion/image_0051.jpg b/images/img_folder/accordion/image_0051.jpg
new file mode 100644
index 0000000..0176d10
Binary files /dev/null and b/images/img_folder/accordion/image_0051.jpg differ
diff --git a/images/img_folder/accordion/image_0052.jpg b/images/img_folder/accordion/image_0052.jpg
new file mode 100644
index 0000000..dee964d
Binary files /dev/null and b/images/img_folder/accordion/image_0052.jpg differ
diff --git a/images/img_folder/accordion/image_0053.jpg b/images/img_folder/accordion/image_0053.jpg
new file mode 100644
index 0000000..addc492
Binary files /dev/null and b/images/img_folder/accordion/image_0053.jpg differ
diff --git a/images/img_folder/accordion/image_0054.jpg b/images/img_folder/accordion/image_0054.jpg
new file mode 100644
index 0000000..fd62c84
Binary files /dev/null and b/images/img_folder/accordion/image_0054.jpg differ
diff --git a/images/img_folder/accordion/image_0055.jpg b/images/img_folder/accordion/image_0055.jpg
new file mode 100644
index 0000000..1010007
Binary files /dev/null and b/images/img_folder/accordion/image_0055.jpg differ
diff --git a/images/img_folder/airplanes/image_0001.jpg b/images/img_folder/airplanes/image_0001.jpg
new file mode 100644
index 0000000..39b7760
Binary files /dev/null and b/images/img_folder/airplanes/image_0001.jpg differ
diff --git a/images/img_folder/airplanes/image_0002.jpg b/images/img_folder/airplanes/image_0002.jpg
new file mode 100644
index 0000000..c6a1026
Binary files /dev/null and b/images/img_folder/airplanes/image_0002.jpg differ
diff --git a/images/img_folder/airplanes/image_0003.jpg b/images/img_folder/airplanes/image_0003.jpg
new file mode 100644
index 0000000..2589eaa
Binary files /dev/null and b/images/img_folder/airplanes/image_0003.jpg differ
diff --git a/images/img_folder/airplanes/image_0004.jpg b/images/img_folder/airplanes/image_0004.jpg
new file mode 100644
index 0000000..10aada6
Binary files /dev/null and b/images/img_folder/airplanes/image_0004.jpg differ
diff --git a/images/img_folder/airplanes/image_0005.jpg b/images/img_folder/airplanes/image_0005.jpg
new file mode 100644
index 0000000..380fac3
Binary files /dev/null and b/images/img_folder/airplanes/image_0005.jpg differ
diff --git a/images/img_folder/airplanes/image_0006.jpg b/images/img_folder/airplanes/image_0006.jpg
new file mode 100644
index 0000000..ab7bbba
Binary files /dev/null and b/images/img_folder/airplanes/image_0006.jpg differ
diff --git a/images/img_folder/airplanes/image_0007.jpg b/images/img_folder/airplanes/image_0007.jpg
new file mode 100644
index 0000000..fbabcd6
Binary files /dev/null and b/images/img_folder/airplanes/image_0007.jpg differ
diff --git a/images/img_folder/airplanes/image_0008.jpg b/images/img_folder/airplanes/image_0008.jpg
new file mode 100644
index 0000000..ea7ac84
Binary files /dev/null and b/images/img_folder/airplanes/image_0008.jpg differ
diff --git a/images/img_folder/airplanes/image_0009.jpg b/images/img_folder/airplanes/image_0009.jpg
new file mode 100644
index 0000000..2d6e5e7
Binary files /dev/null and b/images/img_folder/airplanes/image_0009.jpg differ
diff --git a/images/img_folder/airplanes/image_0010.jpg b/images/img_folder/airplanes/image_0010.jpg
new file mode 100644
index 0000000..fe8bea2
Binary files /dev/null and b/images/img_folder/airplanes/image_0010.jpg differ
diff --git a/images/img_folder/airplanes/image_0011.jpg b/images/img_folder/airplanes/image_0011.jpg
new file mode 100644
index 0000000..3710000
Binary files /dev/null and b/images/img_folder/airplanes/image_0011.jpg differ
diff --git a/images/img_folder/airplanes/image_0012.jpg b/images/img_folder/airplanes/image_0012.jpg
new file mode 100644
index 0000000..9202ec7
Binary files /dev/null and b/images/img_folder/airplanes/image_0012.jpg differ
diff --git a/images/img_folder/airplanes/image_0013.jpg b/images/img_folder/airplanes/image_0013.jpg
new file mode 100644
index 0000000..d5a0829
Binary files /dev/null and b/images/img_folder/airplanes/image_0013.jpg differ
diff --git a/images/img_folder/airplanes/image_0014.jpg b/images/img_folder/airplanes/image_0014.jpg
new file mode 100644
index 0000000..16a7d19
Binary files /dev/null and b/images/img_folder/airplanes/image_0014.jpg differ
diff --git a/images/img_folder/airplanes/image_0015.jpg b/images/img_folder/airplanes/image_0015.jpg
new file mode 100644
index 0000000..63e7380
Binary files /dev/null and b/images/img_folder/airplanes/image_0015.jpg differ
diff --git a/images/img_folder/airplanes/image_0016.jpg b/images/img_folder/airplanes/image_0016.jpg
new file mode 100644
index 0000000..e3c0d79
Binary files /dev/null and b/images/img_folder/airplanes/image_0016.jpg differ
diff --git a/images/img_folder/airplanes/image_0017.jpg b/images/img_folder/airplanes/image_0017.jpg
new file mode 100644
index 0000000..d2b906e
Binary files /dev/null and b/images/img_folder/airplanes/image_0017.jpg differ
diff --git a/images/img_folder/airplanes/image_0018.jpg b/images/img_folder/airplanes/image_0018.jpg
new file mode 100644
index 0000000..88c7375
Binary files /dev/null and b/images/img_folder/airplanes/image_0018.jpg differ
diff --git a/images/img_folder/airplanes/image_0019.jpg b/images/img_folder/airplanes/image_0019.jpg
new file mode 100644
index 0000000..a9a69ec
Binary files /dev/null and b/images/img_folder/airplanes/image_0019.jpg differ
diff --git a/images/img_folder/airplanes/image_0020.jpg b/images/img_folder/airplanes/image_0020.jpg
new file mode 100644
index 0000000..c7f94d3
Binary files /dev/null and b/images/img_folder/airplanes/image_0020.jpg differ
diff --git a/images/img_folder/airplanes/image_0021.jpg b/images/img_folder/airplanes/image_0021.jpg
new file mode 100644
index 0000000..21e6c5d
Binary files /dev/null and b/images/img_folder/airplanes/image_0021.jpg differ
diff --git a/images/img_folder/airplanes/image_0022.jpg b/images/img_folder/airplanes/image_0022.jpg
new file mode 100644
index 0000000..f9bff19
Binary files /dev/null and b/images/img_folder/airplanes/image_0022.jpg differ
diff --git a/images/img_folder/airplanes/image_0023.jpg b/images/img_folder/airplanes/image_0023.jpg
new file mode 100644
index 0000000..c4a0823
Binary files /dev/null and b/images/img_folder/airplanes/image_0023.jpg differ
diff --git a/images/img_folder/airplanes/image_0024.jpg b/images/img_folder/airplanes/image_0024.jpg
new file mode 100644
index 0000000..112768f
Binary files /dev/null and b/images/img_folder/airplanes/image_0024.jpg differ
diff --git a/images/img_folder/airplanes/image_0025.jpg b/images/img_folder/airplanes/image_0025.jpg
new file mode 100644
index 0000000..883bcdd
Binary files /dev/null and b/images/img_folder/airplanes/image_0025.jpg differ
diff --git a/images/img_folder/airplanes/image_0026.jpg b/images/img_folder/airplanes/image_0026.jpg
new file mode 100644
index 0000000..63707f8
Binary files /dev/null and b/images/img_folder/airplanes/image_0026.jpg differ
diff --git a/images/img_folder/airplanes/image_0027.jpg b/images/img_folder/airplanes/image_0027.jpg
new file mode 100644
index 0000000..ff53034
Binary files /dev/null and b/images/img_folder/airplanes/image_0027.jpg differ
diff --git a/images/img_folder/airplanes/image_0028.jpg b/images/img_folder/airplanes/image_0028.jpg
new file mode 100644
index 0000000..bedb732
Binary files /dev/null and b/images/img_folder/airplanes/image_0028.jpg differ
diff --git a/images/img_folder/airplanes/image_0029.jpg b/images/img_folder/airplanes/image_0029.jpg
new file mode 100644
index 0000000..c6f8e44
Binary files /dev/null and b/images/img_folder/airplanes/image_0029.jpg differ
diff --git a/images/img_folder/airplanes/image_0030.jpg b/images/img_folder/airplanes/image_0030.jpg
new file mode 100644
index 0000000..98557ca
Binary files /dev/null and b/images/img_folder/airplanes/image_0030.jpg differ
diff --git a/images/img_folder/airplanes/image_0031.jpg b/images/img_folder/airplanes/image_0031.jpg
new file mode 100644
index 0000000..4fb9f59
Binary files /dev/null and b/images/img_folder/airplanes/image_0031.jpg differ
diff --git a/images/img_folder/airplanes/image_0032.jpg b/images/img_folder/airplanes/image_0032.jpg
new file mode 100644
index 0000000..0f580e4
Binary files /dev/null and b/images/img_folder/airplanes/image_0032.jpg differ
diff --git a/images/img_folder/airplanes/image_0033.jpg b/images/img_folder/airplanes/image_0033.jpg
new file mode 100644
index 0000000..24b5675
Binary files /dev/null and b/images/img_folder/airplanes/image_0033.jpg differ
diff --git a/images/img_folder/airplanes/image_0034.jpg b/images/img_folder/airplanes/image_0034.jpg
new file mode 100644
index 0000000..4f443f0
Binary files /dev/null and b/images/img_folder/airplanes/image_0034.jpg differ
diff --git a/images/img_folder/airplanes/image_0035.jpg b/images/img_folder/airplanes/image_0035.jpg
new file mode 100644
index 0000000..64d345b
Binary files /dev/null and b/images/img_folder/airplanes/image_0035.jpg differ
diff --git a/images/img_folder/airplanes/image_0036.jpg b/images/img_folder/airplanes/image_0036.jpg
new file mode 100644
index 0000000..c4fdb19
Binary files /dev/null and b/images/img_folder/airplanes/image_0036.jpg differ
diff --git a/images/img_folder/airplanes/image_0037.jpg b/images/img_folder/airplanes/image_0037.jpg
new file mode 100644
index 0000000..614ea64
Binary files /dev/null and b/images/img_folder/airplanes/image_0037.jpg differ
diff --git a/images/img_folder/airplanes/image_0038.jpg b/images/img_folder/airplanes/image_0038.jpg
new file mode 100644
index 0000000..d4b3a6a
Binary files /dev/null and b/images/img_folder/airplanes/image_0038.jpg differ
diff --git a/images/img_folder/airplanes/image_0039.jpg b/images/img_folder/airplanes/image_0039.jpg
new file mode 100644
index 0000000..60d1c12
Binary files /dev/null and b/images/img_folder/airplanes/image_0039.jpg differ
diff --git a/images/img_folder/airplanes/image_0040.jpg b/images/img_folder/airplanes/image_0040.jpg
new file mode 100644
index 0000000..aeb4c71
Binary files /dev/null and b/images/img_folder/airplanes/image_0040.jpg differ
diff --git a/images/img_folder/airplanes/image_0041.jpg b/images/img_folder/airplanes/image_0041.jpg
new file mode 100644
index 0000000..2404d1d
Binary files /dev/null and b/images/img_folder/airplanes/image_0041.jpg differ
diff --git a/images/img_folder/airplanes/image_0042.jpg b/images/img_folder/airplanes/image_0042.jpg
new file mode 100644
index 0000000..a1baab4
Binary files /dev/null and b/images/img_folder/airplanes/image_0042.jpg differ
diff --git a/images/img_folder/airplanes/image_0043.jpg b/images/img_folder/airplanes/image_0043.jpg
new file mode 100644
index 0000000..d6ede7a
Binary files /dev/null and b/images/img_folder/airplanes/image_0043.jpg differ
diff --git a/images/img_folder/airplanes/image_0044.jpg b/images/img_folder/airplanes/image_0044.jpg
new file mode 100644
index 0000000..5b06cbc
Binary files /dev/null and b/images/img_folder/airplanes/image_0044.jpg differ
diff --git a/images/img_folder/airplanes/image_0045.jpg b/images/img_folder/airplanes/image_0045.jpg
new file mode 100644
index 0000000..6138823
Binary files /dev/null and b/images/img_folder/airplanes/image_0045.jpg differ
diff --git a/images/img_folder/airplanes/image_0046.jpg b/images/img_folder/airplanes/image_0046.jpg
new file mode 100644
index 0000000..119d8db
Binary files /dev/null and b/images/img_folder/airplanes/image_0046.jpg differ
diff --git a/images/img_folder/airplanes/image_0047.jpg b/images/img_folder/airplanes/image_0047.jpg
new file mode 100644
index 0000000..87b9e76
Binary files /dev/null and b/images/img_folder/airplanes/image_0047.jpg differ
diff --git a/images/img_folder/airplanes/image_0048.jpg b/images/img_folder/airplanes/image_0048.jpg
new file mode 100644
index 0000000..a49474f
Binary files /dev/null and b/images/img_folder/airplanes/image_0048.jpg differ
diff --git a/images/img_folder/airplanes/image_0049.jpg b/images/img_folder/airplanes/image_0049.jpg
new file mode 100644
index 0000000..728d3da
Binary files /dev/null and b/images/img_folder/airplanes/image_0049.jpg differ
diff --git a/images/img_folder/airplanes/image_0050.jpg b/images/img_folder/airplanes/image_0050.jpg
new file mode 100644
index 0000000..f304f4f
Binary files /dev/null and b/images/img_folder/airplanes/image_0050.jpg differ
diff --git a/images/img_folder/airplanes/image_0051.jpg b/images/img_folder/airplanes/image_0051.jpg
new file mode 100644
index 0000000..7b6d87d
Binary files /dev/null and b/images/img_folder/airplanes/image_0051.jpg differ
diff --git a/images/img_folder/airplanes/image_0052.jpg b/images/img_folder/airplanes/image_0052.jpg
new file mode 100644
index 0000000..941288b
Binary files /dev/null and b/images/img_folder/airplanes/image_0052.jpg differ
diff --git a/images/img_folder/airplanes/image_0053.jpg b/images/img_folder/airplanes/image_0053.jpg
new file mode 100644
index 0000000..46a0e31
Binary files /dev/null and b/images/img_folder/airplanes/image_0053.jpg differ
diff --git a/images/img_folder/airplanes/image_0054.jpg b/images/img_folder/airplanes/image_0054.jpg
new file mode 100644
index 0000000..8e3a6e5
Binary files /dev/null and b/images/img_folder/airplanes/image_0054.jpg differ
diff --git a/images/img_folder/airplanes/image_0055.jpg b/images/img_folder/airplanes/image_0055.jpg
new file mode 100644
index 0000000..3d49eca
Binary files /dev/null and b/images/img_folder/airplanes/image_0055.jpg differ
diff --git a/images/img_folder/airplanes/image_0056.jpg b/images/img_folder/airplanes/image_0056.jpg
new file mode 100644
index 0000000..22d7f87
Binary files /dev/null and b/images/img_folder/airplanes/image_0056.jpg differ
diff --git a/images/img_folder/airplanes/image_0057.jpg b/images/img_folder/airplanes/image_0057.jpg
new file mode 100644
index 0000000..2565c8e
Binary files /dev/null and b/images/img_folder/airplanes/image_0057.jpg differ
diff --git a/images/img_folder/airplanes/image_0058.jpg b/images/img_folder/airplanes/image_0058.jpg
new file mode 100644
index 0000000..434d457
Binary files /dev/null and b/images/img_folder/airplanes/image_0058.jpg differ
diff --git a/images/img_folder/airplanes/image_0059.jpg b/images/img_folder/airplanes/image_0059.jpg
new file mode 100644
index 0000000..5c5b594
Binary files /dev/null and b/images/img_folder/airplanes/image_0059.jpg differ
diff --git a/images/img_folder/airplanes/image_0060.jpg b/images/img_folder/airplanes/image_0060.jpg
new file mode 100644
index 0000000..3866e85
Binary files /dev/null and b/images/img_folder/airplanes/image_0060.jpg differ
diff --git a/images/img_folder/airplanes/image_0061.jpg b/images/img_folder/airplanes/image_0061.jpg
new file mode 100644
index 0000000..1100f78
Binary files /dev/null and b/images/img_folder/airplanes/image_0061.jpg differ
diff --git a/images/img_folder/airplanes/image_0062.jpg b/images/img_folder/airplanes/image_0062.jpg
new file mode 100644
index 0000000..3a0302b
Binary files /dev/null and b/images/img_folder/airplanes/image_0062.jpg differ
diff --git a/images/img_folder/airplanes/image_0063.jpg b/images/img_folder/airplanes/image_0063.jpg
new file mode 100644
index 0000000..64cc9eb
Binary files /dev/null and b/images/img_folder/airplanes/image_0063.jpg differ
diff --git a/images/img_folder/airplanes/image_0064.jpg b/images/img_folder/airplanes/image_0064.jpg
new file mode 100644
index 0000000..19d62c1
Binary files /dev/null and b/images/img_folder/airplanes/image_0064.jpg differ
diff --git a/images/img_folder/airplanes/image_0065.jpg b/images/img_folder/airplanes/image_0065.jpg
new file mode 100644
index 0000000..0f1d4a6
Binary files /dev/null and b/images/img_folder/airplanes/image_0065.jpg differ
diff --git a/images/img_folder/airplanes/image_0066.jpg b/images/img_folder/airplanes/image_0066.jpg
new file mode 100644
index 0000000..2b46d7c
Binary files /dev/null and b/images/img_folder/airplanes/image_0066.jpg differ
diff --git a/images/img_folder/airplanes/image_0067.jpg b/images/img_folder/airplanes/image_0067.jpg
new file mode 100644
index 0000000..7804dc9
Binary files /dev/null and b/images/img_folder/airplanes/image_0067.jpg differ
diff --git a/images/img_folder/airplanes/image_0068.jpg b/images/img_folder/airplanes/image_0068.jpg
new file mode 100644
index 0000000..2efa095
Binary files /dev/null and b/images/img_folder/airplanes/image_0068.jpg differ
diff --git a/images/img_folder/airplanes/image_0069.jpg b/images/img_folder/airplanes/image_0069.jpg
new file mode 100644
index 0000000..947bd95
Binary files /dev/null and b/images/img_folder/airplanes/image_0069.jpg differ
diff --git a/images/img_folder/airplanes/image_0070.jpg b/images/img_folder/airplanes/image_0070.jpg
new file mode 100644
index 0000000..073c42d
Binary files /dev/null and b/images/img_folder/airplanes/image_0070.jpg differ
diff --git a/images/img_folder/airplanes/image_0071.jpg b/images/img_folder/airplanes/image_0071.jpg
new file mode 100644
index 0000000..574832b
Binary files /dev/null and b/images/img_folder/airplanes/image_0071.jpg differ
diff --git a/images/img_folder/airplanes/image_0072.jpg b/images/img_folder/airplanes/image_0072.jpg
new file mode 100644
index 0000000..98f4ca9
Binary files /dev/null and b/images/img_folder/airplanes/image_0072.jpg differ
diff --git a/images/img_folder/airplanes/image_0073.jpg b/images/img_folder/airplanes/image_0073.jpg
new file mode 100644
index 0000000..2782d8c
Binary files /dev/null and b/images/img_folder/airplanes/image_0073.jpg differ
diff --git a/images/img_folder/airplanes/image_0074.jpg b/images/img_folder/airplanes/image_0074.jpg
new file mode 100644
index 0000000..8937cd5
Binary files /dev/null and b/images/img_folder/airplanes/image_0074.jpg differ
diff --git a/images/img_folder/airplanes/image_0075.jpg b/images/img_folder/airplanes/image_0075.jpg
new file mode 100644
index 0000000..061f42e
Binary files /dev/null and b/images/img_folder/airplanes/image_0075.jpg differ
diff --git a/images/img_folder/airplanes/image_0076.jpg b/images/img_folder/airplanes/image_0076.jpg
new file mode 100644
index 0000000..44df99a
Binary files /dev/null and b/images/img_folder/airplanes/image_0076.jpg differ
diff --git a/images/img_folder/airplanes/image_0077.jpg b/images/img_folder/airplanes/image_0077.jpg
new file mode 100644
index 0000000..a0beaad
Binary files /dev/null and b/images/img_folder/airplanes/image_0077.jpg differ
diff --git a/images/img_folder/airplanes/image_0078.jpg b/images/img_folder/airplanes/image_0078.jpg
new file mode 100644
index 0000000..2a13621
Binary files /dev/null and b/images/img_folder/airplanes/image_0078.jpg differ
diff --git a/images/img_folder/airplanes/image_0079.jpg b/images/img_folder/airplanes/image_0079.jpg
new file mode 100644
index 0000000..15d1ac7
Binary files /dev/null and b/images/img_folder/airplanes/image_0079.jpg differ
diff --git a/images/img_folder/airplanes/image_0080.jpg b/images/img_folder/airplanes/image_0080.jpg
new file mode 100644
index 0000000..5fc24f0
Binary files /dev/null and b/images/img_folder/airplanes/image_0080.jpg differ
diff --git a/images/img_folder/airplanes/image_0081.jpg b/images/img_folder/airplanes/image_0081.jpg
new file mode 100644
index 0000000..56c0deb
Binary files /dev/null and b/images/img_folder/airplanes/image_0081.jpg differ
diff --git a/images/img_folder/airplanes/image_0082.jpg b/images/img_folder/airplanes/image_0082.jpg
new file mode 100644
index 0000000..be7d48d
Binary files /dev/null and b/images/img_folder/airplanes/image_0082.jpg differ
diff --git a/images/img_folder/airplanes/image_0083.jpg b/images/img_folder/airplanes/image_0083.jpg
new file mode 100644
index 0000000..d05335a
Binary files /dev/null and b/images/img_folder/airplanes/image_0083.jpg differ
diff --git a/images/img_folder/airplanes/image_0084.jpg b/images/img_folder/airplanes/image_0084.jpg
new file mode 100644
index 0000000..f17060f
Binary files /dev/null and b/images/img_folder/airplanes/image_0084.jpg differ
diff --git a/images/img_folder/airplanes/image_0085.jpg b/images/img_folder/airplanes/image_0085.jpg
new file mode 100644
index 0000000..3f1c6b8
Binary files /dev/null and b/images/img_folder/airplanes/image_0085.jpg differ
diff --git a/images/img_folder/airplanes/image_0086.jpg b/images/img_folder/airplanes/image_0086.jpg
new file mode 100644
index 0000000..8af8167
Binary files /dev/null and b/images/img_folder/airplanes/image_0086.jpg differ
diff --git a/images/img_folder/airplanes/image_0087.jpg b/images/img_folder/airplanes/image_0087.jpg
new file mode 100644
index 0000000..540b52b
Binary files /dev/null and b/images/img_folder/airplanes/image_0087.jpg differ
diff --git a/images/img_folder/airplanes/image_0088.jpg b/images/img_folder/airplanes/image_0088.jpg
new file mode 100644
index 0000000..e3df386
Binary files /dev/null and b/images/img_folder/airplanes/image_0088.jpg differ
diff --git a/images/img_folder/airplanes/image_0089.jpg b/images/img_folder/airplanes/image_0089.jpg
new file mode 100644
index 0000000..016cc17
Binary files /dev/null and b/images/img_folder/airplanes/image_0089.jpg differ
diff --git a/images/img_folder/airplanes/image_0090.jpg b/images/img_folder/airplanes/image_0090.jpg
new file mode 100644
index 0000000..eadac3d
Binary files /dev/null and b/images/img_folder/airplanes/image_0090.jpg differ
diff --git a/images/img_folder/airplanes/image_0091.jpg b/images/img_folder/airplanes/image_0091.jpg
new file mode 100644
index 0000000..edc5d72
Binary files /dev/null and b/images/img_folder/airplanes/image_0091.jpg differ
diff --git a/images/img_folder/airplanes/image_0092.jpg b/images/img_folder/airplanes/image_0092.jpg
new file mode 100644
index 0000000..5a4b454
Binary files /dev/null and b/images/img_folder/airplanes/image_0092.jpg differ
diff --git a/images/img_folder/airplanes/image_0093.jpg b/images/img_folder/airplanes/image_0093.jpg
new file mode 100644
index 0000000..9b654b4
Binary files /dev/null and b/images/img_folder/airplanes/image_0093.jpg differ
diff --git a/images/img_folder/airplanes/image_0094.jpg b/images/img_folder/airplanes/image_0094.jpg
new file mode 100644
index 0000000..d8e06a0
Binary files /dev/null and b/images/img_folder/airplanes/image_0094.jpg differ
diff --git a/images/img_folder/airplanes/image_0095.jpg b/images/img_folder/airplanes/image_0095.jpg
new file mode 100644
index 0000000..7adc06a
Binary files /dev/null and b/images/img_folder/airplanes/image_0095.jpg differ
diff --git a/images/img_folder/airplanes/image_0096.jpg b/images/img_folder/airplanes/image_0096.jpg
new file mode 100644
index 0000000..be01c7d
Binary files /dev/null and b/images/img_folder/airplanes/image_0096.jpg differ
diff --git a/images/img_folder/airplanes/image_0097.jpg b/images/img_folder/airplanes/image_0097.jpg
new file mode 100644
index 0000000..3e80a0b
Binary files /dev/null and b/images/img_folder/airplanes/image_0097.jpg differ
diff --git a/images/img_folder/airplanes/image_0098.jpg b/images/img_folder/airplanes/image_0098.jpg
new file mode 100644
index 0000000..86329ff
Binary files /dev/null and b/images/img_folder/airplanes/image_0098.jpg differ
diff --git a/images/img_folder/airplanes/image_0099.jpg b/images/img_folder/airplanes/image_0099.jpg
new file mode 100644
index 0000000..c5fd54e
Binary files /dev/null and b/images/img_folder/airplanes/image_0099.jpg differ
diff --git a/images/img_folder/airplanes/image_0100.jpg b/images/img_folder/airplanes/image_0100.jpg
new file mode 100644
index 0000000..65a45f9
Binary files /dev/null and b/images/img_folder/airplanes/image_0100.jpg differ
diff --git a/images/img_folder/airplanes/image_0101.jpg b/images/img_folder/airplanes/image_0101.jpg
new file mode 100644
index 0000000..708b92a
Binary files /dev/null and b/images/img_folder/airplanes/image_0101.jpg differ
diff --git a/images/img_folder/airplanes/image_0102.jpg b/images/img_folder/airplanes/image_0102.jpg
new file mode 100644
index 0000000..6fe070c
Binary files /dev/null and b/images/img_folder/airplanes/image_0102.jpg differ
diff --git a/images/img_folder/airplanes/image_0103.jpg b/images/img_folder/airplanes/image_0103.jpg
new file mode 100644
index 0000000..8882ec8
Binary files /dev/null and b/images/img_folder/airplanes/image_0103.jpg differ
diff --git a/images/img_folder/airplanes/image_0104.jpg b/images/img_folder/airplanes/image_0104.jpg
new file mode 100644
index 0000000..6677e41
Binary files /dev/null and b/images/img_folder/airplanes/image_0104.jpg differ
diff --git a/images/img_folder/airplanes/image_0105.jpg b/images/img_folder/airplanes/image_0105.jpg
new file mode 100644
index 0000000..3f0c11a
Binary files /dev/null and b/images/img_folder/airplanes/image_0105.jpg differ
diff --git a/images/img_folder/airplanes/image_0106.jpg b/images/img_folder/airplanes/image_0106.jpg
new file mode 100644
index 0000000..4842a15
Binary files /dev/null and b/images/img_folder/airplanes/image_0106.jpg differ
diff --git a/images/img_folder/airplanes/image_0107.jpg b/images/img_folder/airplanes/image_0107.jpg
new file mode 100644
index 0000000..d875543
Binary files /dev/null and b/images/img_folder/airplanes/image_0107.jpg differ
diff --git a/images/img_folder/airplanes/image_0108.jpg b/images/img_folder/airplanes/image_0108.jpg
new file mode 100644
index 0000000..cfc5597
Binary files /dev/null and b/images/img_folder/airplanes/image_0108.jpg differ
diff --git a/images/img_folder/airplanes/image_0109.jpg b/images/img_folder/airplanes/image_0109.jpg
new file mode 100644
index 0000000..3e8b964
Binary files /dev/null and b/images/img_folder/airplanes/image_0109.jpg differ
diff --git a/images/img_folder/airplanes/image_0110.jpg b/images/img_folder/airplanes/image_0110.jpg
new file mode 100644
index 0000000..a9da0ca
Binary files /dev/null and b/images/img_folder/airplanes/image_0110.jpg differ
diff --git a/images/img_folder/airplanes/image_0111.jpg b/images/img_folder/airplanes/image_0111.jpg
new file mode 100644
index 0000000..ea40a35
Binary files /dev/null and b/images/img_folder/airplanes/image_0111.jpg differ
diff --git a/images/img_folder/airplanes/image_0112.jpg b/images/img_folder/airplanes/image_0112.jpg
new file mode 100644
index 0000000..cc8271c
Binary files /dev/null and b/images/img_folder/airplanes/image_0112.jpg differ
diff --git a/images/img_folder/airplanes/image_0113.jpg b/images/img_folder/airplanes/image_0113.jpg
new file mode 100644
index 0000000..9d83c4c
Binary files /dev/null and b/images/img_folder/airplanes/image_0113.jpg differ
diff --git a/images/img_folder/airplanes/image_0114.jpg b/images/img_folder/airplanes/image_0114.jpg
new file mode 100644
index 0000000..1e1da40
Binary files /dev/null and b/images/img_folder/airplanes/image_0114.jpg differ
diff --git a/images/img_folder/airplanes/image_0115.jpg b/images/img_folder/airplanes/image_0115.jpg
new file mode 100644
index 0000000..26f2966
Binary files /dev/null and b/images/img_folder/airplanes/image_0115.jpg differ
diff --git a/images/img_folder/airplanes/image_0116.jpg b/images/img_folder/airplanes/image_0116.jpg
new file mode 100644
index 0000000..7a87703
Binary files /dev/null and b/images/img_folder/airplanes/image_0116.jpg differ
diff --git a/images/img_folder/airplanes/image_0117.jpg b/images/img_folder/airplanes/image_0117.jpg
new file mode 100644
index 0000000..55c1642
Binary files /dev/null and b/images/img_folder/airplanes/image_0117.jpg differ
diff --git a/images/img_folder/airplanes/image_0118.jpg b/images/img_folder/airplanes/image_0118.jpg
new file mode 100644
index 0000000..b23eb20
Binary files /dev/null and b/images/img_folder/airplanes/image_0118.jpg differ
diff --git a/images/img_folder/airplanes/image_0119.jpg b/images/img_folder/airplanes/image_0119.jpg
new file mode 100644
index 0000000..f2b6c4f
Binary files /dev/null and b/images/img_folder/airplanes/image_0119.jpg differ
diff --git a/images/img_folder/airplanes/image_0120.jpg b/images/img_folder/airplanes/image_0120.jpg
new file mode 100644
index 0000000..8e7c0a5
Binary files /dev/null and b/images/img_folder/airplanes/image_0120.jpg differ
diff --git a/images/img_folder/airplanes/image_0121.jpg b/images/img_folder/airplanes/image_0121.jpg
new file mode 100644
index 0000000..3d1dd13
Binary files /dev/null and b/images/img_folder/airplanes/image_0121.jpg differ
diff --git a/images/img_folder/airplanes/image_0122.jpg b/images/img_folder/airplanes/image_0122.jpg
new file mode 100644
index 0000000..1496e4e
Binary files /dev/null and b/images/img_folder/airplanes/image_0122.jpg differ
diff --git a/images/img_folder/airplanes/image_0123.jpg b/images/img_folder/airplanes/image_0123.jpg
new file mode 100644
index 0000000..27d64c7
Binary files /dev/null and b/images/img_folder/airplanes/image_0123.jpg differ
diff --git a/images/img_folder/airplanes/image_0124.jpg b/images/img_folder/airplanes/image_0124.jpg
new file mode 100644
index 0000000..f8921c2
Binary files /dev/null and b/images/img_folder/airplanes/image_0124.jpg differ
diff --git a/images/img_folder/airplanes/image_0125.jpg b/images/img_folder/airplanes/image_0125.jpg
new file mode 100644
index 0000000..a58ae9e
Binary files /dev/null and b/images/img_folder/airplanes/image_0125.jpg differ
diff --git a/images/img_folder/airplanes/image_0126.jpg b/images/img_folder/airplanes/image_0126.jpg
new file mode 100644
index 0000000..7fffa87
Binary files /dev/null and b/images/img_folder/airplanes/image_0126.jpg differ
diff --git a/images/img_folder/airplanes/image_0127.jpg b/images/img_folder/airplanes/image_0127.jpg
new file mode 100644
index 0000000..48a79b1
Binary files /dev/null and b/images/img_folder/airplanes/image_0127.jpg differ
diff --git a/images/img_folder/airplanes/image_0128.jpg b/images/img_folder/airplanes/image_0128.jpg
new file mode 100644
index 0000000..566644e
Binary files /dev/null and b/images/img_folder/airplanes/image_0128.jpg differ
diff --git a/images/img_folder/airplanes/image_0129.jpg b/images/img_folder/airplanes/image_0129.jpg
new file mode 100644
index 0000000..5bc906b
Binary files /dev/null and b/images/img_folder/airplanes/image_0129.jpg differ
diff --git a/images/img_folder/airplanes/image_0130.jpg b/images/img_folder/airplanes/image_0130.jpg
new file mode 100644
index 0000000..e3069bf
Binary files /dev/null and b/images/img_folder/airplanes/image_0130.jpg differ
diff --git a/images/img_folder/airplanes/image_0131.jpg b/images/img_folder/airplanes/image_0131.jpg
new file mode 100644
index 0000000..241a36b
Binary files /dev/null and b/images/img_folder/airplanes/image_0131.jpg differ
diff --git a/images/img_folder/airplanes/image_0132.jpg b/images/img_folder/airplanes/image_0132.jpg
new file mode 100644
index 0000000..ff44e83
Binary files /dev/null and b/images/img_folder/airplanes/image_0132.jpg differ
diff --git a/images/img_folder/airplanes/image_0133.jpg b/images/img_folder/airplanes/image_0133.jpg
new file mode 100644
index 0000000..b54c6ce
Binary files /dev/null and b/images/img_folder/airplanes/image_0133.jpg differ
diff --git a/images/img_folder/airplanes/image_0134.jpg b/images/img_folder/airplanes/image_0134.jpg
new file mode 100644
index 0000000..c469fbd
Binary files /dev/null and b/images/img_folder/airplanes/image_0134.jpg differ
diff --git a/images/img_folder/airplanes/image_0135.jpg b/images/img_folder/airplanes/image_0135.jpg
new file mode 100644
index 0000000..40392d6
Binary files /dev/null and b/images/img_folder/airplanes/image_0135.jpg differ
diff --git a/images/img_folder/airplanes/image_0136.jpg b/images/img_folder/airplanes/image_0136.jpg
new file mode 100644
index 0000000..bf8888f
Binary files /dev/null and b/images/img_folder/airplanes/image_0136.jpg differ
diff --git a/images/img_folder/airplanes/image_0137.jpg b/images/img_folder/airplanes/image_0137.jpg
new file mode 100644
index 0000000..f5798c3
Binary files /dev/null and b/images/img_folder/airplanes/image_0137.jpg differ
diff --git a/images/img_folder/airplanes/image_0138.jpg b/images/img_folder/airplanes/image_0138.jpg
new file mode 100644
index 0000000..a6f4ce4
Binary files /dev/null and b/images/img_folder/airplanes/image_0138.jpg differ
diff --git a/images/img_folder/airplanes/image_0139.jpg b/images/img_folder/airplanes/image_0139.jpg
new file mode 100644
index 0000000..990230f
Binary files /dev/null and b/images/img_folder/airplanes/image_0139.jpg differ
diff --git a/images/img_folder/airplanes/image_0140.jpg b/images/img_folder/airplanes/image_0140.jpg
new file mode 100644
index 0000000..a624d1c
Binary files /dev/null and b/images/img_folder/airplanes/image_0140.jpg differ
diff --git a/images/img_folder/airplanes/image_0141.jpg b/images/img_folder/airplanes/image_0141.jpg
new file mode 100644
index 0000000..90693d9
Binary files /dev/null and b/images/img_folder/airplanes/image_0141.jpg differ
diff --git a/images/img_folder/airplanes/image_0142.jpg b/images/img_folder/airplanes/image_0142.jpg
new file mode 100644
index 0000000..b559c2b
Binary files /dev/null and b/images/img_folder/airplanes/image_0142.jpg differ
diff --git a/images/img_folder/airplanes/image_0143.jpg b/images/img_folder/airplanes/image_0143.jpg
new file mode 100644
index 0000000..5d4c8a3
Binary files /dev/null and b/images/img_folder/airplanes/image_0143.jpg differ
diff --git a/images/img_folder/airplanes/image_0144.jpg b/images/img_folder/airplanes/image_0144.jpg
new file mode 100644
index 0000000..bbb6b49
Binary files /dev/null and b/images/img_folder/airplanes/image_0144.jpg differ
diff --git a/images/img_folder/airplanes/image_0145.jpg b/images/img_folder/airplanes/image_0145.jpg
new file mode 100644
index 0000000..6b34efb
Binary files /dev/null and b/images/img_folder/airplanes/image_0145.jpg differ
diff --git a/images/img_folder/airplanes/image_0146.jpg b/images/img_folder/airplanes/image_0146.jpg
new file mode 100644
index 0000000..fd5350b
Binary files /dev/null and b/images/img_folder/airplanes/image_0146.jpg differ
diff --git a/images/img_folder/airplanes/image_0147.jpg b/images/img_folder/airplanes/image_0147.jpg
new file mode 100644
index 0000000..6968403
Binary files /dev/null and b/images/img_folder/airplanes/image_0147.jpg differ
diff --git a/images/img_folder/airplanes/image_0148.jpg b/images/img_folder/airplanes/image_0148.jpg
new file mode 100644
index 0000000..a417cd7
Binary files /dev/null and b/images/img_folder/airplanes/image_0148.jpg differ
diff --git a/images/img_folder/airplanes/image_0149.jpg b/images/img_folder/airplanes/image_0149.jpg
new file mode 100644
index 0000000..f53e0a0
Binary files /dev/null and b/images/img_folder/airplanes/image_0149.jpg differ
diff --git a/images/img_folder/airplanes/image_0150.jpg b/images/img_folder/airplanes/image_0150.jpg
new file mode 100644
index 0000000..aa86e81
Binary files /dev/null and b/images/img_folder/airplanes/image_0150.jpg differ
diff --git a/images/img_folder/airplanes/image_0151.jpg b/images/img_folder/airplanes/image_0151.jpg
new file mode 100644
index 0000000..abc1ca5
Binary files /dev/null and b/images/img_folder/airplanes/image_0151.jpg differ
diff --git a/images/img_folder/airplanes/image_0152.jpg b/images/img_folder/airplanes/image_0152.jpg
new file mode 100644
index 0000000..c0fd1ad
Binary files /dev/null and b/images/img_folder/airplanes/image_0152.jpg differ
diff --git a/images/img_folder/airplanes/image_0153.jpg b/images/img_folder/airplanes/image_0153.jpg
new file mode 100644
index 0000000..5c14336
Binary files /dev/null and b/images/img_folder/airplanes/image_0153.jpg differ
diff --git a/images/img_folder/airplanes/image_0154.jpg b/images/img_folder/airplanes/image_0154.jpg
new file mode 100644
index 0000000..3538744
Binary files /dev/null and b/images/img_folder/airplanes/image_0154.jpg differ
diff --git a/images/img_folder/airplanes/image_0155.jpg b/images/img_folder/airplanes/image_0155.jpg
new file mode 100644
index 0000000..3997804
Binary files /dev/null and b/images/img_folder/airplanes/image_0155.jpg differ
diff --git a/images/img_folder/airplanes/image_0156.jpg b/images/img_folder/airplanes/image_0156.jpg
new file mode 100644
index 0000000..807ebb1
Binary files /dev/null and b/images/img_folder/airplanes/image_0156.jpg differ
diff --git a/images/img_folder/airplanes/image_0157.jpg b/images/img_folder/airplanes/image_0157.jpg
new file mode 100644
index 0000000..3c50392
Binary files /dev/null and b/images/img_folder/airplanes/image_0157.jpg differ
diff --git a/images/img_folder/airplanes/image_0158.jpg b/images/img_folder/airplanes/image_0158.jpg
new file mode 100644
index 0000000..5278932
Binary files /dev/null and b/images/img_folder/airplanes/image_0158.jpg differ
diff --git a/images/img_folder/airplanes/image_0159.jpg b/images/img_folder/airplanes/image_0159.jpg
new file mode 100644
index 0000000..d642e1e
Binary files /dev/null and b/images/img_folder/airplanes/image_0159.jpg differ
diff --git a/images/img_folder/airplanes/image_0160.jpg b/images/img_folder/airplanes/image_0160.jpg
new file mode 100644
index 0000000..b28674e
Binary files /dev/null and b/images/img_folder/airplanes/image_0160.jpg differ
diff --git a/images/img_folder/airplanes/image_0161.jpg b/images/img_folder/airplanes/image_0161.jpg
new file mode 100644
index 0000000..c3ae2df
Binary files /dev/null and b/images/img_folder/airplanes/image_0161.jpg differ
diff --git a/images/img_folder/airplanes/image_0162.jpg b/images/img_folder/airplanes/image_0162.jpg
new file mode 100644
index 0000000..873316e
Binary files /dev/null and b/images/img_folder/airplanes/image_0162.jpg differ
diff --git a/images/img_folder/airplanes/image_0163.jpg b/images/img_folder/airplanes/image_0163.jpg
new file mode 100644
index 0000000..53917de
Binary files /dev/null and b/images/img_folder/airplanes/image_0163.jpg differ
diff --git a/images/img_folder/airplanes/image_0164.jpg b/images/img_folder/airplanes/image_0164.jpg
new file mode 100644
index 0000000..4d05b89
Binary files /dev/null and b/images/img_folder/airplanes/image_0164.jpg differ
diff --git a/images/img_folder/airplanes/image_0165.jpg b/images/img_folder/airplanes/image_0165.jpg
new file mode 100644
index 0000000..050606c
Binary files /dev/null and b/images/img_folder/airplanes/image_0165.jpg differ
diff --git a/images/img_folder/airplanes/image_0166.jpg b/images/img_folder/airplanes/image_0166.jpg
new file mode 100644
index 0000000..6d9ae5f
Binary files /dev/null and b/images/img_folder/airplanes/image_0166.jpg differ
diff --git a/images/img_folder/airplanes/image_0167.jpg b/images/img_folder/airplanes/image_0167.jpg
new file mode 100644
index 0000000..90f9175
Binary files /dev/null and b/images/img_folder/airplanes/image_0167.jpg differ
diff --git a/images/img_folder/airplanes/image_0168.jpg b/images/img_folder/airplanes/image_0168.jpg
new file mode 100644
index 0000000..47c3974
Binary files /dev/null and b/images/img_folder/airplanes/image_0168.jpg differ
diff --git a/images/img_folder/airplanes/image_0169.jpg b/images/img_folder/airplanes/image_0169.jpg
new file mode 100644
index 0000000..752fdfc
Binary files /dev/null and b/images/img_folder/airplanes/image_0169.jpg differ
diff --git a/images/img_folder/airplanes/image_0170.jpg b/images/img_folder/airplanes/image_0170.jpg
new file mode 100644
index 0000000..e01b18b
Binary files /dev/null and b/images/img_folder/airplanes/image_0170.jpg differ
diff --git a/images/img_folder/airplanes/image_0171.jpg b/images/img_folder/airplanes/image_0171.jpg
new file mode 100644
index 0000000..a49b3ff
Binary files /dev/null and b/images/img_folder/airplanes/image_0171.jpg differ
diff --git a/images/img_folder/airplanes/image_0172.jpg b/images/img_folder/airplanes/image_0172.jpg
new file mode 100644
index 0000000..8c85a7b
Binary files /dev/null and b/images/img_folder/airplanes/image_0172.jpg differ
diff --git a/images/img_folder/airplanes/image_0173.jpg b/images/img_folder/airplanes/image_0173.jpg
new file mode 100644
index 0000000..d78a7b0
Binary files /dev/null and b/images/img_folder/airplanes/image_0173.jpg differ
diff --git a/images/img_folder/airplanes/image_0174.jpg b/images/img_folder/airplanes/image_0174.jpg
new file mode 100644
index 0000000..034923a
Binary files /dev/null and b/images/img_folder/airplanes/image_0174.jpg differ
diff --git a/images/img_folder/airplanes/image_0175.jpg b/images/img_folder/airplanes/image_0175.jpg
new file mode 100644
index 0000000..c60f7d3
Binary files /dev/null and b/images/img_folder/airplanes/image_0175.jpg differ
diff --git a/images/img_folder/airplanes/image_0176.jpg b/images/img_folder/airplanes/image_0176.jpg
new file mode 100644
index 0000000..26fdbbb
Binary files /dev/null and b/images/img_folder/airplanes/image_0176.jpg differ
diff --git a/images/img_folder/airplanes/image_0177.jpg b/images/img_folder/airplanes/image_0177.jpg
new file mode 100644
index 0000000..f863822
Binary files /dev/null and b/images/img_folder/airplanes/image_0177.jpg differ
diff --git a/images/img_folder/airplanes/image_0178.jpg b/images/img_folder/airplanes/image_0178.jpg
new file mode 100644
index 0000000..6781de4
Binary files /dev/null and b/images/img_folder/airplanes/image_0178.jpg differ
diff --git a/images/img_folder/airplanes/image_0179.jpg b/images/img_folder/airplanes/image_0179.jpg
new file mode 100644
index 0000000..b04d31f
Binary files /dev/null and b/images/img_folder/airplanes/image_0179.jpg differ
diff --git a/images/img_folder/airplanes/image_0180.jpg b/images/img_folder/airplanes/image_0180.jpg
new file mode 100644
index 0000000..a3b8c89
Binary files /dev/null and b/images/img_folder/airplanes/image_0180.jpg differ
diff --git a/images/img_folder/airplanes/image_0181.jpg b/images/img_folder/airplanes/image_0181.jpg
new file mode 100644
index 0000000..f6e1a5e
Binary files /dev/null and b/images/img_folder/airplanes/image_0181.jpg differ
diff --git a/images/img_folder/airplanes/image_0182.jpg b/images/img_folder/airplanes/image_0182.jpg
new file mode 100644
index 0000000..c46a4b7
Binary files /dev/null and b/images/img_folder/airplanes/image_0182.jpg differ
diff --git a/images/img_folder/airplanes/image_0183.jpg b/images/img_folder/airplanes/image_0183.jpg
new file mode 100644
index 0000000..b4ea8b6
Binary files /dev/null and b/images/img_folder/airplanes/image_0183.jpg differ
diff --git a/images/img_folder/airplanes/image_0184.jpg b/images/img_folder/airplanes/image_0184.jpg
new file mode 100644
index 0000000..d7c52ad
Binary files /dev/null and b/images/img_folder/airplanes/image_0184.jpg differ
diff --git a/images/img_folder/airplanes/image_0185.jpg b/images/img_folder/airplanes/image_0185.jpg
new file mode 100644
index 0000000..1032f5b
Binary files /dev/null and b/images/img_folder/airplanes/image_0185.jpg differ
diff --git a/images/img_folder/airplanes/image_0186.jpg b/images/img_folder/airplanes/image_0186.jpg
new file mode 100644
index 0000000..41ac873
Binary files /dev/null and b/images/img_folder/airplanes/image_0186.jpg differ
diff --git a/images/img_folder/airplanes/image_0187.jpg b/images/img_folder/airplanes/image_0187.jpg
new file mode 100644
index 0000000..f2b2f95
Binary files /dev/null and b/images/img_folder/airplanes/image_0187.jpg differ
diff --git a/images/img_folder/airplanes/image_0188.jpg b/images/img_folder/airplanes/image_0188.jpg
new file mode 100644
index 0000000..6b999aa
Binary files /dev/null and b/images/img_folder/airplanes/image_0188.jpg differ
diff --git a/images/img_folder/airplanes/image_0189.jpg b/images/img_folder/airplanes/image_0189.jpg
new file mode 100644
index 0000000..465aea6
Binary files /dev/null and b/images/img_folder/airplanes/image_0189.jpg differ
diff --git a/images/img_folder/airplanes/image_0190.jpg b/images/img_folder/airplanes/image_0190.jpg
new file mode 100644
index 0000000..437d543
Binary files /dev/null and b/images/img_folder/airplanes/image_0190.jpg differ
diff --git a/images/img_folder/airplanes/image_0191.jpg b/images/img_folder/airplanes/image_0191.jpg
new file mode 100644
index 0000000..edc800b
Binary files /dev/null and b/images/img_folder/airplanes/image_0191.jpg differ
diff --git a/images/img_folder/airplanes/image_0192.jpg b/images/img_folder/airplanes/image_0192.jpg
new file mode 100644
index 0000000..58fc21b
Binary files /dev/null and b/images/img_folder/airplanes/image_0192.jpg differ
diff --git a/images/img_folder/airplanes/image_0193.jpg b/images/img_folder/airplanes/image_0193.jpg
new file mode 100644
index 0000000..aecd30b
Binary files /dev/null and b/images/img_folder/airplanes/image_0193.jpg differ
diff --git a/images/img_folder/airplanes/image_0194.jpg b/images/img_folder/airplanes/image_0194.jpg
new file mode 100644
index 0000000..0d298c4
Binary files /dev/null and b/images/img_folder/airplanes/image_0194.jpg differ
diff --git a/images/img_folder/airplanes/image_0195.jpg b/images/img_folder/airplanes/image_0195.jpg
new file mode 100644
index 0000000..7a144c0
Binary files /dev/null and b/images/img_folder/airplanes/image_0195.jpg differ
diff --git a/images/img_folder/airplanes/image_0196.jpg b/images/img_folder/airplanes/image_0196.jpg
new file mode 100644
index 0000000..151ae20
Binary files /dev/null and b/images/img_folder/airplanes/image_0196.jpg differ
diff --git a/images/img_folder/airplanes/image_0197.jpg b/images/img_folder/airplanes/image_0197.jpg
new file mode 100644
index 0000000..722d54a
Binary files /dev/null and b/images/img_folder/airplanes/image_0197.jpg differ
diff --git a/images/img_folder/airplanes/image_0198.jpg b/images/img_folder/airplanes/image_0198.jpg
new file mode 100644
index 0000000..2e98a98
Binary files /dev/null and b/images/img_folder/airplanes/image_0198.jpg differ
diff --git a/images/img_folder/airplanes/image_0199.jpg b/images/img_folder/airplanes/image_0199.jpg
new file mode 100644
index 0000000..441f4d7
Binary files /dev/null and b/images/img_folder/airplanes/image_0199.jpg differ
diff --git a/images/img_folder/airplanes/image_0200.jpg b/images/img_folder/airplanes/image_0200.jpg
new file mode 100644
index 0000000..a67f781
Binary files /dev/null and b/images/img_folder/airplanes/image_0200.jpg differ
diff --git a/images/img_folder/airplanes/image_0201.jpg b/images/img_folder/airplanes/image_0201.jpg
new file mode 100644
index 0000000..cc5a9c3
Binary files /dev/null and b/images/img_folder/airplanes/image_0201.jpg differ
diff --git a/images/img_folder/airplanes/image_0202.jpg b/images/img_folder/airplanes/image_0202.jpg
new file mode 100644
index 0000000..0fd6aad
Binary files /dev/null and b/images/img_folder/airplanes/image_0202.jpg differ
diff --git a/images/img_folder/airplanes/image_0203.jpg b/images/img_folder/airplanes/image_0203.jpg
new file mode 100644
index 0000000..4dcdf26
Binary files /dev/null and b/images/img_folder/airplanes/image_0203.jpg differ
diff --git a/images/img_folder/airplanes/image_0204.jpg b/images/img_folder/airplanes/image_0204.jpg
new file mode 100644
index 0000000..0d06d65
Binary files /dev/null and b/images/img_folder/airplanes/image_0204.jpg differ
diff --git a/images/img_folder/airplanes/image_0205.jpg b/images/img_folder/airplanes/image_0205.jpg
new file mode 100644
index 0000000..6e18740
Binary files /dev/null and b/images/img_folder/airplanes/image_0205.jpg differ
diff --git a/images/img_folder/airplanes/image_0206.jpg b/images/img_folder/airplanes/image_0206.jpg
new file mode 100644
index 0000000..cf60275
Binary files /dev/null and b/images/img_folder/airplanes/image_0206.jpg differ
diff --git a/images/img_folder/airplanes/image_0207.jpg b/images/img_folder/airplanes/image_0207.jpg
new file mode 100644
index 0000000..f51c64a
Binary files /dev/null and b/images/img_folder/airplanes/image_0207.jpg differ
diff --git a/images/img_folder/airplanes/image_0208.jpg b/images/img_folder/airplanes/image_0208.jpg
new file mode 100644
index 0000000..87afe2e
Binary files /dev/null and b/images/img_folder/airplanes/image_0208.jpg differ
diff --git a/images/img_folder/airplanes/image_0209.jpg b/images/img_folder/airplanes/image_0209.jpg
new file mode 100644
index 0000000..6346581
Binary files /dev/null and b/images/img_folder/airplanes/image_0209.jpg differ
diff --git a/images/img_folder/airplanes/image_0210.jpg b/images/img_folder/airplanes/image_0210.jpg
new file mode 100644
index 0000000..c2bd566
Binary files /dev/null and b/images/img_folder/airplanes/image_0210.jpg differ
diff --git a/images/img_folder/airplanes/image_0211.jpg b/images/img_folder/airplanes/image_0211.jpg
new file mode 100644
index 0000000..2fdeff9
Binary files /dev/null and b/images/img_folder/airplanes/image_0211.jpg differ
diff --git a/images/img_folder/airplanes/image_0212.jpg b/images/img_folder/airplanes/image_0212.jpg
new file mode 100644
index 0000000..b9ac969
Binary files /dev/null and b/images/img_folder/airplanes/image_0212.jpg differ
diff --git a/images/img_folder/airplanes/image_0213.jpg b/images/img_folder/airplanes/image_0213.jpg
new file mode 100644
index 0000000..17a0dd1
Binary files /dev/null and b/images/img_folder/airplanes/image_0213.jpg differ
diff --git a/images/img_folder/airplanes/image_0214.jpg b/images/img_folder/airplanes/image_0214.jpg
new file mode 100644
index 0000000..d84a690
Binary files /dev/null and b/images/img_folder/airplanes/image_0214.jpg differ
diff --git a/images/img_folder/airplanes/image_0215.jpg b/images/img_folder/airplanes/image_0215.jpg
new file mode 100644
index 0000000..b2ae7c7
Binary files /dev/null and b/images/img_folder/airplanes/image_0215.jpg differ
diff --git a/images/img_folder/airplanes/image_0216.jpg b/images/img_folder/airplanes/image_0216.jpg
new file mode 100644
index 0000000..2673382
Binary files /dev/null and b/images/img_folder/airplanes/image_0216.jpg differ
diff --git a/images/img_folder/airplanes/image_0217.jpg b/images/img_folder/airplanes/image_0217.jpg
new file mode 100644
index 0000000..7938f0d
Binary files /dev/null and b/images/img_folder/airplanes/image_0217.jpg differ
diff --git a/images/img_folder/airplanes/image_0218.jpg b/images/img_folder/airplanes/image_0218.jpg
new file mode 100644
index 0000000..b4569da
Binary files /dev/null and b/images/img_folder/airplanes/image_0218.jpg differ
diff --git a/images/img_folder/airplanes/image_0219.jpg b/images/img_folder/airplanes/image_0219.jpg
new file mode 100644
index 0000000..4e13f81
Binary files /dev/null and b/images/img_folder/airplanes/image_0219.jpg differ
diff --git a/images/img_folder/airplanes/image_0220.jpg b/images/img_folder/airplanes/image_0220.jpg
new file mode 100644
index 0000000..9f18fa0
Binary files /dev/null and b/images/img_folder/airplanes/image_0220.jpg differ
diff --git a/images/img_folder/airplanes/image_0221.jpg b/images/img_folder/airplanes/image_0221.jpg
new file mode 100644
index 0000000..cae63aa
Binary files /dev/null and b/images/img_folder/airplanes/image_0221.jpg differ
diff --git a/images/img_folder/airplanes/image_0222.jpg b/images/img_folder/airplanes/image_0222.jpg
new file mode 100644
index 0000000..dbecebc
Binary files /dev/null and b/images/img_folder/airplanes/image_0222.jpg differ
diff --git a/images/img_folder/airplanes/image_0223.jpg b/images/img_folder/airplanes/image_0223.jpg
new file mode 100644
index 0000000..dbd4ccc
Binary files /dev/null and b/images/img_folder/airplanes/image_0223.jpg differ
diff --git a/images/img_folder/airplanes/image_0224.jpg b/images/img_folder/airplanes/image_0224.jpg
new file mode 100644
index 0000000..a04af62
Binary files /dev/null and b/images/img_folder/airplanes/image_0224.jpg differ
diff --git a/images/img_folder/airplanes/image_0225.jpg b/images/img_folder/airplanes/image_0225.jpg
new file mode 100644
index 0000000..b8b0c0b
Binary files /dev/null and b/images/img_folder/airplanes/image_0225.jpg differ
diff --git a/images/img_folder/airplanes/image_0226.jpg b/images/img_folder/airplanes/image_0226.jpg
new file mode 100644
index 0000000..4476b44
Binary files /dev/null and b/images/img_folder/airplanes/image_0226.jpg differ
diff --git a/images/img_folder/airplanes/image_0227.jpg b/images/img_folder/airplanes/image_0227.jpg
new file mode 100644
index 0000000..e7d293d
Binary files /dev/null and b/images/img_folder/airplanes/image_0227.jpg differ
diff --git a/images/img_folder/airplanes/image_0228.jpg b/images/img_folder/airplanes/image_0228.jpg
new file mode 100644
index 0000000..941693c
Binary files /dev/null and b/images/img_folder/airplanes/image_0228.jpg differ
diff --git a/images/img_folder/airplanes/image_0229.jpg b/images/img_folder/airplanes/image_0229.jpg
new file mode 100644
index 0000000..baef0f7
Binary files /dev/null and b/images/img_folder/airplanes/image_0229.jpg differ
diff --git a/images/img_folder/airplanes/image_0230.jpg b/images/img_folder/airplanes/image_0230.jpg
new file mode 100644
index 0000000..8e0f770
Binary files /dev/null and b/images/img_folder/airplanes/image_0230.jpg differ
diff --git a/images/img_folder/airplanes/image_0231.jpg b/images/img_folder/airplanes/image_0231.jpg
new file mode 100644
index 0000000..9dd3ed8
Binary files /dev/null and b/images/img_folder/airplanes/image_0231.jpg differ
diff --git a/images/img_folder/airplanes/image_0232.jpg b/images/img_folder/airplanes/image_0232.jpg
new file mode 100644
index 0000000..bf706a6
Binary files /dev/null and b/images/img_folder/airplanes/image_0232.jpg differ
diff --git a/images/img_folder/airplanes/image_0233.jpg b/images/img_folder/airplanes/image_0233.jpg
new file mode 100644
index 0000000..6d664e7
Binary files /dev/null and b/images/img_folder/airplanes/image_0233.jpg differ
diff --git a/images/img_folder/airplanes/image_0234.jpg b/images/img_folder/airplanes/image_0234.jpg
new file mode 100644
index 0000000..1b20081
Binary files /dev/null and b/images/img_folder/airplanes/image_0234.jpg differ
diff --git a/images/img_folder/airplanes/image_0235.jpg b/images/img_folder/airplanes/image_0235.jpg
new file mode 100644
index 0000000..eb54d2f
Binary files /dev/null and b/images/img_folder/airplanes/image_0235.jpg differ
diff --git a/images/img_folder/airplanes/image_0236.jpg b/images/img_folder/airplanes/image_0236.jpg
new file mode 100644
index 0000000..8fb6538
Binary files /dev/null and b/images/img_folder/airplanes/image_0236.jpg differ
diff --git a/images/img_folder/airplanes/image_0237.jpg b/images/img_folder/airplanes/image_0237.jpg
new file mode 100644
index 0000000..afe18cc
Binary files /dev/null and b/images/img_folder/airplanes/image_0237.jpg differ
diff --git a/images/img_folder/airplanes/image_0238.jpg b/images/img_folder/airplanes/image_0238.jpg
new file mode 100644
index 0000000..2eb2d2b
Binary files /dev/null and b/images/img_folder/airplanes/image_0238.jpg differ
diff --git a/images/img_folder/airplanes/image_0239.jpg b/images/img_folder/airplanes/image_0239.jpg
new file mode 100644
index 0000000..d71b3ca
Binary files /dev/null and b/images/img_folder/airplanes/image_0239.jpg differ
diff --git a/images/img_folder/airplanes/image_0240.jpg b/images/img_folder/airplanes/image_0240.jpg
new file mode 100644
index 0000000..0f74073
Binary files /dev/null and b/images/img_folder/airplanes/image_0240.jpg differ
diff --git a/images/img_folder/airplanes/image_0241.jpg b/images/img_folder/airplanes/image_0241.jpg
new file mode 100644
index 0000000..1ac9726
Binary files /dev/null and b/images/img_folder/airplanes/image_0241.jpg differ
diff --git a/images/img_folder/airplanes/image_0242.jpg b/images/img_folder/airplanes/image_0242.jpg
new file mode 100644
index 0000000..b3e1562
Binary files /dev/null and b/images/img_folder/airplanes/image_0242.jpg differ
diff --git a/images/img_folder/airplanes/image_0243.jpg b/images/img_folder/airplanes/image_0243.jpg
new file mode 100644
index 0000000..7fbcaa3
Binary files /dev/null and b/images/img_folder/airplanes/image_0243.jpg differ
diff --git a/images/img_folder/airplanes/image_0244.jpg b/images/img_folder/airplanes/image_0244.jpg
new file mode 100644
index 0000000..da261f4
Binary files /dev/null and b/images/img_folder/airplanes/image_0244.jpg differ
diff --git a/images/img_folder/airplanes/image_0245.jpg b/images/img_folder/airplanes/image_0245.jpg
new file mode 100644
index 0000000..e2309de
Binary files /dev/null and b/images/img_folder/airplanes/image_0245.jpg differ
diff --git a/images/img_folder/airplanes/image_0246.jpg b/images/img_folder/airplanes/image_0246.jpg
new file mode 100644
index 0000000..1886f56
Binary files /dev/null and b/images/img_folder/airplanes/image_0246.jpg differ
diff --git a/images/img_folder/airplanes/image_0247.jpg b/images/img_folder/airplanes/image_0247.jpg
new file mode 100644
index 0000000..2b91abc
Binary files /dev/null and b/images/img_folder/airplanes/image_0247.jpg differ
diff --git a/images/img_folder/airplanes/image_0248.jpg b/images/img_folder/airplanes/image_0248.jpg
new file mode 100644
index 0000000..5f0b8f0
Binary files /dev/null and b/images/img_folder/airplanes/image_0248.jpg differ
diff --git a/images/img_folder/airplanes/image_0249.jpg b/images/img_folder/airplanes/image_0249.jpg
new file mode 100644
index 0000000..d530623
Binary files /dev/null and b/images/img_folder/airplanes/image_0249.jpg differ
diff --git a/images/img_folder/airplanes/image_0250.jpg b/images/img_folder/airplanes/image_0250.jpg
new file mode 100644
index 0000000..e890ed4
Binary files /dev/null and b/images/img_folder/airplanes/image_0250.jpg differ
diff --git a/images/img_folder/airplanes/image_0251.jpg b/images/img_folder/airplanes/image_0251.jpg
new file mode 100644
index 0000000..81eb220
Binary files /dev/null and b/images/img_folder/airplanes/image_0251.jpg differ
diff --git a/images/img_folder/airplanes/image_0252.jpg b/images/img_folder/airplanes/image_0252.jpg
new file mode 100644
index 0000000..1b35452
Binary files /dev/null and b/images/img_folder/airplanes/image_0252.jpg differ
diff --git a/images/img_folder/airplanes/image_0253.jpg b/images/img_folder/airplanes/image_0253.jpg
new file mode 100644
index 0000000..8a314f3
Binary files /dev/null and b/images/img_folder/airplanes/image_0253.jpg differ
diff --git a/images/img_folder/airplanes/image_0254.jpg b/images/img_folder/airplanes/image_0254.jpg
new file mode 100644
index 0000000..b4496a0
Binary files /dev/null and b/images/img_folder/airplanes/image_0254.jpg differ
diff --git a/images/img_folder/airplanes/image_0255.jpg b/images/img_folder/airplanes/image_0255.jpg
new file mode 100644
index 0000000..a4f2e38
Binary files /dev/null and b/images/img_folder/airplanes/image_0255.jpg differ
diff --git a/images/img_folder/airplanes/image_0256.jpg b/images/img_folder/airplanes/image_0256.jpg
new file mode 100644
index 0000000..80d4722
Binary files /dev/null and b/images/img_folder/airplanes/image_0256.jpg differ
diff --git a/images/img_folder/airplanes/image_0257.jpg b/images/img_folder/airplanes/image_0257.jpg
new file mode 100644
index 0000000..1ce32e9
Binary files /dev/null and b/images/img_folder/airplanes/image_0257.jpg differ
diff --git a/images/img_folder/airplanes/image_0258.jpg b/images/img_folder/airplanes/image_0258.jpg
new file mode 100644
index 0000000..73d1ce3
Binary files /dev/null and b/images/img_folder/airplanes/image_0258.jpg differ
diff --git a/images/img_folder/airplanes/image_0259.jpg b/images/img_folder/airplanes/image_0259.jpg
new file mode 100644
index 0000000..44c4318
Binary files /dev/null and b/images/img_folder/airplanes/image_0259.jpg differ
diff --git a/images/img_folder/airplanes/image_0260.jpg b/images/img_folder/airplanes/image_0260.jpg
new file mode 100644
index 0000000..01f7ec5
Binary files /dev/null and b/images/img_folder/airplanes/image_0260.jpg differ
diff --git a/images/img_folder/airplanes/image_0261.jpg b/images/img_folder/airplanes/image_0261.jpg
new file mode 100644
index 0000000..f45b5ae
Binary files /dev/null and b/images/img_folder/airplanes/image_0261.jpg differ
diff --git a/images/img_folder/airplanes/image_0262.jpg b/images/img_folder/airplanes/image_0262.jpg
new file mode 100644
index 0000000..c878ce3
Binary files /dev/null and b/images/img_folder/airplanes/image_0262.jpg differ
diff --git a/images/img_folder/airplanes/image_0263.jpg b/images/img_folder/airplanes/image_0263.jpg
new file mode 100644
index 0000000..eea3327
Binary files /dev/null and b/images/img_folder/airplanes/image_0263.jpg differ
diff --git a/images/img_folder/airplanes/image_0264.jpg b/images/img_folder/airplanes/image_0264.jpg
new file mode 100644
index 0000000..c9ca471
Binary files /dev/null and b/images/img_folder/airplanes/image_0264.jpg differ
diff --git a/images/img_folder/airplanes/image_0265.jpg b/images/img_folder/airplanes/image_0265.jpg
new file mode 100644
index 0000000..fd2cf8a
Binary files /dev/null and b/images/img_folder/airplanes/image_0265.jpg differ
diff --git a/images/img_folder/airplanes/image_0266.jpg b/images/img_folder/airplanes/image_0266.jpg
new file mode 100644
index 0000000..3498b5a
Binary files /dev/null and b/images/img_folder/airplanes/image_0266.jpg differ
diff --git a/images/img_folder/airplanes/image_0267.jpg b/images/img_folder/airplanes/image_0267.jpg
new file mode 100644
index 0000000..1a272c6
Binary files /dev/null and b/images/img_folder/airplanes/image_0267.jpg differ
diff --git a/images/img_folder/airplanes/image_0268.jpg b/images/img_folder/airplanes/image_0268.jpg
new file mode 100644
index 0000000..a59e933
Binary files /dev/null and b/images/img_folder/airplanes/image_0268.jpg differ
diff --git a/images/img_folder/airplanes/image_0269.jpg b/images/img_folder/airplanes/image_0269.jpg
new file mode 100644
index 0000000..03005ea
Binary files /dev/null and b/images/img_folder/airplanes/image_0269.jpg differ
diff --git a/images/img_folder/airplanes/image_0270.jpg b/images/img_folder/airplanes/image_0270.jpg
new file mode 100644
index 0000000..4eaf183
Binary files /dev/null and b/images/img_folder/airplanes/image_0270.jpg differ
diff --git a/images/img_folder/airplanes/image_0271.jpg b/images/img_folder/airplanes/image_0271.jpg
new file mode 100644
index 0000000..5a0871e
Binary files /dev/null and b/images/img_folder/airplanes/image_0271.jpg differ
diff --git a/images/img_folder/airplanes/image_0272.jpg b/images/img_folder/airplanes/image_0272.jpg
new file mode 100644
index 0000000..495148a
Binary files /dev/null and b/images/img_folder/airplanes/image_0272.jpg differ
diff --git a/images/img_folder/airplanes/image_0273.jpg b/images/img_folder/airplanes/image_0273.jpg
new file mode 100644
index 0000000..b86ef5a
Binary files /dev/null and b/images/img_folder/airplanes/image_0273.jpg differ
diff --git a/images/img_folder/airplanes/image_0274.jpg b/images/img_folder/airplanes/image_0274.jpg
new file mode 100644
index 0000000..da1faae
Binary files /dev/null and b/images/img_folder/airplanes/image_0274.jpg differ
diff --git a/images/img_folder/airplanes/image_0275.jpg b/images/img_folder/airplanes/image_0275.jpg
new file mode 100644
index 0000000..319c49b
Binary files /dev/null and b/images/img_folder/airplanes/image_0275.jpg differ
diff --git a/images/img_folder/airplanes/image_0276.jpg b/images/img_folder/airplanes/image_0276.jpg
new file mode 100644
index 0000000..f1322d3
Binary files /dev/null and b/images/img_folder/airplanes/image_0276.jpg differ
diff --git a/images/img_folder/airplanes/image_0277.jpg b/images/img_folder/airplanes/image_0277.jpg
new file mode 100644
index 0000000..aa2a022
Binary files /dev/null and b/images/img_folder/airplanes/image_0277.jpg differ
diff --git a/images/img_folder/airplanes/image_0278.jpg b/images/img_folder/airplanes/image_0278.jpg
new file mode 100644
index 0000000..98a7766
Binary files /dev/null and b/images/img_folder/airplanes/image_0278.jpg differ
diff --git a/images/img_folder/airplanes/image_0279.jpg b/images/img_folder/airplanes/image_0279.jpg
new file mode 100644
index 0000000..68f0eeb
Binary files /dev/null and b/images/img_folder/airplanes/image_0279.jpg differ
diff --git a/images/img_folder/airplanes/image_0280.jpg b/images/img_folder/airplanes/image_0280.jpg
new file mode 100644
index 0000000..67e407c
Binary files /dev/null and b/images/img_folder/airplanes/image_0280.jpg differ
diff --git a/images/img_folder/airplanes/image_0281.jpg b/images/img_folder/airplanes/image_0281.jpg
new file mode 100644
index 0000000..dee7406
Binary files /dev/null and b/images/img_folder/airplanes/image_0281.jpg differ
diff --git a/images/img_folder/airplanes/image_0282.jpg b/images/img_folder/airplanes/image_0282.jpg
new file mode 100644
index 0000000..f2a5b8b
Binary files /dev/null and b/images/img_folder/airplanes/image_0282.jpg differ
diff --git a/images/img_folder/airplanes/image_0283.jpg b/images/img_folder/airplanes/image_0283.jpg
new file mode 100644
index 0000000..8580e04
Binary files /dev/null and b/images/img_folder/airplanes/image_0283.jpg differ
diff --git a/images/img_folder/airplanes/image_0284.jpg b/images/img_folder/airplanes/image_0284.jpg
new file mode 100644
index 0000000..68a3918
Binary files /dev/null and b/images/img_folder/airplanes/image_0284.jpg differ
diff --git a/images/img_folder/airplanes/image_0285.jpg b/images/img_folder/airplanes/image_0285.jpg
new file mode 100644
index 0000000..8672bc9
Binary files /dev/null and b/images/img_folder/airplanes/image_0285.jpg differ
diff --git a/images/img_folder/airplanes/image_0286.jpg b/images/img_folder/airplanes/image_0286.jpg
new file mode 100644
index 0000000..9bbf65e
Binary files /dev/null and b/images/img_folder/airplanes/image_0286.jpg differ
diff --git a/images/img_folder/airplanes/image_0287.jpg b/images/img_folder/airplanes/image_0287.jpg
new file mode 100644
index 0000000..ba6b450
Binary files /dev/null and b/images/img_folder/airplanes/image_0287.jpg differ
diff --git a/images/img_folder/airplanes/image_0288.jpg b/images/img_folder/airplanes/image_0288.jpg
new file mode 100644
index 0000000..c4ce74c
Binary files /dev/null and b/images/img_folder/airplanes/image_0288.jpg differ
diff --git a/images/img_folder/airplanes/image_0289.jpg b/images/img_folder/airplanes/image_0289.jpg
new file mode 100644
index 0000000..75b9d68
Binary files /dev/null and b/images/img_folder/airplanes/image_0289.jpg differ
diff --git a/images/img_folder/airplanes/image_0290.jpg b/images/img_folder/airplanes/image_0290.jpg
new file mode 100644
index 0000000..1591acc
Binary files /dev/null and b/images/img_folder/airplanes/image_0290.jpg differ
diff --git a/images/img_folder/airplanes/image_0291.jpg b/images/img_folder/airplanes/image_0291.jpg
new file mode 100644
index 0000000..cde8d21
Binary files /dev/null and b/images/img_folder/airplanes/image_0291.jpg differ
diff --git a/images/img_folder/airplanes/image_0292.jpg b/images/img_folder/airplanes/image_0292.jpg
new file mode 100644
index 0000000..1af17f1
Binary files /dev/null and b/images/img_folder/airplanes/image_0292.jpg differ
diff --git a/images/img_folder/airplanes/image_0293.jpg b/images/img_folder/airplanes/image_0293.jpg
new file mode 100644
index 0000000..f910381
Binary files /dev/null and b/images/img_folder/airplanes/image_0293.jpg differ
diff --git a/images/img_folder/airplanes/image_0294.jpg b/images/img_folder/airplanes/image_0294.jpg
new file mode 100644
index 0000000..28b9908
Binary files /dev/null and b/images/img_folder/airplanes/image_0294.jpg differ
diff --git a/images/img_folder/airplanes/image_0295.jpg b/images/img_folder/airplanes/image_0295.jpg
new file mode 100644
index 0000000..2d68ee6
Binary files /dev/null and b/images/img_folder/airplanes/image_0295.jpg differ
diff --git a/images/img_folder/airplanes/image_0296.jpg b/images/img_folder/airplanes/image_0296.jpg
new file mode 100644
index 0000000..d428218
Binary files /dev/null and b/images/img_folder/airplanes/image_0296.jpg differ
diff --git a/images/img_folder/airplanes/image_0297.jpg b/images/img_folder/airplanes/image_0297.jpg
new file mode 100644
index 0000000..d2bd49c
Binary files /dev/null and b/images/img_folder/airplanes/image_0297.jpg differ
diff --git a/images/img_folder/airplanes/image_0298.jpg b/images/img_folder/airplanes/image_0298.jpg
new file mode 100644
index 0000000..38abb40
Binary files /dev/null and b/images/img_folder/airplanes/image_0298.jpg differ
diff --git a/images/img_folder/airplanes/image_0299.jpg b/images/img_folder/airplanes/image_0299.jpg
new file mode 100644
index 0000000..4efa257
Binary files /dev/null and b/images/img_folder/airplanes/image_0299.jpg differ
diff --git a/images/img_folder/airplanes/image_0300.jpg b/images/img_folder/airplanes/image_0300.jpg
new file mode 100644
index 0000000..6fab061
Binary files /dev/null and b/images/img_folder/airplanes/image_0300.jpg differ
diff --git a/images/img_folder/airplanes/image_0301.jpg b/images/img_folder/airplanes/image_0301.jpg
new file mode 100644
index 0000000..114e0b2
Binary files /dev/null and b/images/img_folder/airplanes/image_0301.jpg differ
diff --git a/images/img_folder/airplanes/image_0302.jpg b/images/img_folder/airplanes/image_0302.jpg
new file mode 100644
index 0000000..76e5504
Binary files /dev/null and b/images/img_folder/airplanes/image_0302.jpg differ
diff --git a/images/img_folder/airplanes/image_0303.jpg b/images/img_folder/airplanes/image_0303.jpg
new file mode 100644
index 0000000..5573c36
Binary files /dev/null and b/images/img_folder/airplanes/image_0303.jpg differ
diff --git a/images/img_folder/airplanes/image_0304.jpg b/images/img_folder/airplanes/image_0304.jpg
new file mode 100644
index 0000000..4080aaa
Binary files /dev/null and b/images/img_folder/airplanes/image_0304.jpg differ
diff --git a/images/img_folder/airplanes/image_0305.jpg b/images/img_folder/airplanes/image_0305.jpg
new file mode 100644
index 0000000..cea5fb7
Binary files /dev/null and b/images/img_folder/airplanes/image_0305.jpg differ
diff --git a/images/img_folder/airplanes/image_0306.jpg b/images/img_folder/airplanes/image_0306.jpg
new file mode 100644
index 0000000..d8b36b3
Binary files /dev/null and b/images/img_folder/airplanes/image_0306.jpg differ
diff --git a/images/img_folder/airplanes/image_0307.jpg b/images/img_folder/airplanes/image_0307.jpg
new file mode 100644
index 0000000..c7fe7b1
Binary files /dev/null and b/images/img_folder/airplanes/image_0307.jpg differ
diff --git a/images/img_folder/airplanes/image_0308.jpg b/images/img_folder/airplanes/image_0308.jpg
new file mode 100644
index 0000000..c9f6c3a
Binary files /dev/null and b/images/img_folder/airplanes/image_0308.jpg differ
diff --git a/images/img_folder/airplanes/image_0309.jpg b/images/img_folder/airplanes/image_0309.jpg
new file mode 100644
index 0000000..8d77348
Binary files /dev/null and b/images/img_folder/airplanes/image_0309.jpg differ
diff --git a/images/img_folder/airplanes/image_0310.jpg b/images/img_folder/airplanes/image_0310.jpg
new file mode 100644
index 0000000..bd25b6c
Binary files /dev/null and b/images/img_folder/airplanes/image_0310.jpg differ
diff --git a/images/img_folder/airplanes/image_0311.jpg b/images/img_folder/airplanes/image_0311.jpg
new file mode 100644
index 0000000..622d545
Binary files /dev/null and b/images/img_folder/airplanes/image_0311.jpg differ
diff --git a/images/img_folder/airplanes/image_0312.jpg b/images/img_folder/airplanes/image_0312.jpg
new file mode 100644
index 0000000..f49231f
Binary files /dev/null and b/images/img_folder/airplanes/image_0312.jpg differ
diff --git a/images/img_folder/airplanes/image_0313.jpg b/images/img_folder/airplanes/image_0313.jpg
new file mode 100644
index 0000000..2be6dfb
Binary files /dev/null and b/images/img_folder/airplanes/image_0313.jpg differ
diff --git a/images/img_folder/airplanes/image_0314.jpg b/images/img_folder/airplanes/image_0314.jpg
new file mode 100644
index 0000000..fd98f69
Binary files /dev/null and b/images/img_folder/airplanes/image_0314.jpg differ
diff --git a/images/img_folder/airplanes/image_0315.jpg b/images/img_folder/airplanes/image_0315.jpg
new file mode 100644
index 0000000..1ec9373
Binary files /dev/null and b/images/img_folder/airplanes/image_0315.jpg differ
diff --git a/images/img_folder/airplanes/image_0316.jpg b/images/img_folder/airplanes/image_0316.jpg
new file mode 100644
index 0000000..9cd2d74
Binary files /dev/null and b/images/img_folder/airplanes/image_0316.jpg differ
diff --git a/images/img_folder/airplanes/image_0317.jpg b/images/img_folder/airplanes/image_0317.jpg
new file mode 100644
index 0000000..a45c70d
Binary files /dev/null and b/images/img_folder/airplanes/image_0317.jpg differ
diff --git a/images/img_folder/airplanes/image_0318.jpg b/images/img_folder/airplanes/image_0318.jpg
new file mode 100644
index 0000000..c506892
Binary files /dev/null and b/images/img_folder/airplanes/image_0318.jpg differ
diff --git a/images/img_folder/airplanes/image_0319.jpg b/images/img_folder/airplanes/image_0319.jpg
new file mode 100644
index 0000000..a9cda9d
Binary files /dev/null and b/images/img_folder/airplanes/image_0319.jpg differ
diff --git a/images/img_folder/airplanes/image_0320.jpg b/images/img_folder/airplanes/image_0320.jpg
new file mode 100644
index 0000000..245ab34
Binary files /dev/null and b/images/img_folder/airplanes/image_0320.jpg differ
diff --git a/images/img_folder/airplanes/image_0321.jpg b/images/img_folder/airplanes/image_0321.jpg
new file mode 100644
index 0000000..c89543e
Binary files /dev/null and b/images/img_folder/airplanes/image_0321.jpg differ
diff --git a/images/img_folder/airplanes/image_0322.jpg b/images/img_folder/airplanes/image_0322.jpg
new file mode 100644
index 0000000..46847ad
Binary files /dev/null and b/images/img_folder/airplanes/image_0322.jpg differ
diff --git a/images/img_folder/airplanes/image_0323.jpg b/images/img_folder/airplanes/image_0323.jpg
new file mode 100644
index 0000000..f7aaf08
Binary files /dev/null and b/images/img_folder/airplanes/image_0323.jpg differ
diff --git a/images/img_folder/airplanes/image_0324.jpg b/images/img_folder/airplanes/image_0324.jpg
new file mode 100644
index 0000000..c5f74d1
Binary files /dev/null and b/images/img_folder/airplanes/image_0324.jpg differ
diff --git a/images/img_folder/airplanes/image_0325.jpg b/images/img_folder/airplanes/image_0325.jpg
new file mode 100644
index 0000000..60586d6
Binary files /dev/null and b/images/img_folder/airplanes/image_0325.jpg differ
diff --git a/images/img_folder/airplanes/image_0326.jpg b/images/img_folder/airplanes/image_0326.jpg
new file mode 100644
index 0000000..00bacbe
Binary files /dev/null and b/images/img_folder/airplanes/image_0326.jpg differ
diff --git a/images/img_folder/airplanes/image_0327.jpg b/images/img_folder/airplanes/image_0327.jpg
new file mode 100644
index 0000000..06b687a
Binary files /dev/null and b/images/img_folder/airplanes/image_0327.jpg differ
diff --git a/images/img_folder/airplanes/image_0328.jpg b/images/img_folder/airplanes/image_0328.jpg
new file mode 100644
index 0000000..2569e0c
Binary files /dev/null and b/images/img_folder/airplanes/image_0328.jpg differ
diff --git a/images/img_folder/airplanes/image_0329.jpg b/images/img_folder/airplanes/image_0329.jpg
new file mode 100644
index 0000000..a6d41fb
Binary files /dev/null and b/images/img_folder/airplanes/image_0329.jpg differ
diff --git a/images/img_folder/airplanes/image_0330.jpg b/images/img_folder/airplanes/image_0330.jpg
new file mode 100644
index 0000000..17de9e3
Binary files /dev/null and b/images/img_folder/airplanes/image_0330.jpg differ
diff --git a/images/img_folder/airplanes/image_0331.jpg b/images/img_folder/airplanes/image_0331.jpg
new file mode 100644
index 0000000..10b522f
Binary files /dev/null and b/images/img_folder/airplanes/image_0331.jpg differ
diff --git a/images/img_folder/airplanes/image_0332.jpg b/images/img_folder/airplanes/image_0332.jpg
new file mode 100644
index 0000000..083839b
Binary files /dev/null and b/images/img_folder/airplanes/image_0332.jpg differ
diff --git a/images/img_folder/airplanes/image_0333.jpg b/images/img_folder/airplanes/image_0333.jpg
new file mode 100644
index 0000000..4a778df
Binary files /dev/null and b/images/img_folder/airplanes/image_0333.jpg differ
diff --git a/images/img_folder/airplanes/image_0334.jpg b/images/img_folder/airplanes/image_0334.jpg
new file mode 100644
index 0000000..8f52091
Binary files /dev/null and b/images/img_folder/airplanes/image_0334.jpg differ
diff --git a/images/img_folder/airplanes/image_0335.jpg b/images/img_folder/airplanes/image_0335.jpg
new file mode 100644
index 0000000..92cfd02
Binary files /dev/null and b/images/img_folder/airplanes/image_0335.jpg differ
diff --git a/images/img_folder/airplanes/image_0336.jpg b/images/img_folder/airplanes/image_0336.jpg
new file mode 100644
index 0000000..9bd9126
Binary files /dev/null and b/images/img_folder/airplanes/image_0336.jpg differ
diff --git a/images/img_folder/airplanes/image_0337.jpg b/images/img_folder/airplanes/image_0337.jpg
new file mode 100644
index 0000000..bbd7cc2
Binary files /dev/null and b/images/img_folder/airplanes/image_0337.jpg differ
diff --git a/images/img_folder/airplanes/image_0338.jpg b/images/img_folder/airplanes/image_0338.jpg
new file mode 100644
index 0000000..7ce80c0
Binary files /dev/null and b/images/img_folder/airplanes/image_0338.jpg differ
diff --git a/images/img_folder/airplanes/image_0339.jpg b/images/img_folder/airplanes/image_0339.jpg
new file mode 100644
index 0000000..e08d7bd
Binary files /dev/null and b/images/img_folder/airplanes/image_0339.jpg differ
diff --git a/images/img_folder/airplanes/image_0340.jpg b/images/img_folder/airplanes/image_0340.jpg
new file mode 100644
index 0000000..9269a4e
Binary files /dev/null and b/images/img_folder/airplanes/image_0340.jpg differ
diff --git a/images/img_folder/airplanes/image_0341.jpg b/images/img_folder/airplanes/image_0341.jpg
new file mode 100644
index 0000000..5137134
Binary files /dev/null and b/images/img_folder/airplanes/image_0341.jpg differ
diff --git a/images/img_folder/airplanes/image_0342.jpg b/images/img_folder/airplanes/image_0342.jpg
new file mode 100644
index 0000000..325f619
Binary files /dev/null and b/images/img_folder/airplanes/image_0342.jpg differ
diff --git a/images/img_folder/airplanes/image_0343.jpg b/images/img_folder/airplanes/image_0343.jpg
new file mode 100644
index 0000000..c6c5bb4
Binary files /dev/null and b/images/img_folder/airplanes/image_0343.jpg differ
diff --git a/images/img_folder/airplanes/image_0344.jpg b/images/img_folder/airplanes/image_0344.jpg
new file mode 100644
index 0000000..a13a194
Binary files /dev/null and b/images/img_folder/airplanes/image_0344.jpg differ
diff --git a/images/img_folder/airplanes/image_0345.jpg b/images/img_folder/airplanes/image_0345.jpg
new file mode 100644
index 0000000..e0509de
Binary files /dev/null and b/images/img_folder/airplanes/image_0345.jpg differ
diff --git a/images/img_folder/airplanes/image_0346.jpg b/images/img_folder/airplanes/image_0346.jpg
new file mode 100644
index 0000000..be0388d
Binary files /dev/null and b/images/img_folder/airplanes/image_0346.jpg differ
diff --git a/images/img_folder/airplanes/image_0347.jpg b/images/img_folder/airplanes/image_0347.jpg
new file mode 100644
index 0000000..5c3c5e2
Binary files /dev/null and b/images/img_folder/airplanes/image_0347.jpg differ
diff --git a/images/img_folder/airplanes/image_0348.jpg b/images/img_folder/airplanes/image_0348.jpg
new file mode 100644
index 0000000..4a1c5ef
Binary files /dev/null and b/images/img_folder/airplanes/image_0348.jpg differ
diff --git a/images/img_folder/airplanes/image_0349.jpg b/images/img_folder/airplanes/image_0349.jpg
new file mode 100644
index 0000000..3413099
Binary files /dev/null and b/images/img_folder/airplanes/image_0349.jpg differ
diff --git a/images/img_folder/airplanes/image_0350.jpg b/images/img_folder/airplanes/image_0350.jpg
new file mode 100644
index 0000000..f51acd6
Binary files /dev/null and b/images/img_folder/airplanes/image_0350.jpg differ
diff --git a/images/img_folder/airplanes/image_0351.jpg b/images/img_folder/airplanes/image_0351.jpg
new file mode 100644
index 0000000..f3e1c7a
Binary files /dev/null and b/images/img_folder/airplanes/image_0351.jpg differ
diff --git a/images/img_folder/airplanes/image_0352.jpg b/images/img_folder/airplanes/image_0352.jpg
new file mode 100644
index 0000000..1d8434f
Binary files /dev/null and b/images/img_folder/airplanes/image_0352.jpg differ
diff --git a/images/img_folder/airplanes/image_0353.jpg b/images/img_folder/airplanes/image_0353.jpg
new file mode 100644
index 0000000..ef9f875
Binary files /dev/null and b/images/img_folder/airplanes/image_0353.jpg differ
diff --git a/images/img_folder/airplanes/image_0354.jpg b/images/img_folder/airplanes/image_0354.jpg
new file mode 100644
index 0000000..b40c1e2
Binary files /dev/null and b/images/img_folder/airplanes/image_0354.jpg differ
diff --git a/images/img_folder/airplanes/image_0355.jpg b/images/img_folder/airplanes/image_0355.jpg
new file mode 100644
index 0000000..2385f79
Binary files /dev/null and b/images/img_folder/airplanes/image_0355.jpg differ
diff --git a/images/img_folder/airplanes/image_0356.jpg b/images/img_folder/airplanes/image_0356.jpg
new file mode 100644
index 0000000..98a245c
Binary files /dev/null and b/images/img_folder/airplanes/image_0356.jpg differ
diff --git a/images/img_folder/airplanes/image_0357.jpg b/images/img_folder/airplanes/image_0357.jpg
new file mode 100644
index 0000000..0696adf
Binary files /dev/null and b/images/img_folder/airplanes/image_0357.jpg differ
diff --git a/images/img_folder/airplanes/image_0358.jpg b/images/img_folder/airplanes/image_0358.jpg
new file mode 100644
index 0000000..64fdc75
Binary files /dev/null and b/images/img_folder/airplanes/image_0358.jpg differ
diff --git a/images/img_folder/airplanes/image_0359.jpg b/images/img_folder/airplanes/image_0359.jpg
new file mode 100644
index 0000000..ab8a693
Binary files /dev/null and b/images/img_folder/airplanes/image_0359.jpg differ
diff --git a/images/img_folder/airplanes/image_0360.jpg b/images/img_folder/airplanes/image_0360.jpg
new file mode 100644
index 0000000..e74a485
Binary files /dev/null and b/images/img_folder/airplanes/image_0360.jpg differ
diff --git a/images/img_folder/airplanes/image_0361.jpg b/images/img_folder/airplanes/image_0361.jpg
new file mode 100644
index 0000000..474b3a4
Binary files /dev/null and b/images/img_folder/airplanes/image_0361.jpg differ
diff --git a/images/img_folder/airplanes/image_0362.jpg b/images/img_folder/airplanes/image_0362.jpg
new file mode 100644
index 0000000..5ac47ad
Binary files /dev/null and b/images/img_folder/airplanes/image_0362.jpg differ
diff --git a/images/img_folder/airplanes/image_0363.jpg b/images/img_folder/airplanes/image_0363.jpg
new file mode 100644
index 0000000..cfaa888
Binary files /dev/null and b/images/img_folder/airplanes/image_0363.jpg differ
diff --git a/images/img_folder/airplanes/image_0364.jpg b/images/img_folder/airplanes/image_0364.jpg
new file mode 100644
index 0000000..20c7fcb
Binary files /dev/null and b/images/img_folder/airplanes/image_0364.jpg differ
diff --git a/images/img_folder/airplanes/image_0365.jpg b/images/img_folder/airplanes/image_0365.jpg
new file mode 100644
index 0000000..d7dec3d
Binary files /dev/null and b/images/img_folder/airplanes/image_0365.jpg differ
diff --git a/images/img_folder/airplanes/image_0366.jpg b/images/img_folder/airplanes/image_0366.jpg
new file mode 100644
index 0000000..9f81aaa
Binary files /dev/null and b/images/img_folder/airplanes/image_0366.jpg differ
diff --git a/images/img_folder/airplanes/image_0367.jpg b/images/img_folder/airplanes/image_0367.jpg
new file mode 100644
index 0000000..9328e98
Binary files /dev/null and b/images/img_folder/airplanes/image_0367.jpg differ
diff --git a/images/img_folder/airplanes/image_0368.jpg b/images/img_folder/airplanes/image_0368.jpg
new file mode 100644
index 0000000..6e666c1
Binary files /dev/null and b/images/img_folder/airplanes/image_0368.jpg differ
diff --git a/images/img_folder/airplanes/image_0369.jpg b/images/img_folder/airplanes/image_0369.jpg
new file mode 100644
index 0000000..8ddf92f
Binary files /dev/null and b/images/img_folder/airplanes/image_0369.jpg differ
diff --git a/images/img_folder/airplanes/image_0370.jpg b/images/img_folder/airplanes/image_0370.jpg
new file mode 100644
index 0000000..e44d3ad
Binary files /dev/null and b/images/img_folder/airplanes/image_0370.jpg differ
diff --git a/images/img_folder/airplanes/image_0371.jpg b/images/img_folder/airplanes/image_0371.jpg
new file mode 100644
index 0000000..d0d4698
Binary files /dev/null and b/images/img_folder/airplanes/image_0371.jpg differ
diff --git a/images/img_folder/airplanes/image_0372.jpg b/images/img_folder/airplanes/image_0372.jpg
new file mode 100644
index 0000000..a0c9af7
Binary files /dev/null and b/images/img_folder/airplanes/image_0372.jpg differ
diff --git a/images/img_folder/airplanes/image_0373.jpg b/images/img_folder/airplanes/image_0373.jpg
new file mode 100644
index 0000000..18d6efc
Binary files /dev/null and b/images/img_folder/airplanes/image_0373.jpg differ
diff --git a/images/img_folder/airplanes/image_0374.jpg b/images/img_folder/airplanes/image_0374.jpg
new file mode 100644
index 0000000..04e94ac
Binary files /dev/null and b/images/img_folder/airplanes/image_0374.jpg differ
diff --git a/images/img_folder/airplanes/image_0375.jpg b/images/img_folder/airplanes/image_0375.jpg
new file mode 100644
index 0000000..38ed9f6
Binary files /dev/null and b/images/img_folder/airplanes/image_0375.jpg differ
diff --git a/images/img_folder/airplanes/image_0376.jpg b/images/img_folder/airplanes/image_0376.jpg
new file mode 100644
index 0000000..7ec0bca
Binary files /dev/null and b/images/img_folder/airplanes/image_0376.jpg differ
diff --git a/images/img_folder/airplanes/image_0377.jpg b/images/img_folder/airplanes/image_0377.jpg
new file mode 100644
index 0000000..f9aef39
Binary files /dev/null and b/images/img_folder/airplanes/image_0377.jpg differ
diff --git a/images/img_folder/airplanes/image_0378.jpg b/images/img_folder/airplanes/image_0378.jpg
new file mode 100644
index 0000000..9568def
Binary files /dev/null and b/images/img_folder/airplanes/image_0378.jpg differ
diff --git a/images/img_folder/airplanes/image_0379.jpg b/images/img_folder/airplanes/image_0379.jpg
new file mode 100644
index 0000000..45b429b
Binary files /dev/null and b/images/img_folder/airplanes/image_0379.jpg differ
diff --git a/images/img_folder/airplanes/image_0380.jpg b/images/img_folder/airplanes/image_0380.jpg
new file mode 100644
index 0000000..3eab945
Binary files /dev/null and b/images/img_folder/airplanes/image_0380.jpg differ
diff --git a/images/img_folder/airplanes/image_0381.jpg b/images/img_folder/airplanes/image_0381.jpg
new file mode 100644
index 0000000..224e466
Binary files /dev/null and b/images/img_folder/airplanes/image_0381.jpg differ
diff --git a/images/img_folder/airplanes/image_0382.jpg b/images/img_folder/airplanes/image_0382.jpg
new file mode 100644
index 0000000..84863db
Binary files /dev/null and b/images/img_folder/airplanes/image_0382.jpg differ
diff --git a/images/img_folder/airplanes/image_0383.jpg b/images/img_folder/airplanes/image_0383.jpg
new file mode 100644
index 0000000..3e1a17e
Binary files /dev/null and b/images/img_folder/airplanes/image_0383.jpg differ
diff --git a/images/img_folder/airplanes/image_0384.jpg b/images/img_folder/airplanes/image_0384.jpg
new file mode 100644
index 0000000..da4034c
Binary files /dev/null and b/images/img_folder/airplanes/image_0384.jpg differ
diff --git a/images/img_folder/airplanes/image_0385.jpg b/images/img_folder/airplanes/image_0385.jpg
new file mode 100644
index 0000000..8aab22d
Binary files /dev/null and b/images/img_folder/airplanes/image_0385.jpg differ
diff --git a/images/img_folder/airplanes/image_0386.jpg b/images/img_folder/airplanes/image_0386.jpg
new file mode 100644
index 0000000..9161925
Binary files /dev/null and b/images/img_folder/airplanes/image_0386.jpg differ
diff --git a/images/img_folder/airplanes/image_0387.jpg b/images/img_folder/airplanes/image_0387.jpg
new file mode 100644
index 0000000..db04ef1
Binary files /dev/null and b/images/img_folder/airplanes/image_0387.jpg differ
diff --git a/images/img_folder/airplanes/image_0388.jpg b/images/img_folder/airplanes/image_0388.jpg
new file mode 100644
index 0000000..2aca789
Binary files /dev/null and b/images/img_folder/airplanes/image_0388.jpg differ
diff --git a/images/img_folder/airplanes/image_0389.jpg b/images/img_folder/airplanes/image_0389.jpg
new file mode 100644
index 0000000..5a6b1ec
Binary files /dev/null and b/images/img_folder/airplanes/image_0389.jpg differ
diff --git a/images/img_folder/airplanes/image_0390.jpg b/images/img_folder/airplanes/image_0390.jpg
new file mode 100644
index 0000000..993c763
Binary files /dev/null and b/images/img_folder/airplanes/image_0390.jpg differ
diff --git a/images/img_folder/airplanes/image_0391.jpg b/images/img_folder/airplanes/image_0391.jpg
new file mode 100644
index 0000000..c9799bb
Binary files /dev/null and b/images/img_folder/airplanes/image_0391.jpg differ
diff --git a/images/img_folder/airplanes/image_0392.jpg b/images/img_folder/airplanes/image_0392.jpg
new file mode 100644
index 0000000..6f5ea91
Binary files /dev/null and b/images/img_folder/airplanes/image_0392.jpg differ
diff --git a/images/img_folder/airplanes/image_0393.jpg b/images/img_folder/airplanes/image_0393.jpg
new file mode 100644
index 0000000..e41d19a
Binary files /dev/null and b/images/img_folder/airplanes/image_0393.jpg differ
diff --git a/images/img_folder/airplanes/image_0394.jpg b/images/img_folder/airplanes/image_0394.jpg
new file mode 100644
index 0000000..6a78506
Binary files /dev/null and b/images/img_folder/airplanes/image_0394.jpg differ
diff --git a/images/img_folder/airplanes/image_0395.jpg b/images/img_folder/airplanes/image_0395.jpg
new file mode 100644
index 0000000..cc9e178
Binary files /dev/null and b/images/img_folder/airplanes/image_0395.jpg differ
diff --git a/images/img_folder/airplanes/image_0396.jpg b/images/img_folder/airplanes/image_0396.jpg
new file mode 100644
index 0000000..3bb4190
Binary files /dev/null and b/images/img_folder/airplanes/image_0396.jpg differ
diff --git a/images/img_folder/airplanes/image_0397.jpg b/images/img_folder/airplanes/image_0397.jpg
new file mode 100644
index 0000000..4df922f
Binary files /dev/null and b/images/img_folder/airplanes/image_0397.jpg differ
diff --git a/images/img_folder/airplanes/image_0398.jpg b/images/img_folder/airplanes/image_0398.jpg
new file mode 100644
index 0000000..46ec529
Binary files /dev/null and b/images/img_folder/airplanes/image_0398.jpg differ
diff --git a/images/img_folder/airplanes/image_0399.jpg b/images/img_folder/airplanes/image_0399.jpg
new file mode 100644
index 0000000..fc0b1bf
Binary files /dev/null and b/images/img_folder/airplanes/image_0399.jpg differ
diff --git a/images/img_folder/airplanes/image_0400.jpg b/images/img_folder/airplanes/image_0400.jpg
new file mode 100644
index 0000000..9d3c4a2
Binary files /dev/null and b/images/img_folder/airplanes/image_0400.jpg differ
diff --git a/images/img_folder/airplanes/image_0401.jpg b/images/img_folder/airplanes/image_0401.jpg
new file mode 100644
index 0000000..4d862cb
Binary files /dev/null and b/images/img_folder/airplanes/image_0401.jpg differ
diff --git a/images/img_folder/airplanes/image_0402.jpg b/images/img_folder/airplanes/image_0402.jpg
new file mode 100644
index 0000000..75561b4
Binary files /dev/null and b/images/img_folder/airplanes/image_0402.jpg differ
diff --git a/images/img_folder/airplanes/image_0403.jpg b/images/img_folder/airplanes/image_0403.jpg
new file mode 100644
index 0000000..1ccee71
Binary files /dev/null and b/images/img_folder/airplanes/image_0403.jpg differ
diff --git a/images/img_folder/airplanes/image_0404.jpg b/images/img_folder/airplanes/image_0404.jpg
new file mode 100644
index 0000000..247842f
Binary files /dev/null and b/images/img_folder/airplanes/image_0404.jpg differ
diff --git a/images/img_folder/airplanes/image_0405.jpg b/images/img_folder/airplanes/image_0405.jpg
new file mode 100644
index 0000000..ab3cf40
Binary files /dev/null and b/images/img_folder/airplanes/image_0405.jpg differ
diff --git a/images/img_folder/airplanes/image_0406.jpg b/images/img_folder/airplanes/image_0406.jpg
new file mode 100644
index 0000000..8740168
Binary files /dev/null and b/images/img_folder/airplanes/image_0406.jpg differ
diff --git a/images/img_folder/airplanes/image_0407.jpg b/images/img_folder/airplanes/image_0407.jpg
new file mode 100644
index 0000000..044dc3f
Binary files /dev/null and b/images/img_folder/airplanes/image_0407.jpg differ
diff --git a/images/img_folder/airplanes/image_0408.jpg b/images/img_folder/airplanes/image_0408.jpg
new file mode 100644
index 0000000..95fa55b
Binary files /dev/null and b/images/img_folder/airplanes/image_0408.jpg differ
diff --git a/images/img_folder/airplanes/image_0409.jpg b/images/img_folder/airplanes/image_0409.jpg
new file mode 100644
index 0000000..6e2b38b
Binary files /dev/null and b/images/img_folder/airplanes/image_0409.jpg differ
diff --git a/images/img_folder/airplanes/image_0410.jpg b/images/img_folder/airplanes/image_0410.jpg
new file mode 100644
index 0000000..1555c24
Binary files /dev/null and b/images/img_folder/airplanes/image_0410.jpg differ
diff --git a/images/img_folder/airplanes/image_0411.jpg b/images/img_folder/airplanes/image_0411.jpg
new file mode 100644
index 0000000..0ba373b
Binary files /dev/null and b/images/img_folder/airplanes/image_0411.jpg differ
diff --git a/images/img_folder/airplanes/image_0412.jpg b/images/img_folder/airplanes/image_0412.jpg
new file mode 100644
index 0000000..505323a
Binary files /dev/null and b/images/img_folder/airplanes/image_0412.jpg differ
diff --git a/images/img_folder/airplanes/image_0413.jpg b/images/img_folder/airplanes/image_0413.jpg
new file mode 100644
index 0000000..56e09c7
Binary files /dev/null and b/images/img_folder/airplanes/image_0413.jpg differ
diff --git a/images/img_folder/airplanes/image_0414.jpg b/images/img_folder/airplanes/image_0414.jpg
new file mode 100644
index 0000000..c7f1643
Binary files /dev/null and b/images/img_folder/airplanes/image_0414.jpg differ
diff --git a/images/img_folder/airplanes/image_0415.jpg b/images/img_folder/airplanes/image_0415.jpg
new file mode 100644
index 0000000..da1633f
Binary files /dev/null and b/images/img_folder/airplanes/image_0415.jpg differ
diff --git a/images/img_folder/airplanes/image_0416.jpg b/images/img_folder/airplanes/image_0416.jpg
new file mode 100644
index 0000000..5129dad
Binary files /dev/null and b/images/img_folder/airplanes/image_0416.jpg differ
diff --git a/images/img_folder/airplanes/image_0417.jpg b/images/img_folder/airplanes/image_0417.jpg
new file mode 100644
index 0000000..14d9330
Binary files /dev/null and b/images/img_folder/airplanes/image_0417.jpg differ
diff --git a/images/img_folder/airplanes/image_0418.jpg b/images/img_folder/airplanes/image_0418.jpg
new file mode 100644
index 0000000..aa7012f
Binary files /dev/null and b/images/img_folder/airplanes/image_0418.jpg differ
diff --git a/images/img_folder/airplanes/image_0419.jpg b/images/img_folder/airplanes/image_0419.jpg
new file mode 100644
index 0000000..1962b79
Binary files /dev/null and b/images/img_folder/airplanes/image_0419.jpg differ
diff --git a/images/img_folder/airplanes/image_0420.jpg b/images/img_folder/airplanes/image_0420.jpg
new file mode 100644
index 0000000..1961e8b
Binary files /dev/null and b/images/img_folder/airplanes/image_0420.jpg differ
diff --git a/images/img_folder/airplanes/image_0421.jpg b/images/img_folder/airplanes/image_0421.jpg
new file mode 100644
index 0000000..5d5f762
Binary files /dev/null and b/images/img_folder/airplanes/image_0421.jpg differ
diff --git a/images/img_folder/airplanes/image_0422.jpg b/images/img_folder/airplanes/image_0422.jpg
new file mode 100644
index 0000000..ce2c7c3
Binary files /dev/null and b/images/img_folder/airplanes/image_0422.jpg differ
diff --git a/images/img_folder/airplanes/image_0423.jpg b/images/img_folder/airplanes/image_0423.jpg
new file mode 100644
index 0000000..06f88ff
Binary files /dev/null and b/images/img_folder/airplanes/image_0423.jpg differ
diff --git a/images/img_folder/airplanes/image_0424.jpg b/images/img_folder/airplanes/image_0424.jpg
new file mode 100644
index 0000000..4b38759
Binary files /dev/null and b/images/img_folder/airplanes/image_0424.jpg differ
diff --git a/images/img_folder/airplanes/image_0425.jpg b/images/img_folder/airplanes/image_0425.jpg
new file mode 100644
index 0000000..97cae54
Binary files /dev/null and b/images/img_folder/airplanes/image_0425.jpg differ
diff --git a/images/img_folder/airplanes/image_0426.jpg b/images/img_folder/airplanes/image_0426.jpg
new file mode 100644
index 0000000..fa87308
Binary files /dev/null and b/images/img_folder/airplanes/image_0426.jpg differ
diff --git a/images/img_folder/airplanes/image_0427.jpg b/images/img_folder/airplanes/image_0427.jpg
new file mode 100644
index 0000000..216fdcb
Binary files /dev/null and b/images/img_folder/airplanes/image_0427.jpg differ
diff --git a/images/img_folder/airplanes/image_0428.jpg b/images/img_folder/airplanes/image_0428.jpg
new file mode 100644
index 0000000..964de4a
Binary files /dev/null and b/images/img_folder/airplanes/image_0428.jpg differ
diff --git a/images/img_folder/airplanes/image_0429.jpg b/images/img_folder/airplanes/image_0429.jpg
new file mode 100644
index 0000000..02f41b9
Binary files /dev/null and b/images/img_folder/airplanes/image_0429.jpg differ
diff --git a/images/img_folder/airplanes/image_0430.jpg b/images/img_folder/airplanes/image_0430.jpg
new file mode 100644
index 0000000..b9abb87
Binary files /dev/null and b/images/img_folder/airplanes/image_0430.jpg differ
diff --git a/images/img_folder/airplanes/image_0431.jpg b/images/img_folder/airplanes/image_0431.jpg
new file mode 100644
index 0000000..877a297
Binary files /dev/null and b/images/img_folder/airplanes/image_0431.jpg differ
diff --git a/images/img_folder/airplanes/image_0432.jpg b/images/img_folder/airplanes/image_0432.jpg
new file mode 100644
index 0000000..0450093
Binary files /dev/null and b/images/img_folder/airplanes/image_0432.jpg differ
diff --git a/images/img_folder/airplanes/image_0433.jpg b/images/img_folder/airplanes/image_0433.jpg
new file mode 100644
index 0000000..ffdec8f
Binary files /dev/null and b/images/img_folder/airplanes/image_0433.jpg differ
diff --git a/images/img_folder/airplanes/image_0434.jpg b/images/img_folder/airplanes/image_0434.jpg
new file mode 100644
index 0000000..3687453
Binary files /dev/null and b/images/img_folder/airplanes/image_0434.jpg differ
diff --git a/images/img_folder/airplanes/image_0435.jpg b/images/img_folder/airplanes/image_0435.jpg
new file mode 100644
index 0000000..f5cadfe
Binary files /dev/null and b/images/img_folder/airplanes/image_0435.jpg differ
diff --git a/images/img_folder/airplanes/image_0436.jpg b/images/img_folder/airplanes/image_0436.jpg
new file mode 100644
index 0000000..35dd5d2
Binary files /dev/null and b/images/img_folder/airplanes/image_0436.jpg differ
diff --git a/images/img_folder/airplanes/image_0437.jpg b/images/img_folder/airplanes/image_0437.jpg
new file mode 100644
index 0000000..f6f69fb
Binary files /dev/null and b/images/img_folder/airplanes/image_0437.jpg differ
diff --git a/images/img_folder/airplanes/image_0438.jpg b/images/img_folder/airplanes/image_0438.jpg
new file mode 100644
index 0000000..43de82f
Binary files /dev/null and b/images/img_folder/airplanes/image_0438.jpg differ
diff --git a/images/img_folder/airplanes/image_0439.jpg b/images/img_folder/airplanes/image_0439.jpg
new file mode 100644
index 0000000..c4ca816
Binary files /dev/null and b/images/img_folder/airplanes/image_0439.jpg differ
diff --git a/images/img_folder/airplanes/image_0440.jpg b/images/img_folder/airplanes/image_0440.jpg
new file mode 100644
index 0000000..e667930
Binary files /dev/null and b/images/img_folder/airplanes/image_0440.jpg differ
diff --git a/images/img_folder/airplanes/image_0441.jpg b/images/img_folder/airplanes/image_0441.jpg
new file mode 100644
index 0000000..80f46e7
Binary files /dev/null and b/images/img_folder/airplanes/image_0441.jpg differ
diff --git a/images/img_folder/airplanes/image_0442.jpg b/images/img_folder/airplanes/image_0442.jpg
new file mode 100644
index 0000000..f945d84
Binary files /dev/null and b/images/img_folder/airplanes/image_0442.jpg differ
diff --git a/images/img_folder/airplanes/image_0443.jpg b/images/img_folder/airplanes/image_0443.jpg
new file mode 100644
index 0000000..8110994
Binary files /dev/null and b/images/img_folder/airplanes/image_0443.jpg differ
diff --git a/images/img_folder/airplanes/image_0444.jpg b/images/img_folder/airplanes/image_0444.jpg
new file mode 100644
index 0000000..b7dab71
Binary files /dev/null and b/images/img_folder/airplanes/image_0444.jpg differ
diff --git a/images/img_folder/airplanes/image_0445.jpg b/images/img_folder/airplanes/image_0445.jpg
new file mode 100644
index 0000000..5fa5398
Binary files /dev/null and b/images/img_folder/airplanes/image_0445.jpg differ
diff --git a/images/img_folder/airplanes/image_0446.jpg b/images/img_folder/airplanes/image_0446.jpg
new file mode 100644
index 0000000..526b4b7
Binary files /dev/null and b/images/img_folder/airplanes/image_0446.jpg differ
diff --git a/images/img_folder/airplanes/image_0447.jpg b/images/img_folder/airplanes/image_0447.jpg
new file mode 100644
index 0000000..9629d82
Binary files /dev/null and b/images/img_folder/airplanes/image_0447.jpg differ
diff --git a/images/img_folder/airplanes/image_0448.jpg b/images/img_folder/airplanes/image_0448.jpg
new file mode 100644
index 0000000..daec97d
Binary files /dev/null and b/images/img_folder/airplanes/image_0448.jpg differ
diff --git a/images/img_folder/airplanes/image_0449.jpg b/images/img_folder/airplanes/image_0449.jpg
new file mode 100644
index 0000000..e3135a9
Binary files /dev/null and b/images/img_folder/airplanes/image_0449.jpg differ
diff --git a/images/img_folder/airplanes/image_0450.jpg b/images/img_folder/airplanes/image_0450.jpg
new file mode 100644
index 0000000..305c064
Binary files /dev/null and b/images/img_folder/airplanes/image_0450.jpg differ
diff --git a/images/img_folder/airplanes/image_0451.jpg b/images/img_folder/airplanes/image_0451.jpg
new file mode 100644
index 0000000..4964ed3
Binary files /dev/null and b/images/img_folder/airplanes/image_0451.jpg differ
diff --git a/images/img_folder/airplanes/image_0452.jpg b/images/img_folder/airplanes/image_0452.jpg
new file mode 100644
index 0000000..ced3737
Binary files /dev/null and b/images/img_folder/airplanes/image_0452.jpg differ
diff --git a/images/img_folder/airplanes/image_0453.jpg b/images/img_folder/airplanes/image_0453.jpg
new file mode 100644
index 0000000..c665007
Binary files /dev/null and b/images/img_folder/airplanes/image_0453.jpg differ
diff --git a/images/img_folder/airplanes/image_0454.jpg b/images/img_folder/airplanes/image_0454.jpg
new file mode 100644
index 0000000..4a8542a
Binary files /dev/null and b/images/img_folder/airplanes/image_0454.jpg differ
diff --git a/images/img_folder/airplanes/image_0455.jpg b/images/img_folder/airplanes/image_0455.jpg
new file mode 100644
index 0000000..55b2dd1
Binary files /dev/null and b/images/img_folder/airplanes/image_0455.jpg differ
diff --git a/images/img_folder/airplanes/image_0456.jpg b/images/img_folder/airplanes/image_0456.jpg
new file mode 100644
index 0000000..1edca3d
Binary files /dev/null and b/images/img_folder/airplanes/image_0456.jpg differ
diff --git a/images/img_folder/airplanes/image_0457.jpg b/images/img_folder/airplanes/image_0457.jpg
new file mode 100644
index 0000000..d4180dc
Binary files /dev/null and b/images/img_folder/airplanes/image_0457.jpg differ
diff --git a/images/img_folder/airplanes/image_0458.jpg b/images/img_folder/airplanes/image_0458.jpg
new file mode 100644
index 0000000..00d4245
Binary files /dev/null and b/images/img_folder/airplanes/image_0458.jpg differ
diff --git a/images/img_folder/airplanes/image_0459.jpg b/images/img_folder/airplanes/image_0459.jpg
new file mode 100644
index 0000000..0677845
Binary files /dev/null and b/images/img_folder/airplanes/image_0459.jpg differ
diff --git a/images/img_folder/airplanes/image_0460.jpg b/images/img_folder/airplanes/image_0460.jpg
new file mode 100644
index 0000000..238640a
Binary files /dev/null and b/images/img_folder/airplanes/image_0460.jpg differ
diff --git a/images/img_folder/airplanes/image_0461.jpg b/images/img_folder/airplanes/image_0461.jpg
new file mode 100644
index 0000000..a391bd4
Binary files /dev/null and b/images/img_folder/airplanes/image_0461.jpg differ
diff --git a/images/img_folder/airplanes/image_0462.jpg b/images/img_folder/airplanes/image_0462.jpg
new file mode 100644
index 0000000..f2d1998
Binary files /dev/null and b/images/img_folder/airplanes/image_0462.jpg differ
diff --git a/images/img_folder/airplanes/image_0463.jpg b/images/img_folder/airplanes/image_0463.jpg
new file mode 100644
index 0000000..66dcf29
Binary files /dev/null and b/images/img_folder/airplanes/image_0463.jpg differ
diff --git a/images/img_folder/airplanes/image_0464.jpg b/images/img_folder/airplanes/image_0464.jpg
new file mode 100644
index 0000000..8e80c74
Binary files /dev/null and b/images/img_folder/airplanes/image_0464.jpg differ
diff --git a/images/img_folder/airplanes/image_0465.jpg b/images/img_folder/airplanes/image_0465.jpg
new file mode 100644
index 0000000..bb0cb06
Binary files /dev/null and b/images/img_folder/airplanes/image_0465.jpg differ
diff --git a/images/img_folder/airplanes/image_0466.jpg b/images/img_folder/airplanes/image_0466.jpg
new file mode 100644
index 0000000..e0a90bb
Binary files /dev/null and b/images/img_folder/airplanes/image_0466.jpg differ
diff --git a/images/img_folder/airplanes/image_0467.jpg b/images/img_folder/airplanes/image_0467.jpg
new file mode 100644
index 0000000..8991683
Binary files /dev/null and b/images/img_folder/airplanes/image_0467.jpg differ
diff --git a/images/img_folder/airplanes/image_0468.jpg b/images/img_folder/airplanes/image_0468.jpg
new file mode 100644
index 0000000..8eb73bf
Binary files /dev/null and b/images/img_folder/airplanes/image_0468.jpg differ
diff --git a/images/img_folder/airplanes/image_0469.jpg b/images/img_folder/airplanes/image_0469.jpg
new file mode 100644
index 0000000..263e9b0
Binary files /dev/null and b/images/img_folder/airplanes/image_0469.jpg differ
diff --git a/images/img_folder/airplanes/image_0470.jpg b/images/img_folder/airplanes/image_0470.jpg
new file mode 100644
index 0000000..de80a3e
Binary files /dev/null and b/images/img_folder/airplanes/image_0470.jpg differ
diff --git a/images/img_folder/airplanes/image_0471.jpg b/images/img_folder/airplanes/image_0471.jpg
new file mode 100644
index 0000000..a032b14
Binary files /dev/null and b/images/img_folder/airplanes/image_0471.jpg differ
diff --git a/images/img_folder/airplanes/image_0472.jpg b/images/img_folder/airplanes/image_0472.jpg
new file mode 100644
index 0000000..4fe65ca
Binary files /dev/null and b/images/img_folder/airplanes/image_0472.jpg differ
diff --git a/images/img_folder/airplanes/image_0473.jpg b/images/img_folder/airplanes/image_0473.jpg
new file mode 100644
index 0000000..b0497e2
Binary files /dev/null and b/images/img_folder/airplanes/image_0473.jpg differ
diff --git a/images/img_folder/airplanes/image_0474.jpg b/images/img_folder/airplanes/image_0474.jpg
new file mode 100644
index 0000000..bca8443
Binary files /dev/null and b/images/img_folder/airplanes/image_0474.jpg differ
diff --git a/images/img_folder/airplanes/image_0475.jpg b/images/img_folder/airplanes/image_0475.jpg
new file mode 100644
index 0000000..8c98c08
Binary files /dev/null and b/images/img_folder/airplanes/image_0475.jpg differ
diff --git a/images/img_folder/airplanes/image_0476.jpg b/images/img_folder/airplanes/image_0476.jpg
new file mode 100644
index 0000000..98492f6
Binary files /dev/null and b/images/img_folder/airplanes/image_0476.jpg differ
diff --git a/images/img_folder/airplanes/image_0477.jpg b/images/img_folder/airplanes/image_0477.jpg
new file mode 100644
index 0000000..830c1e8
Binary files /dev/null and b/images/img_folder/airplanes/image_0477.jpg differ
diff --git a/images/img_folder/airplanes/image_0478.jpg b/images/img_folder/airplanes/image_0478.jpg
new file mode 100644
index 0000000..c38f485
Binary files /dev/null and b/images/img_folder/airplanes/image_0478.jpg differ
diff --git a/images/img_folder/airplanes/image_0479.jpg b/images/img_folder/airplanes/image_0479.jpg
new file mode 100644
index 0000000..ee13ee1
Binary files /dev/null and b/images/img_folder/airplanes/image_0479.jpg differ
diff --git a/images/img_folder/airplanes/image_0480.jpg b/images/img_folder/airplanes/image_0480.jpg
new file mode 100644
index 0000000..a2dbe5d
Binary files /dev/null and b/images/img_folder/airplanes/image_0480.jpg differ
diff --git a/images/img_folder/airplanes/image_0481.jpg b/images/img_folder/airplanes/image_0481.jpg
new file mode 100644
index 0000000..d9e4bab
Binary files /dev/null and b/images/img_folder/airplanes/image_0481.jpg differ
diff --git a/images/img_folder/airplanes/image_0482.jpg b/images/img_folder/airplanes/image_0482.jpg
new file mode 100644
index 0000000..d80c00b
Binary files /dev/null and b/images/img_folder/airplanes/image_0482.jpg differ
diff --git a/images/img_folder/airplanes/image_0483.jpg b/images/img_folder/airplanes/image_0483.jpg
new file mode 100644
index 0000000..04fb1ed
Binary files /dev/null and b/images/img_folder/airplanes/image_0483.jpg differ
diff --git a/images/img_folder/airplanes/image_0484.jpg b/images/img_folder/airplanes/image_0484.jpg
new file mode 100644
index 0000000..81da7be
Binary files /dev/null and b/images/img_folder/airplanes/image_0484.jpg differ
diff --git a/images/img_folder/airplanes/image_0485.jpg b/images/img_folder/airplanes/image_0485.jpg
new file mode 100644
index 0000000..850aa95
Binary files /dev/null and b/images/img_folder/airplanes/image_0485.jpg differ
diff --git a/images/img_folder/airplanes/image_0486.jpg b/images/img_folder/airplanes/image_0486.jpg
new file mode 100644
index 0000000..8f9696c
Binary files /dev/null and b/images/img_folder/airplanes/image_0486.jpg differ
diff --git a/images/img_folder/airplanes/image_0487.jpg b/images/img_folder/airplanes/image_0487.jpg
new file mode 100644
index 0000000..45ecb2e
Binary files /dev/null and b/images/img_folder/airplanes/image_0487.jpg differ
diff --git a/images/img_folder/airplanes/image_0488.jpg b/images/img_folder/airplanes/image_0488.jpg
new file mode 100644
index 0000000..d3d5e1a
Binary files /dev/null and b/images/img_folder/airplanes/image_0488.jpg differ
diff --git a/images/img_folder/airplanes/image_0489.jpg b/images/img_folder/airplanes/image_0489.jpg
new file mode 100644
index 0000000..54b02f4
Binary files /dev/null and b/images/img_folder/airplanes/image_0489.jpg differ
diff --git a/images/img_folder/airplanes/image_0490.jpg b/images/img_folder/airplanes/image_0490.jpg
new file mode 100644
index 0000000..e4d4cfe
Binary files /dev/null and b/images/img_folder/airplanes/image_0490.jpg differ
diff --git a/images/img_folder/airplanes/image_0491.jpg b/images/img_folder/airplanes/image_0491.jpg
new file mode 100644
index 0000000..5ec5789
Binary files /dev/null and b/images/img_folder/airplanes/image_0491.jpg differ
diff --git a/images/img_folder/airplanes/image_0492.jpg b/images/img_folder/airplanes/image_0492.jpg
new file mode 100644
index 0000000..279b9ee
Binary files /dev/null and b/images/img_folder/airplanes/image_0492.jpg differ
diff --git a/images/img_folder/airplanes/image_0493.jpg b/images/img_folder/airplanes/image_0493.jpg
new file mode 100644
index 0000000..064323d
Binary files /dev/null and b/images/img_folder/airplanes/image_0493.jpg differ
diff --git a/images/img_folder/airplanes/image_0494.jpg b/images/img_folder/airplanes/image_0494.jpg
new file mode 100644
index 0000000..606cd76
Binary files /dev/null and b/images/img_folder/airplanes/image_0494.jpg differ
diff --git a/images/img_folder/airplanes/image_0495.jpg b/images/img_folder/airplanes/image_0495.jpg
new file mode 100644
index 0000000..a17b326
Binary files /dev/null and b/images/img_folder/airplanes/image_0495.jpg differ
diff --git a/images/img_folder/airplanes/image_0496.jpg b/images/img_folder/airplanes/image_0496.jpg
new file mode 100644
index 0000000..83e1466
Binary files /dev/null and b/images/img_folder/airplanes/image_0496.jpg differ
diff --git a/images/img_folder/airplanes/image_0497.jpg b/images/img_folder/airplanes/image_0497.jpg
new file mode 100644
index 0000000..d4042e9
Binary files /dev/null and b/images/img_folder/airplanes/image_0497.jpg differ
diff --git a/images/img_folder/airplanes/image_0498.jpg b/images/img_folder/airplanes/image_0498.jpg
new file mode 100644
index 0000000..c039660
Binary files /dev/null and b/images/img_folder/airplanes/image_0498.jpg differ
diff --git a/images/img_folder/airplanes/image_0499.jpg b/images/img_folder/airplanes/image_0499.jpg
new file mode 100644
index 0000000..dd5a1cd
Binary files /dev/null and b/images/img_folder/airplanes/image_0499.jpg differ
diff --git a/images/img_folder/airplanes/image_0500.jpg b/images/img_folder/airplanes/image_0500.jpg
new file mode 100644
index 0000000..28ece3a
Binary files /dev/null and b/images/img_folder/airplanes/image_0500.jpg differ
diff --git a/images/img_folder/airplanes/image_0501.jpg b/images/img_folder/airplanes/image_0501.jpg
new file mode 100644
index 0000000..1b91520
Binary files /dev/null and b/images/img_folder/airplanes/image_0501.jpg differ
diff --git a/images/img_folder/airplanes/image_0502.jpg b/images/img_folder/airplanes/image_0502.jpg
new file mode 100644
index 0000000..ee2b0ce
Binary files /dev/null and b/images/img_folder/airplanes/image_0502.jpg differ
diff --git a/images/img_folder/airplanes/image_0503.jpg b/images/img_folder/airplanes/image_0503.jpg
new file mode 100644
index 0000000..c7d1bcf
Binary files /dev/null and b/images/img_folder/airplanes/image_0503.jpg differ
diff --git a/images/img_folder/airplanes/image_0504.jpg b/images/img_folder/airplanes/image_0504.jpg
new file mode 100644
index 0000000..c066f65
Binary files /dev/null and b/images/img_folder/airplanes/image_0504.jpg differ
diff --git a/images/img_folder/airplanes/image_0505.jpg b/images/img_folder/airplanes/image_0505.jpg
new file mode 100644
index 0000000..3abe951
Binary files /dev/null and b/images/img_folder/airplanes/image_0505.jpg differ
diff --git a/images/img_folder/airplanes/image_0506.jpg b/images/img_folder/airplanes/image_0506.jpg
new file mode 100644
index 0000000..61f9ae9
Binary files /dev/null and b/images/img_folder/airplanes/image_0506.jpg differ
diff --git a/images/img_folder/airplanes/image_0507.jpg b/images/img_folder/airplanes/image_0507.jpg
new file mode 100644
index 0000000..57358f4
Binary files /dev/null and b/images/img_folder/airplanes/image_0507.jpg differ
diff --git a/images/img_folder/airplanes/image_0508.jpg b/images/img_folder/airplanes/image_0508.jpg
new file mode 100644
index 0000000..f3a5ebb
Binary files /dev/null and b/images/img_folder/airplanes/image_0508.jpg differ
diff --git a/images/img_folder/airplanes/image_0509.jpg b/images/img_folder/airplanes/image_0509.jpg
new file mode 100644
index 0000000..69cdaf2
Binary files /dev/null and b/images/img_folder/airplanes/image_0509.jpg differ
diff --git a/images/img_folder/airplanes/image_0510.jpg b/images/img_folder/airplanes/image_0510.jpg
new file mode 100644
index 0000000..9cd8f09
Binary files /dev/null and b/images/img_folder/airplanes/image_0510.jpg differ
diff --git a/images/img_folder/airplanes/image_0511.jpg b/images/img_folder/airplanes/image_0511.jpg
new file mode 100644
index 0000000..5e35226
Binary files /dev/null and b/images/img_folder/airplanes/image_0511.jpg differ
diff --git a/images/img_folder/airplanes/image_0512.jpg b/images/img_folder/airplanes/image_0512.jpg
new file mode 100644
index 0000000..a89fb0b
Binary files /dev/null and b/images/img_folder/airplanes/image_0512.jpg differ
diff --git a/images/img_folder/airplanes/image_0513.jpg b/images/img_folder/airplanes/image_0513.jpg
new file mode 100644
index 0000000..fee737d
Binary files /dev/null and b/images/img_folder/airplanes/image_0513.jpg differ
diff --git a/images/img_folder/airplanes/image_0514.jpg b/images/img_folder/airplanes/image_0514.jpg
new file mode 100644
index 0000000..8079f85
Binary files /dev/null and b/images/img_folder/airplanes/image_0514.jpg differ
diff --git a/images/img_folder/airplanes/image_0515.jpg b/images/img_folder/airplanes/image_0515.jpg
new file mode 100644
index 0000000..1eb4434
Binary files /dev/null and b/images/img_folder/airplanes/image_0515.jpg differ
diff --git a/images/img_folder/airplanes/image_0516.jpg b/images/img_folder/airplanes/image_0516.jpg
new file mode 100644
index 0000000..bcd2a1c
Binary files /dev/null and b/images/img_folder/airplanes/image_0516.jpg differ
diff --git a/images/img_folder/airplanes/image_0517.jpg b/images/img_folder/airplanes/image_0517.jpg
new file mode 100644
index 0000000..14c542a
Binary files /dev/null and b/images/img_folder/airplanes/image_0517.jpg differ
diff --git a/images/img_folder/airplanes/image_0518.jpg b/images/img_folder/airplanes/image_0518.jpg
new file mode 100644
index 0000000..a8c96f6
Binary files /dev/null and b/images/img_folder/airplanes/image_0518.jpg differ
diff --git a/images/img_folder/airplanes/image_0519.jpg b/images/img_folder/airplanes/image_0519.jpg
new file mode 100644
index 0000000..d6214cb
Binary files /dev/null and b/images/img_folder/airplanes/image_0519.jpg differ
diff --git a/images/img_folder/airplanes/image_0520.jpg b/images/img_folder/airplanes/image_0520.jpg
new file mode 100644
index 0000000..5986ace
Binary files /dev/null and b/images/img_folder/airplanes/image_0520.jpg differ
diff --git a/images/img_folder/airplanes/image_0521.jpg b/images/img_folder/airplanes/image_0521.jpg
new file mode 100644
index 0000000..9e5ffd7
Binary files /dev/null and b/images/img_folder/airplanes/image_0521.jpg differ
diff --git a/images/img_folder/airplanes/image_0522.jpg b/images/img_folder/airplanes/image_0522.jpg
new file mode 100644
index 0000000..9419f8d
Binary files /dev/null and b/images/img_folder/airplanes/image_0522.jpg differ
diff --git a/images/img_folder/airplanes/image_0523.jpg b/images/img_folder/airplanes/image_0523.jpg
new file mode 100644
index 0000000..d253ce1
Binary files /dev/null and b/images/img_folder/airplanes/image_0523.jpg differ
diff --git a/images/img_folder/airplanes/image_0524.jpg b/images/img_folder/airplanes/image_0524.jpg
new file mode 100644
index 0000000..10fd8a8
Binary files /dev/null and b/images/img_folder/airplanes/image_0524.jpg differ
diff --git a/images/img_folder/airplanes/image_0525.jpg b/images/img_folder/airplanes/image_0525.jpg
new file mode 100644
index 0000000..c941a69
Binary files /dev/null and b/images/img_folder/airplanes/image_0525.jpg differ
diff --git a/images/img_folder/airplanes/image_0526.jpg b/images/img_folder/airplanes/image_0526.jpg
new file mode 100644
index 0000000..f8c6dd5
Binary files /dev/null and b/images/img_folder/airplanes/image_0526.jpg differ
diff --git a/images/img_folder/airplanes/image_0527.jpg b/images/img_folder/airplanes/image_0527.jpg
new file mode 100644
index 0000000..1e2dde8
Binary files /dev/null and b/images/img_folder/airplanes/image_0527.jpg differ
diff --git a/images/img_folder/airplanes/image_0528.jpg b/images/img_folder/airplanes/image_0528.jpg
new file mode 100644
index 0000000..ec57a08
Binary files /dev/null and b/images/img_folder/airplanes/image_0528.jpg differ
diff --git a/images/img_folder/airplanes/image_0529.jpg b/images/img_folder/airplanes/image_0529.jpg
new file mode 100644
index 0000000..3bc8189
Binary files /dev/null and b/images/img_folder/airplanes/image_0529.jpg differ
diff --git a/images/img_folder/airplanes/image_0530.jpg b/images/img_folder/airplanes/image_0530.jpg
new file mode 100644
index 0000000..20fe773
Binary files /dev/null and b/images/img_folder/airplanes/image_0530.jpg differ
diff --git a/images/img_folder/airplanes/image_0531.jpg b/images/img_folder/airplanes/image_0531.jpg
new file mode 100644
index 0000000..113ac71
Binary files /dev/null and b/images/img_folder/airplanes/image_0531.jpg differ
diff --git a/images/img_folder/airplanes/image_0532.jpg b/images/img_folder/airplanes/image_0532.jpg
new file mode 100644
index 0000000..10eac0a
Binary files /dev/null and b/images/img_folder/airplanes/image_0532.jpg differ
diff --git a/images/img_folder/airplanes/image_0533.jpg b/images/img_folder/airplanes/image_0533.jpg
new file mode 100644
index 0000000..549fc08
Binary files /dev/null and b/images/img_folder/airplanes/image_0533.jpg differ
diff --git a/images/img_folder/airplanes/image_0534.jpg b/images/img_folder/airplanes/image_0534.jpg
new file mode 100644
index 0000000..75ab955
Binary files /dev/null and b/images/img_folder/airplanes/image_0534.jpg differ
diff --git a/images/img_folder/airplanes/image_0535.jpg b/images/img_folder/airplanes/image_0535.jpg
new file mode 100644
index 0000000..34c067f
Binary files /dev/null and b/images/img_folder/airplanes/image_0535.jpg differ
diff --git a/images/img_folder/airplanes/image_0536.jpg b/images/img_folder/airplanes/image_0536.jpg
new file mode 100644
index 0000000..9df5fc4
Binary files /dev/null and b/images/img_folder/airplanes/image_0536.jpg differ
diff --git a/images/img_folder/airplanes/image_0537.jpg b/images/img_folder/airplanes/image_0537.jpg
new file mode 100644
index 0000000..564c6f1
Binary files /dev/null and b/images/img_folder/airplanes/image_0537.jpg differ
diff --git a/images/img_folder/airplanes/image_0538.jpg b/images/img_folder/airplanes/image_0538.jpg
new file mode 100644
index 0000000..3c463c8
Binary files /dev/null and b/images/img_folder/airplanes/image_0538.jpg differ
diff --git a/images/img_folder/airplanes/image_0539.jpg b/images/img_folder/airplanes/image_0539.jpg
new file mode 100644
index 0000000..2b25734
Binary files /dev/null and b/images/img_folder/airplanes/image_0539.jpg differ
diff --git a/images/img_folder/airplanes/image_0540.jpg b/images/img_folder/airplanes/image_0540.jpg
new file mode 100644
index 0000000..852cfea
Binary files /dev/null and b/images/img_folder/airplanes/image_0540.jpg differ
diff --git a/images/img_folder/airplanes/image_0541.jpg b/images/img_folder/airplanes/image_0541.jpg
new file mode 100644
index 0000000..cf8282e
Binary files /dev/null and b/images/img_folder/airplanes/image_0541.jpg differ
diff --git a/images/img_folder/airplanes/image_0542.jpg b/images/img_folder/airplanes/image_0542.jpg
new file mode 100644
index 0000000..186775c
Binary files /dev/null and b/images/img_folder/airplanes/image_0542.jpg differ
diff --git a/images/img_folder/airplanes/image_0543.jpg b/images/img_folder/airplanes/image_0543.jpg
new file mode 100644
index 0000000..54294f0
Binary files /dev/null and b/images/img_folder/airplanes/image_0543.jpg differ
diff --git a/images/img_folder/airplanes/image_0544.jpg b/images/img_folder/airplanes/image_0544.jpg
new file mode 100644
index 0000000..8d167e5
Binary files /dev/null and b/images/img_folder/airplanes/image_0544.jpg differ
diff --git a/images/img_folder/airplanes/image_0545.jpg b/images/img_folder/airplanes/image_0545.jpg
new file mode 100644
index 0000000..e0379a3
Binary files /dev/null and b/images/img_folder/airplanes/image_0545.jpg differ
diff --git a/images/img_folder/airplanes/image_0546.jpg b/images/img_folder/airplanes/image_0546.jpg
new file mode 100644
index 0000000..e1fcf7c
Binary files /dev/null and b/images/img_folder/airplanes/image_0546.jpg differ
diff --git a/images/img_folder/airplanes/image_0547.jpg b/images/img_folder/airplanes/image_0547.jpg
new file mode 100644
index 0000000..e7f7c03
Binary files /dev/null and b/images/img_folder/airplanes/image_0547.jpg differ
diff --git a/images/img_folder/airplanes/image_0548.jpg b/images/img_folder/airplanes/image_0548.jpg
new file mode 100644
index 0000000..bfc0fc9
Binary files /dev/null and b/images/img_folder/airplanes/image_0548.jpg differ
diff --git a/images/img_folder/airplanes/image_0549.jpg b/images/img_folder/airplanes/image_0549.jpg
new file mode 100644
index 0000000..54bc859
Binary files /dev/null and b/images/img_folder/airplanes/image_0549.jpg differ
diff --git a/images/img_folder/airplanes/image_0550.jpg b/images/img_folder/airplanes/image_0550.jpg
new file mode 100644
index 0000000..0799944
Binary files /dev/null and b/images/img_folder/airplanes/image_0550.jpg differ
diff --git a/images/img_folder/airplanes/image_0551.jpg b/images/img_folder/airplanes/image_0551.jpg
new file mode 100644
index 0000000..560d872
Binary files /dev/null and b/images/img_folder/airplanes/image_0551.jpg differ
diff --git a/images/img_folder/airplanes/image_0552.jpg b/images/img_folder/airplanes/image_0552.jpg
new file mode 100644
index 0000000..f026582
Binary files /dev/null and b/images/img_folder/airplanes/image_0552.jpg differ
diff --git a/images/img_folder/airplanes/image_0553.jpg b/images/img_folder/airplanes/image_0553.jpg
new file mode 100644
index 0000000..530fd76
Binary files /dev/null and b/images/img_folder/airplanes/image_0553.jpg differ
diff --git a/images/img_folder/airplanes/image_0554.jpg b/images/img_folder/airplanes/image_0554.jpg
new file mode 100644
index 0000000..d7fad2c
Binary files /dev/null and b/images/img_folder/airplanes/image_0554.jpg differ
diff --git a/images/img_folder/airplanes/image_0555.jpg b/images/img_folder/airplanes/image_0555.jpg
new file mode 100644
index 0000000..4e39cf8
Binary files /dev/null and b/images/img_folder/airplanes/image_0555.jpg differ
diff --git a/images/img_folder/airplanes/image_0556.jpg b/images/img_folder/airplanes/image_0556.jpg
new file mode 100644
index 0000000..3acbfc0
Binary files /dev/null and b/images/img_folder/airplanes/image_0556.jpg differ
diff --git a/images/img_folder/airplanes/image_0557.jpg b/images/img_folder/airplanes/image_0557.jpg
new file mode 100644
index 0000000..fc0fbd6
Binary files /dev/null and b/images/img_folder/airplanes/image_0557.jpg differ
diff --git a/images/img_folder/airplanes/image_0558.jpg b/images/img_folder/airplanes/image_0558.jpg
new file mode 100644
index 0000000..8698acf
Binary files /dev/null and b/images/img_folder/airplanes/image_0558.jpg differ
diff --git a/images/img_folder/airplanes/image_0559.jpg b/images/img_folder/airplanes/image_0559.jpg
new file mode 100644
index 0000000..a0c91dc
Binary files /dev/null and b/images/img_folder/airplanes/image_0559.jpg differ
diff --git a/images/img_folder/airplanes/image_0560.jpg b/images/img_folder/airplanes/image_0560.jpg
new file mode 100644
index 0000000..38af4d2
Binary files /dev/null and b/images/img_folder/airplanes/image_0560.jpg differ
diff --git a/images/img_folder/airplanes/image_0561.jpg b/images/img_folder/airplanes/image_0561.jpg
new file mode 100644
index 0000000..4a14103
Binary files /dev/null and b/images/img_folder/airplanes/image_0561.jpg differ
diff --git a/images/img_folder/airplanes/image_0562.jpg b/images/img_folder/airplanes/image_0562.jpg
new file mode 100644
index 0000000..66deaed
Binary files /dev/null and b/images/img_folder/airplanes/image_0562.jpg differ
diff --git a/images/img_folder/airplanes/image_0563.jpg b/images/img_folder/airplanes/image_0563.jpg
new file mode 100644
index 0000000..1bed34a
Binary files /dev/null and b/images/img_folder/airplanes/image_0563.jpg differ
diff --git a/images/img_folder/airplanes/image_0564.jpg b/images/img_folder/airplanes/image_0564.jpg
new file mode 100644
index 0000000..f7c83d5
Binary files /dev/null and b/images/img_folder/airplanes/image_0564.jpg differ
diff --git a/images/img_folder/airplanes/image_0565.jpg b/images/img_folder/airplanes/image_0565.jpg
new file mode 100644
index 0000000..7254449
Binary files /dev/null and b/images/img_folder/airplanes/image_0565.jpg differ
diff --git a/images/img_folder/airplanes/image_0566.jpg b/images/img_folder/airplanes/image_0566.jpg
new file mode 100644
index 0000000..84b1c9a
Binary files /dev/null and b/images/img_folder/airplanes/image_0566.jpg differ
diff --git a/images/img_folder/airplanes/image_0567.jpg b/images/img_folder/airplanes/image_0567.jpg
new file mode 100644
index 0000000..974f9bd
Binary files /dev/null and b/images/img_folder/airplanes/image_0567.jpg differ
diff --git a/images/img_folder/airplanes/image_0568.jpg b/images/img_folder/airplanes/image_0568.jpg
new file mode 100644
index 0000000..8305865
Binary files /dev/null and b/images/img_folder/airplanes/image_0568.jpg differ
diff --git a/images/img_folder/airplanes/image_0569.jpg b/images/img_folder/airplanes/image_0569.jpg
new file mode 100644
index 0000000..48926d1
Binary files /dev/null and b/images/img_folder/airplanes/image_0569.jpg differ
diff --git a/images/img_folder/airplanes/image_0570.jpg b/images/img_folder/airplanes/image_0570.jpg
new file mode 100644
index 0000000..b425fe9
Binary files /dev/null and b/images/img_folder/airplanes/image_0570.jpg differ
diff --git a/images/img_folder/airplanes/image_0571.jpg b/images/img_folder/airplanes/image_0571.jpg
new file mode 100644
index 0000000..f259788
Binary files /dev/null and b/images/img_folder/airplanes/image_0571.jpg differ
diff --git a/images/img_folder/airplanes/image_0572.jpg b/images/img_folder/airplanes/image_0572.jpg
new file mode 100644
index 0000000..281636a
Binary files /dev/null and b/images/img_folder/airplanes/image_0572.jpg differ
diff --git a/images/img_folder/airplanes/image_0573.jpg b/images/img_folder/airplanes/image_0573.jpg
new file mode 100644
index 0000000..5e58b42
Binary files /dev/null and b/images/img_folder/airplanes/image_0573.jpg differ
diff --git a/images/img_folder/airplanes/image_0574.jpg b/images/img_folder/airplanes/image_0574.jpg
new file mode 100644
index 0000000..6230386
Binary files /dev/null and b/images/img_folder/airplanes/image_0574.jpg differ
diff --git a/images/img_folder/airplanes/image_0575.jpg b/images/img_folder/airplanes/image_0575.jpg
new file mode 100644
index 0000000..a498ff9
Binary files /dev/null and b/images/img_folder/airplanes/image_0575.jpg differ
diff --git a/images/img_folder/airplanes/image_0576.jpg b/images/img_folder/airplanes/image_0576.jpg
new file mode 100644
index 0000000..795ec5b
Binary files /dev/null and b/images/img_folder/airplanes/image_0576.jpg differ
diff --git a/images/img_folder/airplanes/image_0577.jpg b/images/img_folder/airplanes/image_0577.jpg
new file mode 100644
index 0000000..ce4056f
Binary files /dev/null and b/images/img_folder/airplanes/image_0577.jpg differ
diff --git a/images/img_folder/airplanes/image_0578.jpg b/images/img_folder/airplanes/image_0578.jpg
new file mode 100644
index 0000000..9b3a2b0
Binary files /dev/null and b/images/img_folder/airplanes/image_0578.jpg differ
diff --git a/images/img_folder/airplanes/image_0579.jpg b/images/img_folder/airplanes/image_0579.jpg
new file mode 100644
index 0000000..c278cf4
Binary files /dev/null and b/images/img_folder/airplanes/image_0579.jpg differ
diff --git a/images/img_folder/airplanes/image_0580.jpg b/images/img_folder/airplanes/image_0580.jpg
new file mode 100644
index 0000000..678dff2
Binary files /dev/null and b/images/img_folder/airplanes/image_0580.jpg differ
diff --git a/images/img_folder/airplanes/image_0581.jpg b/images/img_folder/airplanes/image_0581.jpg
new file mode 100644
index 0000000..63093a0
Binary files /dev/null and b/images/img_folder/airplanes/image_0581.jpg differ
diff --git a/images/img_folder/airplanes/image_0582.jpg b/images/img_folder/airplanes/image_0582.jpg
new file mode 100644
index 0000000..91e6614
Binary files /dev/null and b/images/img_folder/airplanes/image_0582.jpg differ
diff --git a/images/img_folder/airplanes/image_0583.jpg b/images/img_folder/airplanes/image_0583.jpg
new file mode 100644
index 0000000..d74892c
Binary files /dev/null and b/images/img_folder/airplanes/image_0583.jpg differ
diff --git a/images/img_folder/airplanes/image_0584.jpg b/images/img_folder/airplanes/image_0584.jpg
new file mode 100644
index 0000000..e0c6541
Binary files /dev/null and b/images/img_folder/airplanes/image_0584.jpg differ
diff --git a/images/img_folder/airplanes/image_0585.jpg b/images/img_folder/airplanes/image_0585.jpg
new file mode 100644
index 0000000..d9e46cb
Binary files /dev/null and b/images/img_folder/airplanes/image_0585.jpg differ
diff --git a/images/img_folder/airplanes/image_0586.jpg b/images/img_folder/airplanes/image_0586.jpg
new file mode 100644
index 0000000..fbfa6af
Binary files /dev/null and b/images/img_folder/airplanes/image_0586.jpg differ
diff --git a/images/img_folder/airplanes/image_0587.jpg b/images/img_folder/airplanes/image_0587.jpg
new file mode 100644
index 0000000..76e0dc5
Binary files /dev/null and b/images/img_folder/airplanes/image_0587.jpg differ
diff --git a/images/img_folder/airplanes/image_0588.jpg b/images/img_folder/airplanes/image_0588.jpg
new file mode 100644
index 0000000..0b0322a
Binary files /dev/null and b/images/img_folder/airplanes/image_0588.jpg differ
diff --git a/images/img_folder/airplanes/image_0589.jpg b/images/img_folder/airplanes/image_0589.jpg
new file mode 100644
index 0000000..e52b2f2
Binary files /dev/null and b/images/img_folder/airplanes/image_0589.jpg differ
diff --git a/images/img_folder/airplanes/image_0590.jpg b/images/img_folder/airplanes/image_0590.jpg
new file mode 100644
index 0000000..0f00311
Binary files /dev/null and b/images/img_folder/airplanes/image_0590.jpg differ
diff --git a/images/img_folder/airplanes/image_0591.jpg b/images/img_folder/airplanes/image_0591.jpg
new file mode 100644
index 0000000..f5fc022
Binary files /dev/null and b/images/img_folder/airplanes/image_0591.jpg differ
diff --git a/images/img_folder/airplanes/image_0592.jpg b/images/img_folder/airplanes/image_0592.jpg
new file mode 100644
index 0000000..7d0a888
Binary files /dev/null and b/images/img_folder/airplanes/image_0592.jpg differ
diff --git a/images/img_folder/airplanes/image_0593.jpg b/images/img_folder/airplanes/image_0593.jpg
new file mode 100644
index 0000000..2af5e5c
Binary files /dev/null and b/images/img_folder/airplanes/image_0593.jpg differ
diff --git a/images/img_folder/airplanes/image_0594.jpg b/images/img_folder/airplanes/image_0594.jpg
new file mode 100644
index 0000000..cccc520
Binary files /dev/null and b/images/img_folder/airplanes/image_0594.jpg differ
diff --git a/images/img_folder/airplanes/image_0595.jpg b/images/img_folder/airplanes/image_0595.jpg
new file mode 100644
index 0000000..548c2f8
Binary files /dev/null and b/images/img_folder/airplanes/image_0595.jpg differ
diff --git a/images/img_folder/airplanes/image_0596.jpg b/images/img_folder/airplanes/image_0596.jpg
new file mode 100644
index 0000000..6039c1e
Binary files /dev/null and b/images/img_folder/airplanes/image_0596.jpg differ
diff --git a/images/img_folder/airplanes/image_0597.jpg b/images/img_folder/airplanes/image_0597.jpg
new file mode 100644
index 0000000..2aad5fa
Binary files /dev/null and b/images/img_folder/airplanes/image_0597.jpg differ
diff --git a/images/img_folder/airplanes/image_0598.jpg b/images/img_folder/airplanes/image_0598.jpg
new file mode 100644
index 0000000..05c8d1d
Binary files /dev/null and b/images/img_folder/airplanes/image_0598.jpg differ
diff --git a/images/img_folder/airplanes/image_0599.jpg b/images/img_folder/airplanes/image_0599.jpg
new file mode 100644
index 0000000..ab90dae
Binary files /dev/null and b/images/img_folder/airplanes/image_0599.jpg differ
diff --git a/images/img_folder/airplanes/image_0600.jpg b/images/img_folder/airplanes/image_0600.jpg
new file mode 100644
index 0000000..460c777
Binary files /dev/null and b/images/img_folder/airplanes/image_0600.jpg differ
diff --git a/images/img_folder/airplanes/image_0601.jpg b/images/img_folder/airplanes/image_0601.jpg
new file mode 100644
index 0000000..d509050
Binary files /dev/null and b/images/img_folder/airplanes/image_0601.jpg differ
diff --git a/images/img_folder/airplanes/image_0602.jpg b/images/img_folder/airplanes/image_0602.jpg
new file mode 100644
index 0000000..07ee985
Binary files /dev/null and b/images/img_folder/airplanes/image_0602.jpg differ
diff --git a/images/img_folder/airplanes/image_0603.jpg b/images/img_folder/airplanes/image_0603.jpg
new file mode 100644
index 0000000..63d62f4
Binary files /dev/null and b/images/img_folder/airplanes/image_0603.jpg differ
diff --git a/images/img_folder/airplanes/image_0604.jpg b/images/img_folder/airplanes/image_0604.jpg
new file mode 100644
index 0000000..af75092
Binary files /dev/null and b/images/img_folder/airplanes/image_0604.jpg differ
diff --git a/images/img_folder/airplanes/image_0605.jpg b/images/img_folder/airplanes/image_0605.jpg
new file mode 100644
index 0000000..cf374a1
Binary files /dev/null and b/images/img_folder/airplanes/image_0605.jpg differ
diff --git a/images/img_folder/airplanes/image_0606.jpg b/images/img_folder/airplanes/image_0606.jpg
new file mode 100644
index 0000000..8eb8f9d
Binary files /dev/null and b/images/img_folder/airplanes/image_0606.jpg differ
diff --git a/images/img_folder/airplanes/image_0607.jpg b/images/img_folder/airplanes/image_0607.jpg
new file mode 100644
index 0000000..d46a8b6
Binary files /dev/null and b/images/img_folder/airplanes/image_0607.jpg differ
diff --git a/images/img_folder/airplanes/image_0608.jpg b/images/img_folder/airplanes/image_0608.jpg
new file mode 100644
index 0000000..370e2df
Binary files /dev/null and b/images/img_folder/airplanes/image_0608.jpg differ
diff --git a/images/img_folder/airplanes/image_0609.jpg b/images/img_folder/airplanes/image_0609.jpg
new file mode 100644
index 0000000..5abfcbb
Binary files /dev/null and b/images/img_folder/airplanes/image_0609.jpg differ
diff --git a/images/img_folder/airplanes/image_0610.jpg b/images/img_folder/airplanes/image_0610.jpg
new file mode 100644
index 0000000..692cb1d
Binary files /dev/null and b/images/img_folder/airplanes/image_0610.jpg differ
diff --git a/images/img_folder/airplanes/image_0611.jpg b/images/img_folder/airplanes/image_0611.jpg
new file mode 100644
index 0000000..911d5a5
Binary files /dev/null and b/images/img_folder/airplanes/image_0611.jpg differ
diff --git a/images/img_folder/airplanes/image_0612.jpg b/images/img_folder/airplanes/image_0612.jpg
new file mode 100644
index 0000000..272c055
Binary files /dev/null and b/images/img_folder/airplanes/image_0612.jpg differ
diff --git a/images/img_folder/airplanes/image_0613.jpg b/images/img_folder/airplanes/image_0613.jpg
new file mode 100644
index 0000000..2dd974c
Binary files /dev/null and b/images/img_folder/airplanes/image_0613.jpg differ
diff --git a/images/img_folder/airplanes/image_0614.jpg b/images/img_folder/airplanes/image_0614.jpg
new file mode 100644
index 0000000..69eb7f0
Binary files /dev/null and b/images/img_folder/airplanes/image_0614.jpg differ
diff --git a/images/img_folder/airplanes/image_0615.jpg b/images/img_folder/airplanes/image_0615.jpg
new file mode 100644
index 0000000..6cd068a
Binary files /dev/null and b/images/img_folder/airplanes/image_0615.jpg differ
diff --git a/images/img_folder/airplanes/image_0616.jpg b/images/img_folder/airplanes/image_0616.jpg
new file mode 100644
index 0000000..7e90ade
Binary files /dev/null and b/images/img_folder/airplanes/image_0616.jpg differ
diff --git a/images/img_folder/airplanes/image_0617.jpg b/images/img_folder/airplanes/image_0617.jpg
new file mode 100644
index 0000000..86c4e86
Binary files /dev/null and b/images/img_folder/airplanes/image_0617.jpg differ
diff --git a/images/img_folder/airplanes/image_0618.jpg b/images/img_folder/airplanes/image_0618.jpg
new file mode 100644
index 0000000..2da7baf
Binary files /dev/null and b/images/img_folder/airplanes/image_0618.jpg differ
diff --git a/images/img_folder/airplanes/image_0619.jpg b/images/img_folder/airplanes/image_0619.jpg
new file mode 100644
index 0000000..4b36939
Binary files /dev/null and b/images/img_folder/airplanes/image_0619.jpg differ
diff --git a/images/img_folder/airplanes/image_0620.jpg b/images/img_folder/airplanes/image_0620.jpg
new file mode 100644
index 0000000..6ee7fe5
Binary files /dev/null and b/images/img_folder/airplanes/image_0620.jpg differ
diff --git a/images/img_folder/airplanes/image_0621.jpg b/images/img_folder/airplanes/image_0621.jpg
new file mode 100644
index 0000000..8748a74
Binary files /dev/null and b/images/img_folder/airplanes/image_0621.jpg differ
diff --git a/images/img_folder/airplanes/image_0622.jpg b/images/img_folder/airplanes/image_0622.jpg
new file mode 100644
index 0000000..d6fa3dc
Binary files /dev/null and b/images/img_folder/airplanes/image_0622.jpg differ
diff --git a/images/img_folder/airplanes/image_0623.jpg b/images/img_folder/airplanes/image_0623.jpg
new file mode 100644
index 0000000..5e2598d
Binary files /dev/null and b/images/img_folder/airplanes/image_0623.jpg differ
diff --git a/images/img_folder/airplanes/image_0624.jpg b/images/img_folder/airplanes/image_0624.jpg
new file mode 100644
index 0000000..e03684a
Binary files /dev/null and b/images/img_folder/airplanes/image_0624.jpg differ
diff --git a/images/img_folder/airplanes/image_0625.jpg b/images/img_folder/airplanes/image_0625.jpg
new file mode 100644
index 0000000..67f3df9
Binary files /dev/null and b/images/img_folder/airplanes/image_0625.jpg differ
diff --git a/images/img_folder/airplanes/image_0626.jpg b/images/img_folder/airplanes/image_0626.jpg
new file mode 100644
index 0000000..b2c53f1
Binary files /dev/null and b/images/img_folder/airplanes/image_0626.jpg differ
diff --git a/images/img_folder/airplanes/image_0627.jpg b/images/img_folder/airplanes/image_0627.jpg
new file mode 100644
index 0000000..7457ccc
Binary files /dev/null and b/images/img_folder/airplanes/image_0627.jpg differ
diff --git a/images/img_folder/airplanes/image_0628.jpg b/images/img_folder/airplanes/image_0628.jpg
new file mode 100644
index 0000000..fb0b02e
Binary files /dev/null and b/images/img_folder/airplanes/image_0628.jpg differ
diff --git a/images/img_folder/airplanes/image_0629.jpg b/images/img_folder/airplanes/image_0629.jpg
new file mode 100644
index 0000000..0a5fd34
Binary files /dev/null and b/images/img_folder/airplanes/image_0629.jpg differ
diff --git a/images/img_folder/airplanes/image_0630.jpg b/images/img_folder/airplanes/image_0630.jpg
new file mode 100644
index 0000000..ccfdb43
Binary files /dev/null and b/images/img_folder/airplanes/image_0630.jpg differ
diff --git a/images/img_folder/airplanes/image_0631.jpg b/images/img_folder/airplanes/image_0631.jpg
new file mode 100644
index 0000000..cfe4c8e
Binary files /dev/null and b/images/img_folder/airplanes/image_0631.jpg differ
diff --git a/images/img_folder/airplanes/image_0632.jpg b/images/img_folder/airplanes/image_0632.jpg
new file mode 100644
index 0000000..452f266
Binary files /dev/null and b/images/img_folder/airplanes/image_0632.jpg differ
diff --git a/images/img_folder/airplanes/image_0633.jpg b/images/img_folder/airplanes/image_0633.jpg
new file mode 100644
index 0000000..b48e2d4
Binary files /dev/null and b/images/img_folder/airplanes/image_0633.jpg differ
diff --git a/images/img_folder/airplanes/image_0634.jpg b/images/img_folder/airplanes/image_0634.jpg
new file mode 100644
index 0000000..971a021
Binary files /dev/null and b/images/img_folder/airplanes/image_0634.jpg differ
diff --git a/images/img_folder/airplanes/image_0635.jpg b/images/img_folder/airplanes/image_0635.jpg
new file mode 100644
index 0000000..1c8b2e2
Binary files /dev/null and b/images/img_folder/airplanes/image_0635.jpg differ
diff --git a/images/img_folder/airplanes/image_0636.jpg b/images/img_folder/airplanes/image_0636.jpg
new file mode 100644
index 0000000..5156958
Binary files /dev/null and b/images/img_folder/airplanes/image_0636.jpg differ
diff --git a/images/img_folder/airplanes/image_0637.jpg b/images/img_folder/airplanes/image_0637.jpg
new file mode 100644
index 0000000..8838ea3
Binary files /dev/null and b/images/img_folder/airplanes/image_0637.jpg differ
diff --git a/images/img_folder/airplanes/image_0638.jpg b/images/img_folder/airplanes/image_0638.jpg
new file mode 100644
index 0000000..12d189a
Binary files /dev/null and b/images/img_folder/airplanes/image_0638.jpg differ
diff --git a/images/img_folder/airplanes/image_0639.jpg b/images/img_folder/airplanes/image_0639.jpg
new file mode 100644
index 0000000..611ddef
Binary files /dev/null and b/images/img_folder/airplanes/image_0639.jpg differ
diff --git a/images/img_folder/airplanes/image_0640.jpg b/images/img_folder/airplanes/image_0640.jpg
new file mode 100644
index 0000000..2800bdc
Binary files /dev/null and b/images/img_folder/airplanes/image_0640.jpg differ
diff --git a/images/img_folder/airplanes/image_0641.jpg b/images/img_folder/airplanes/image_0641.jpg
new file mode 100644
index 0000000..8b5f1cb
Binary files /dev/null and b/images/img_folder/airplanes/image_0641.jpg differ
diff --git a/images/img_folder/airplanes/image_0642.jpg b/images/img_folder/airplanes/image_0642.jpg
new file mode 100644
index 0000000..5b466fd
Binary files /dev/null and b/images/img_folder/airplanes/image_0642.jpg differ
diff --git a/images/img_folder/airplanes/image_0643.jpg b/images/img_folder/airplanes/image_0643.jpg
new file mode 100644
index 0000000..2596ae0
Binary files /dev/null and b/images/img_folder/airplanes/image_0643.jpg differ
diff --git a/images/img_folder/airplanes/image_0644.jpg b/images/img_folder/airplanes/image_0644.jpg
new file mode 100644
index 0000000..4bd7c86
Binary files /dev/null and b/images/img_folder/airplanes/image_0644.jpg differ
diff --git a/images/img_folder/airplanes/image_0645.jpg b/images/img_folder/airplanes/image_0645.jpg
new file mode 100644
index 0000000..98f8d5d
Binary files /dev/null and b/images/img_folder/airplanes/image_0645.jpg differ
diff --git a/images/img_folder/airplanes/image_0646.jpg b/images/img_folder/airplanes/image_0646.jpg
new file mode 100644
index 0000000..927b471
Binary files /dev/null and b/images/img_folder/airplanes/image_0646.jpg differ
diff --git a/images/img_folder/airplanes/image_0647.jpg b/images/img_folder/airplanes/image_0647.jpg
new file mode 100644
index 0000000..9de03d9
Binary files /dev/null and b/images/img_folder/airplanes/image_0647.jpg differ
diff --git a/images/img_folder/airplanes/image_0648.jpg b/images/img_folder/airplanes/image_0648.jpg
new file mode 100644
index 0000000..464dcfa
Binary files /dev/null and b/images/img_folder/airplanes/image_0648.jpg differ
diff --git a/images/img_folder/airplanes/image_0649.jpg b/images/img_folder/airplanes/image_0649.jpg
new file mode 100644
index 0000000..581a9d2
Binary files /dev/null and b/images/img_folder/airplanes/image_0649.jpg differ
diff --git a/images/img_folder/airplanes/image_0650.jpg b/images/img_folder/airplanes/image_0650.jpg
new file mode 100644
index 0000000..81eabeb
Binary files /dev/null and b/images/img_folder/airplanes/image_0650.jpg differ
diff --git a/images/img_folder/airplanes/image_0651.jpg b/images/img_folder/airplanes/image_0651.jpg
new file mode 100644
index 0000000..8d1ab4e
Binary files /dev/null and b/images/img_folder/airplanes/image_0651.jpg differ
diff --git a/images/img_folder/airplanes/image_0652.jpg b/images/img_folder/airplanes/image_0652.jpg
new file mode 100644
index 0000000..160109d
Binary files /dev/null and b/images/img_folder/airplanes/image_0652.jpg differ
diff --git a/images/img_folder/airplanes/image_0653.jpg b/images/img_folder/airplanes/image_0653.jpg
new file mode 100644
index 0000000..b74d2ee
Binary files /dev/null and b/images/img_folder/airplanes/image_0653.jpg differ
diff --git a/images/img_folder/airplanes/image_0654.jpg b/images/img_folder/airplanes/image_0654.jpg
new file mode 100644
index 0000000..b8739a6
Binary files /dev/null and b/images/img_folder/airplanes/image_0654.jpg differ
diff --git a/images/img_folder/airplanes/image_0655.jpg b/images/img_folder/airplanes/image_0655.jpg
new file mode 100644
index 0000000..f24d96c
Binary files /dev/null and b/images/img_folder/airplanes/image_0655.jpg differ
diff --git a/images/img_folder/airplanes/image_0656.jpg b/images/img_folder/airplanes/image_0656.jpg
new file mode 100644
index 0000000..41d3e2f
Binary files /dev/null and b/images/img_folder/airplanes/image_0656.jpg differ
diff --git a/images/img_folder/airplanes/image_0657.jpg b/images/img_folder/airplanes/image_0657.jpg
new file mode 100644
index 0000000..f6d760a
Binary files /dev/null and b/images/img_folder/airplanes/image_0657.jpg differ
diff --git a/images/img_folder/airplanes/image_0658.jpg b/images/img_folder/airplanes/image_0658.jpg
new file mode 100644
index 0000000..7251188
Binary files /dev/null and b/images/img_folder/airplanes/image_0658.jpg differ
diff --git a/images/img_folder/airplanes/image_0659.jpg b/images/img_folder/airplanes/image_0659.jpg
new file mode 100644
index 0000000..298672f
Binary files /dev/null and b/images/img_folder/airplanes/image_0659.jpg differ
diff --git a/images/img_folder/airplanes/image_0660.jpg b/images/img_folder/airplanes/image_0660.jpg
new file mode 100644
index 0000000..5e62a26
Binary files /dev/null and b/images/img_folder/airplanes/image_0660.jpg differ
diff --git a/images/img_folder/airplanes/image_0661.jpg b/images/img_folder/airplanes/image_0661.jpg
new file mode 100644
index 0000000..02bb065
Binary files /dev/null and b/images/img_folder/airplanes/image_0661.jpg differ
diff --git a/images/img_folder/airplanes/image_0662.jpg b/images/img_folder/airplanes/image_0662.jpg
new file mode 100644
index 0000000..13c13d0
Binary files /dev/null and b/images/img_folder/airplanes/image_0662.jpg differ
diff --git a/images/img_folder/airplanes/image_0663.jpg b/images/img_folder/airplanes/image_0663.jpg
new file mode 100644
index 0000000..3ef9998
Binary files /dev/null and b/images/img_folder/airplanes/image_0663.jpg differ
diff --git a/images/img_folder/airplanes/image_0664.jpg b/images/img_folder/airplanes/image_0664.jpg
new file mode 100644
index 0000000..40996f1
Binary files /dev/null and b/images/img_folder/airplanes/image_0664.jpg differ
diff --git a/images/img_folder/airplanes/image_0665.jpg b/images/img_folder/airplanes/image_0665.jpg
new file mode 100644
index 0000000..22b8fde
Binary files /dev/null and b/images/img_folder/airplanes/image_0665.jpg differ
diff --git a/images/img_folder/airplanes/image_0666.jpg b/images/img_folder/airplanes/image_0666.jpg
new file mode 100644
index 0000000..eac7d5a
Binary files /dev/null and b/images/img_folder/airplanes/image_0666.jpg differ
diff --git a/images/img_folder/airplanes/image_0667.jpg b/images/img_folder/airplanes/image_0667.jpg
new file mode 100644
index 0000000..0ab8ac7
Binary files /dev/null and b/images/img_folder/airplanes/image_0667.jpg differ
diff --git a/images/img_folder/airplanes/image_0668.jpg b/images/img_folder/airplanes/image_0668.jpg
new file mode 100644
index 0000000..ba8045f
Binary files /dev/null and b/images/img_folder/airplanes/image_0668.jpg differ
diff --git a/images/img_folder/airplanes/image_0669.jpg b/images/img_folder/airplanes/image_0669.jpg
new file mode 100644
index 0000000..b6a301a
Binary files /dev/null and b/images/img_folder/airplanes/image_0669.jpg differ
diff --git a/images/img_folder/airplanes/image_0670.jpg b/images/img_folder/airplanes/image_0670.jpg
new file mode 100644
index 0000000..480512c
Binary files /dev/null and b/images/img_folder/airplanes/image_0670.jpg differ
diff --git a/images/img_folder/airplanes/image_0671.jpg b/images/img_folder/airplanes/image_0671.jpg
new file mode 100644
index 0000000..0c73f1d
Binary files /dev/null and b/images/img_folder/airplanes/image_0671.jpg differ
diff --git a/images/img_folder/airplanes/image_0672.jpg b/images/img_folder/airplanes/image_0672.jpg
new file mode 100644
index 0000000..cfc5e11
Binary files /dev/null and b/images/img_folder/airplanes/image_0672.jpg differ
diff --git a/images/img_folder/airplanes/image_0673.jpg b/images/img_folder/airplanes/image_0673.jpg
new file mode 100644
index 0000000..a857b85
Binary files /dev/null and b/images/img_folder/airplanes/image_0673.jpg differ
diff --git a/images/img_folder/airplanes/image_0674.jpg b/images/img_folder/airplanes/image_0674.jpg
new file mode 100644
index 0000000..b9b014c
Binary files /dev/null and b/images/img_folder/airplanes/image_0674.jpg differ
diff --git a/images/img_folder/airplanes/image_0675.jpg b/images/img_folder/airplanes/image_0675.jpg
new file mode 100644
index 0000000..035fbb5
Binary files /dev/null and b/images/img_folder/airplanes/image_0675.jpg differ
diff --git a/images/img_folder/airplanes/image_0676.jpg b/images/img_folder/airplanes/image_0676.jpg
new file mode 100644
index 0000000..4a8be19
Binary files /dev/null and b/images/img_folder/airplanes/image_0676.jpg differ
diff --git a/images/img_folder/airplanes/image_0677.jpg b/images/img_folder/airplanes/image_0677.jpg
new file mode 100644
index 0000000..77c2040
Binary files /dev/null and b/images/img_folder/airplanes/image_0677.jpg differ
diff --git a/images/img_folder/airplanes/image_0678.jpg b/images/img_folder/airplanes/image_0678.jpg
new file mode 100644
index 0000000..5abbf10
Binary files /dev/null and b/images/img_folder/airplanes/image_0678.jpg differ
diff --git a/images/img_folder/airplanes/image_0679.jpg b/images/img_folder/airplanes/image_0679.jpg
new file mode 100644
index 0000000..72b72c7
Binary files /dev/null and b/images/img_folder/airplanes/image_0679.jpg differ
diff --git a/images/img_folder/airplanes/image_0680.jpg b/images/img_folder/airplanes/image_0680.jpg
new file mode 100644
index 0000000..bf565a7
Binary files /dev/null and b/images/img_folder/airplanes/image_0680.jpg differ
diff --git a/images/img_folder/airplanes/image_0681.jpg b/images/img_folder/airplanes/image_0681.jpg
new file mode 100644
index 0000000..760059d
Binary files /dev/null and b/images/img_folder/airplanes/image_0681.jpg differ
diff --git a/images/img_folder/airplanes/image_0682.jpg b/images/img_folder/airplanes/image_0682.jpg
new file mode 100644
index 0000000..3e415a9
Binary files /dev/null and b/images/img_folder/airplanes/image_0682.jpg differ
diff --git a/images/img_folder/airplanes/image_0683.jpg b/images/img_folder/airplanes/image_0683.jpg
new file mode 100644
index 0000000..ab287d0
Binary files /dev/null and b/images/img_folder/airplanes/image_0683.jpg differ
diff --git a/images/img_folder/airplanes/image_0684.jpg b/images/img_folder/airplanes/image_0684.jpg
new file mode 100644
index 0000000..eb20480
Binary files /dev/null and b/images/img_folder/airplanes/image_0684.jpg differ
diff --git a/images/img_folder/airplanes/image_0685.jpg b/images/img_folder/airplanes/image_0685.jpg
new file mode 100644
index 0000000..0ae969c
Binary files /dev/null and b/images/img_folder/airplanes/image_0685.jpg differ
diff --git a/images/img_folder/airplanes/image_0686.jpg b/images/img_folder/airplanes/image_0686.jpg
new file mode 100644
index 0000000..992d27b
Binary files /dev/null and b/images/img_folder/airplanes/image_0686.jpg differ
diff --git a/images/img_folder/airplanes/image_0687.jpg b/images/img_folder/airplanes/image_0687.jpg
new file mode 100644
index 0000000..0c4a51c
Binary files /dev/null and b/images/img_folder/airplanes/image_0687.jpg differ
diff --git a/images/img_folder/airplanes/image_0688.jpg b/images/img_folder/airplanes/image_0688.jpg
new file mode 100644
index 0000000..b794665
Binary files /dev/null and b/images/img_folder/airplanes/image_0688.jpg differ
diff --git a/images/img_folder/airplanes/image_0689.jpg b/images/img_folder/airplanes/image_0689.jpg
new file mode 100644
index 0000000..8dcca68
Binary files /dev/null and b/images/img_folder/airplanes/image_0689.jpg differ
diff --git a/images/img_folder/airplanes/image_0690.jpg b/images/img_folder/airplanes/image_0690.jpg
new file mode 100644
index 0000000..6992147
Binary files /dev/null and b/images/img_folder/airplanes/image_0690.jpg differ
diff --git a/images/img_folder/airplanes/image_0691.jpg b/images/img_folder/airplanes/image_0691.jpg
new file mode 100644
index 0000000..d096727
Binary files /dev/null and b/images/img_folder/airplanes/image_0691.jpg differ
diff --git a/images/img_folder/airplanes/image_0692.jpg b/images/img_folder/airplanes/image_0692.jpg
new file mode 100644
index 0000000..bcba881
Binary files /dev/null and b/images/img_folder/airplanes/image_0692.jpg differ
diff --git a/images/img_folder/airplanes/image_0693.jpg b/images/img_folder/airplanes/image_0693.jpg
new file mode 100644
index 0000000..adab9ba
Binary files /dev/null and b/images/img_folder/airplanes/image_0693.jpg differ
diff --git a/images/img_folder/airplanes/image_0694.jpg b/images/img_folder/airplanes/image_0694.jpg
new file mode 100644
index 0000000..bba08f2
Binary files /dev/null and b/images/img_folder/airplanes/image_0694.jpg differ
diff --git a/images/img_folder/airplanes/image_0695.jpg b/images/img_folder/airplanes/image_0695.jpg
new file mode 100644
index 0000000..9e1d6e3
Binary files /dev/null and b/images/img_folder/airplanes/image_0695.jpg differ
diff --git a/images/img_folder/airplanes/image_0696.jpg b/images/img_folder/airplanes/image_0696.jpg
new file mode 100644
index 0000000..b5d10af
Binary files /dev/null and b/images/img_folder/airplanes/image_0696.jpg differ
diff --git a/images/img_folder/airplanes/image_0697.jpg b/images/img_folder/airplanes/image_0697.jpg
new file mode 100644
index 0000000..9efb143
Binary files /dev/null and b/images/img_folder/airplanes/image_0697.jpg differ
diff --git a/images/img_folder/airplanes/image_0698.jpg b/images/img_folder/airplanes/image_0698.jpg
new file mode 100644
index 0000000..c9d5a2f
Binary files /dev/null and b/images/img_folder/airplanes/image_0698.jpg differ
diff --git a/images/img_folder/airplanes/image_0699.jpg b/images/img_folder/airplanes/image_0699.jpg
new file mode 100644
index 0000000..c111618
Binary files /dev/null and b/images/img_folder/airplanes/image_0699.jpg differ
diff --git a/images/img_folder/airplanes/image_0700.jpg b/images/img_folder/airplanes/image_0700.jpg
new file mode 100644
index 0000000..c1be14b
Binary files /dev/null and b/images/img_folder/airplanes/image_0700.jpg differ
diff --git a/images/img_folder/airplanes/image_0701.jpg b/images/img_folder/airplanes/image_0701.jpg
new file mode 100644
index 0000000..e4e19bd
Binary files /dev/null and b/images/img_folder/airplanes/image_0701.jpg differ
diff --git a/images/img_folder/airplanes/image_0702.jpg b/images/img_folder/airplanes/image_0702.jpg
new file mode 100644
index 0000000..d72dca5
Binary files /dev/null and b/images/img_folder/airplanes/image_0702.jpg differ
diff --git a/images/img_folder/airplanes/image_0703.jpg b/images/img_folder/airplanes/image_0703.jpg
new file mode 100644
index 0000000..f70a666
Binary files /dev/null and b/images/img_folder/airplanes/image_0703.jpg differ
diff --git a/images/img_folder/airplanes/image_0704.jpg b/images/img_folder/airplanes/image_0704.jpg
new file mode 100644
index 0000000..90e07a2
Binary files /dev/null and b/images/img_folder/airplanes/image_0704.jpg differ
diff --git a/images/img_folder/airplanes/image_0705.jpg b/images/img_folder/airplanes/image_0705.jpg
new file mode 100644
index 0000000..d889bc2
Binary files /dev/null and b/images/img_folder/airplanes/image_0705.jpg differ
diff --git a/images/img_folder/airplanes/image_0706.jpg b/images/img_folder/airplanes/image_0706.jpg
new file mode 100644
index 0000000..a775abd
Binary files /dev/null and b/images/img_folder/airplanes/image_0706.jpg differ
diff --git a/images/img_folder/airplanes/image_0707.jpg b/images/img_folder/airplanes/image_0707.jpg
new file mode 100644
index 0000000..46dd71d
Binary files /dev/null and b/images/img_folder/airplanes/image_0707.jpg differ
diff --git a/images/img_folder/airplanes/image_0708.jpg b/images/img_folder/airplanes/image_0708.jpg
new file mode 100644
index 0000000..6dffbef
Binary files /dev/null and b/images/img_folder/airplanes/image_0708.jpg differ
diff --git a/images/img_folder/airplanes/image_0709.jpg b/images/img_folder/airplanes/image_0709.jpg
new file mode 100644
index 0000000..01a99c1
Binary files /dev/null and b/images/img_folder/airplanes/image_0709.jpg differ
diff --git a/images/img_folder/airplanes/image_0710.jpg b/images/img_folder/airplanes/image_0710.jpg
new file mode 100644
index 0000000..cdf7cf3
Binary files /dev/null and b/images/img_folder/airplanes/image_0710.jpg differ
diff --git a/images/img_folder/airplanes/image_0711.jpg b/images/img_folder/airplanes/image_0711.jpg
new file mode 100644
index 0000000..11fac5e
Binary files /dev/null and b/images/img_folder/airplanes/image_0711.jpg differ
diff --git a/images/img_folder/airplanes/image_0712.jpg b/images/img_folder/airplanes/image_0712.jpg
new file mode 100644
index 0000000..5c46c18
Binary files /dev/null and b/images/img_folder/airplanes/image_0712.jpg differ
diff --git a/images/img_folder/airplanes/image_0713.jpg b/images/img_folder/airplanes/image_0713.jpg
new file mode 100644
index 0000000..a1ba496
Binary files /dev/null and b/images/img_folder/airplanes/image_0713.jpg differ
diff --git a/images/img_folder/airplanes/image_0714.jpg b/images/img_folder/airplanes/image_0714.jpg
new file mode 100644
index 0000000..0c44810
Binary files /dev/null and b/images/img_folder/airplanes/image_0714.jpg differ
diff --git a/images/img_folder/airplanes/image_0715.jpg b/images/img_folder/airplanes/image_0715.jpg
new file mode 100644
index 0000000..d9510ef
Binary files /dev/null and b/images/img_folder/airplanes/image_0715.jpg differ
diff --git a/images/img_folder/airplanes/image_0716.jpg b/images/img_folder/airplanes/image_0716.jpg
new file mode 100644
index 0000000..572a0b2
Binary files /dev/null and b/images/img_folder/airplanes/image_0716.jpg differ
diff --git a/images/img_folder/airplanes/image_0717.jpg b/images/img_folder/airplanes/image_0717.jpg
new file mode 100644
index 0000000..0255ccc
Binary files /dev/null and b/images/img_folder/airplanes/image_0717.jpg differ
diff --git a/images/img_folder/airplanes/image_0718.jpg b/images/img_folder/airplanes/image_0718.jpg
new file mode 100644
index 0000000..06d2765
Binary files /dev/null and b/images/img_folder/airplanes/image_0718.jpg differ
diff --git a/images/img_folder/airplanes/image_0719.jpg b/images/img_folder/airplanes/image_0719.jpg
new file mode 100644
index 0000000..1fe66a9
Binary files /dev/null and b/images/img_folder/airplanes/image_0719.jpg differ
diff --git a/images/img_folder/airplanes/image_0720.jpg b/images/img_folder/airplanes/image_0720.jpg
new file mode 100644
index 0000000..9f7c8ff
Binary files /dev/null and b/images/img_folder/airplanes/image_0720.jpg differ
diff --git a/images/img_folder/airplanes/image_0721.jpg b/images/img_folder/airplanes/image_0721.jpg
new file mode 100644
index 0000000..6429bca
Binary files /dev/null and b/images/img_folder/airplanes/image_0721.jpg differ
diff --git a/images/img_folder/airplanes/image_0722.jpg b/images/img_folder/airplanes/image_0722.jpg
new file mode 100644
index 0000000..3e35518
Binary files /dev/null and b/images/img_folder/airplanes/image_0722.jpg differ
diff --git a/images/img_folder/airplanes/image_0723.jpg b/images/img_folder/airplanes/image_0723.jpg
new file mode 100644
index 0000000..b7ebc7b
Binary files /dev/null and b/images/img_folder/airplanes/image_0723.jpg differ
diff --git a/images/img_folder/airplanes/image_0724.jpg b/images/img_folder/airplanes/image_0724.jpg
new file mode 100644
index 0000000..4acd700
Binary files /dev/null and b/images/img_folder/airplanes/image_0724.jpg differ
diff --git a/images/img_folder/airplanes/image_0725.jpg b/images/img_folder/airplanes/image_0725.jpg
new file mode 100644
index 0000000..2408bba
Binary files /dev/null and b/images/img_folder/airplanes/image_0725.jpg differ
diff --git a/images/img_folder/airplanes/image_0726.jpg b/images/img_folder/airplanes/image_0726.jpg
new file mode 100644
index 0000000..b661d5e
Binary files /dev/null and b/images/img_folder/airplanes/image_0726.jpg differ
diff --git a/images/img_folder/airplanes/image_0727.jpg b/images/img_folder/airplanes/image_0727.jpg
new file mode 100644
index 0000000..9804522
Binary files /dev/null and b/images/img_folder/airplanes/image_0727.jpg differ
diff --git a/images/img_folder/airplanes/image_0728.jpg b/images/img_folder/airplanes/image_0728.jpg
new file mode 100644
index 0000000..da8715c
Binary files /dev/null and b/images/img_folder/airplanes/image_0728.jpg differ
diff --git a/images/img_folder/airplanes/image_0729.jpg b/images/img_folder/airplanes/image_0729.jpg
new file mode 100644
index 0000000..bfe4447
Binary files /dev/null and b/images/img_folder/airplanes/image_0729.jpg differ
diff --git a/images/img_folder/airplanes/image_0730.jpg b/images/img_folder/airplanes/image_0730.jpg
new file mode 100644
index 0000000..95ce418
Binary files /dev/null and b/images/img_folder/airplanes/image_0730.jpg differ
diff --git a/images/img_folder/airplanes/image_0731.jpg b/images/img_folder/airplanes/image_0731.jpg
new file mode 100644
index 0000000..f69c149
Binary files /dev/null and b/images/img_folder/airplanes/image_0731.jpg differ
diff --git a/images/img_folder/airplanes/image_0732.jpg b/images/img_folder/airplanes/image_0732.jpg
new file mode 100644
index 0000000..d927df2
Binary files /dev/null and b/images/img_folder/airplanes/image_0732.jpg differ
diff --git a/images/img_folder/airplanes/image_0733.jpg b/images/img_folder/airplanes/image_0733.jpg
new file mode 100644
index 0000000..beed557
Binary files /dev/null and b/images/img_folder/airplanes/image_0733.jpg differ
diff --git a/images/img_folder/airplanes/image_0734.jpg b/images/img_folder/airplanes/image_0734.jpg
new file mode 100644
index 0000000..ac2bb43
Binary files /dev/null and b/images/img_folder/airplanes/image_0734.jpg differ
diff --git a/images/img_folder/airplanes/image_0735.jpg b/images/img_folder/airplanes/image_0735.jpg
new file mode 100644
index 0000000..56f0432
Binary files /dev/null and b/images/img_folder/airplanes/image_0735.jpg differ
diff --git a/images/img_folder/airplanes/image_0736.jpg b/images/img_folder/airplanes/image_0736.jpg
new file mode 100644
index 0000000..b714b61
Binary files /dev/null and b/images/img_folder/airplanes/image_0736.jpg differ
diff --git a/images/img_folder/airplanes/image_0737.jpg b/images/img_folder/airplanes/image_0737.jpg
new file mode 100644
index 0000000..5bc20ad
Binary files /dev/null and b/images/img_folder/airplanes/image_0737.jpg differ
diff --git a/images/img_folder/airplanes/image_0738.jpg b/images/img_folder/airplanes/image_0738.jpg
new file mode 100644
index 0000000..d8e7d88
Binary files /dev/null and b/images/img_folder/airplanes/image_0738.jpg differ
diff --git a/images/img_folder/airplanes/image_0739.jpg b/images/img_folder/airplanes/image_0739.jpg
new file mode 100644
index 0000000..45d9749
Binary files /dev/null and b/images/img_folder/airplanes/image_0739.jpg differ
diff --git a/images/img_folder/airplanes/image_0740.jpg b/images/img_folder/airplanes/image_0740.jpg
new file mode 100644
index 0000000..9e5ec0a
Binary files /dev/null and b/images/img_folder/airplanes/image_0740.jpg differ
diff --git a/images/img_folder/airplanes/image_0741.jpg b/images/img_folder/airplanes/image_0741.jpg
new file mode 100644
index 0000000..f231a8e
Binary files /dev/null and b/images/img_folder/airplanes/image_0741.jpg differ
diff --git a/images/img_folder/airplanes/image_0742.jpg b/images/img_folder/airplanes/image_0742.jpg
new file mode 100644
index 0000000..750d6af
Binary files /dev/null and b/images/img_folder/airplanes/image_0742.jpg differ
diff --git a/images/img_folder/airplanes/image_0743.jpg b/images/img_folder/airplanes/image_0743.jpg
new file mode 100644
index 0000000..db6ebe2
Binary files /dev/null and b/images/img_folder/airplanes/image_0743.jpg differ
diff --git a/images/img_folder/airplanes/image_0744.jpg b/images/img_folder/airplanes/image_0744.jpg
new file mode 100644
index 0000000..8fb4d7b
Binary files /dev/null and b/images/img_folder/airplanes/image_0744.jpg differ
diff --git a/images/img_folder/airplanes/image_0745.jpg b/images/img_folder/airplanes/image_0745.jpg
new file mode 100644
index 0000000..5895727
Binary files /dev/null and b/images/img_folder/airplanes/image_0745.jpg differ
diff --git a/images/img_folder/airplanes/image_0746.jpg b/images/img_folder/airplanes/image_0746.jpg
new file mode 100644
index 0000000..6e004bf
Binary files /dev/null and b/images/img_folder/airplanes/image_0746.jpg differ
diff --git a/images/img_folder/airplanes/image_0747.jpg b/images/img_folder/airplanes/image_0747.jpg
new file mode 100644
index 0000000..26a4ba7
Binary files /dev/null and b/images/img_folder/airplanes/image_0747.jpg differ
diff --git a/images/img_folder/airplanes/image_0748.jpg b/images/img_folder/airplanes/image_0748.jpg
new file mode 100644
index 0000000..908994f
Binary files /dev/null and b/images/img_folder/airplanes/image_0748.jpg differ
diff --git a/images/img_folder/airplanes/image_0749.jpg b/images/img_folder/airplanes/image_0749.jpg
new file mode 100644
index 0000000..fc5176f
Binary files /dev/null and b/images/img_folder/airplanes/image_0749.jpg differ
diff --git a/images/img_folder/airplanes/image_0750.jpg b/images/img_folder/airplanes/image_0750.jpg
new file mode 100644
index 0000000..cd600ea
Binary files /dev/null and b/images/img_folder/airplanes/image_0750.jpg differ
diff --git a/images/img_folder/airplanes/image_0751.jpg b/images/img_folder/airplanes/image_0751.jpg
new file mode 100644
index 0000000..2760a04
Binary files /dev/null and b/images/img_folder/airplanes/image_0751.jpg differ
diff --git a/images/img_folder/airplanes/image_0752.jpg b/images/img_folder/airplanes/image_0752.jpg
new file mode 100644
index 0000000..9f8756c
Binary files /dev/null and b/images/img_folder/airplanes/image_0752.jpg differ
diff --git a/images/img_folder/airplanes/image_0753.jpg b/images/img_folder/airplanes/image_0753.jpg
new file mode 100644
index 0000000..b242501
Binary files /dev/null and b/images/img_folder/airplanes/image_0753.jpg differ
diff --git a/images/img_folder/airplanes/image_0754.jpg b/images/img_folder/airplanes/image_0754.jpg
new file mode 100644
index 0000000..b23d5d5
Binary files /dev/null and b/images/img_folder/airplanes/image_0754.jpg differ
diff --git a/images/img_folder/airplanes/image_0755.jpg b/images/img_folder/airplanes/image_0755.jpg
new file mode 100644
index 0000000..655e24c
Binary files /dev/null and b/images/img_folder/airplanes/image_0755.jpg differ
diff --git a/images/img_folder/airplanes/image_0756.jpg b/images/img_folder/airplanes/image_0756.jpg
new file mode 100644
index 0000000..0309a4e
Binary files /dev/null and b/images/img_folder/airplanes/image_0756.jpg differ
diff --git a/images/img_folder/airplanes/image_0757.jpg b/images/img_folder/airplanes/image_0757.jpg
new file mode 100644
index 0000000..7c3ca37
Binary files /dev/null and b/images/img_folder/airplanes/image_0757.jpg differ
diff --git a/images/img_folder/airplanes/image_0758.jpg b/images/img_folder/airplanes/image_0758.jpg
new file mode 100644
index 0000000..796fe2e
Binary files /dev/null and b/images/img_folder/airplanes/image_0758.jpg differ
diff --git a/images/img_folder/airplanes/image_0759.jpg b/images/img_folder/airplanes/image_0759.jpg
new file mode 100644
index 0000000..ba86310
Binary files /dev/null and b/images/img_folder/airplanes/image_0759.jpg differ
diff --git a/images/img_folder/airplanes/image_0760.jpg b/images/img_folder/airplanes/image_0760.jpg
new file mode 100644
index 0000000..78fd4d0
Binary files /dev/null and b/images/img_folder/airplanes/image_0760.jpg differ
diff --git a/images/img_folder/airplanes/image_0761.jpg b/images/img_folder/airplanes/image_0761.jpg
new file mode 100644
index 0000000..f1581d8
Binary files /dev/null and b/images/img_folder/airplanes/image_0761.jpg differ
diff --git a/images/img_folder/airplanes/image_0762.jpg b/images/img_folder/airplanes/image_0762.jpg
new file mode 100644
index 0000000..03ca448
Binary files /dev/null and b/images/img_folder/airplanes/image_0762.jpg differ
diff --git a/images/img_folder/airplanes/image_0763.jpg b/images/img_folder/airplanes/image_0763.jpg
new file mode 100644
index 0000000..13c6fae
Binary files /dev/null and b/images/img_folder/airplanes/image_0763.jpg differ
diff --git a/images/img_folder/airplanes/image_0764.jpg b/images/img_folder/airplanes/image_0764.jpg
new file mode 100644
index 0000000..79d40d4
Binary files /dev/null and b/images/img_folder/airplanes/image_0764.jpg differ
diff --git a/images/img_folder/airplanes/image_0765.jpg b/images/img_folder/airplanes/image_0765.jpg
new file mode 100644
index 0000000..12b4079
Binary files /dev/null and b/images/img_folder/airplanes/image_0765.jpg differ
diff --git a/images/img_folder/airplanes/image_0766.jpg b/images/img_folder/airplanes/image_0766.jpg
new file mode 100644
index 0000000..48cd176
Binary files /dev/null and b/images/img_folder/airplanes/image_0766.jpg differ
diff --git a/images/img_folder/airplanes/image_0767.jpg b/images/img_folder/airplanes/image_0767.jpg
new file mode 100644
index 0000000..46dfbb5
Binary files /dev/null and b/images/img_folder/airplanes/image_0767.jpg differ
diff --git a/images/img_folder/airplanes/image_0768.jpg b/images/img_folder/airplanes/image_0768.jpg
new file mode 100644
index 0000000..25459f5
Binary files /dev/null and b/images/img_folder/airplanes/image_0768.jpg differ
diff --git a/images/img_folder/airplanes/image_0769.jpg b/images/img_folder/airplanes/image_0769.jpg
new file mode 100644
index 0000000..c31b491
Binary files /dev/null and b/images/img_folder/airplanes/image_0769.jpg differ
diff --git a/images/img_folder/airplanes/image_0770.jpg b/images/img_folder/airplanes/image_0770.jpg
new file mode 100644
index 0000000..5358d34
Binary files /dev/null and b/images/img_folder/airplanes/image_0770.jpg differ
diff --git a/images/img_folder/airplanes/image_0771.jpg b/images/img_folder/airplanes/image_0771.jpg
new file mode 100644
index 0000000..5b2fd86
Binary files /dev/null and b/images/img_folder/airplanes/image_0771.jpg differ
diff --git a/images/img_folder/airplanes/image_0772.jpg b/images/img_folder/airplanes/image_0772.jpg
new file mode 100644
index 0000000..d94d18b
Binary files /dev/null and b/images/img_folder/airplanes/image_0772.jpg differ
diff --git a/images/img_folder/airplanes/image_0773.jpg b/images/img_folder/airplanes/image_0773.jpg
new file mode 100644
index 0000000..dcede95
Binary files /dev/null and b/images/img_folder/airplanes/image_0773.jpg differ
diff --git a/images/img_folder/airplanes/image_0774.jpg b/images/img_folder/airplanes/image_0774.jpg
new file mode 100644
index 0000000..370a214
Binary files /dev/null and b/images/img_folder/airplanes/image_0774.jpg differ
diff --git a/images/img_folder/airplanes/image_0775.jpg b/images/img_folder/airplanes/image_0775.jpg
new file mode 100644
index 0000000..32c6d6a
Binary files /dev/null and b/images/img_folder/airplanes/image_0775.jpg differ
diff --git a/images/img_folder/airplanes/image_0776.jpg b/images/img_folder/airplanes/image_0776.jpg
new file mode 100644
index 0000000..aae99f6
Binary files /dev/null and b/images/img_folder/airplanes/image_0776.jpg differ
diff --git a/images/img_folder/airplanes/image_0777.jpg b/images/img_folder/airplanes/image_0777.jpg
new file mode 100644
index 0000000..ee2d142
Binary files /dev/null and b/images/img_folder/airplanes/image_0777.jpg differ
diff --git a/images/img_folder/airplanes/image_0778.jpg b/images/img_folder/airplanes/image_0778.jpg
new file mode 100644
index 0000000..8071108
Binary files /dev/null and b/images/img_folder/airplanes/image_0778.jpg differ
diff --git a/images/img_folder/airplanes/image_0779.jpg b/images/img_folder/airplanes/image_0779.jpg
new file mode 100644
index 0000000..5c90e7e
Binary files /dev/null and b/images/img_folder/airplanes/image_0779.jpg differ
diff --git a/images/img_folder/airplanes/image_0780.jpg b/images/img_folder/airplanes/image_0780.jpg
new file mode 100644
index 0000000..96cde3f
Binary files /dev/null and b/images/img_folder/airplanes/image_0780.jpg differ
diff --git a/images/img_folder/airplanes/image_0781.jpg b/images/img_folder/airplanes/image_0781.jpg
new file mode 100644
index 0000000..1773a30
Binary files /dev/null and b/images/img_folder/airplanes/image_0781.jpg differ
diff --git a/images/img_folder/airplanes/image_0782.jpg b/images/img_folder/airplanes/image_0782.jpg
new file mode 100644
index 0000000..f80da8c
Binary files /dev/null and b/images/img_folder/airplanes/image_0782.jpg differ
diff --git a/images/img_folder/airplanes/image_0783.jpg b/images/img_folder/airplanes/image_0783.jpg
new file mode 100644
index 0000000..141cd5c
Binary files /dev/null and b/images/img_folder/airplanes/image_0783.jpg differ
diff --git a/images/img_folder/airplanes/image_0784.jpg b/images/img_folder/airplanes/image_0784.jpg
new file mode 100644
index 0000000..2aaa4a4
Binary files /dev/null and b/images/img_folder/airplanes/image_0784.jpg differ
diff --git a/images/img_folder/airplanes/image_0785.jpg b/images/img_folder/airplanes/image_0785.jpg
new file mode 100644
index 0000000..b3dfa23
Binary files /dev/null and b/images/img_folder/airplanes/image_0785.jpg differ
diff --git a/images/img_folder/airplanes/image_0786.jpg b/images/img_folder/airplanes/image_0786.jpg
new file mode 100644
index 0000000..a6a3375
Binary files /dev/null and b/images/img_folder/airplanes/image_0786.jpg differ
diff --git a/images/img_folder/airplanes/image_0787.jpg b/images/img_folder/airplanes/image_0787.jpg
new file mode 100644
index 0000000..cafe830
Binary files /dev/null and b/images/img_folder/airplanes/image_0787.jpg differ
diff --git a/images/img_folder/airplanes/image_0788.jpg b/images/img_folder/airplanes/image_0788.jpg
new file mode 100644
index 0000000..cee78d4
Binary files /dev/null and b/images/img_folder/airplanes/image_0788.jpg differ
diff --git a/images/img_folder/airplanes/image_0789.jpg b/images/img_folder/airplanes/image_0789.jpg
new file mode 100644
index 0000000..4cd73f7
Binary files /dev/null and b/images/img_folder/airplanes/image_0789.jpg differ
diff --git a/images/img_folder/airplanes/image_0790.jpg b/images/img_folder/airplanes/image_0790.jpg
new file mode 100644
index 0000000..041d15b
Binary files /dev/null and b/images/img_folder/airplanes/image_0790.jpg differ
diff --git a/images/img_folder/airplanes/image_0791.jpg b/images/img_folder/airplanes/image_0791.jpg
new file mode 100644
index 0000000..291c003
Binary files /dev/null and b/images/img_folder/airplanes/image_0791.jpg differ
diff --git a/images/img_folder/airplanes/image_0792.jpg b/images/img_folder/airplanes/image_0792.jpg
new file mode 100644
index 0000000..cb84386
Binary files /dev/null and b/images/img_folder/airplanes/image_0792.jpg differ
diff --git a/images/img_folder/airplanes/image_0793.jpg b/images/img_folder/airplanes/image_0793.jpg
new file mode 100644
index 0000000..affda2a
Binary files /dev/null and b/images/img_folder/airplanes/image_0793.jpg differ
diff --git a/images/img_folder/airplanes/image_0794.jpg b/images/img_folder/airplanes/image_0794.jpg
new file mode 100644
index 0000000..b9dcb64
Binary files /dev/null and b/images/img_folder/airplanes/image_0794.jpg differ
diff --git a/images/img_folder/airplanes/image_0795.jpg b/images/img_folder/airplanes/image_0795.jpg
new file mode 100644
index 0000000..0a1c72f
Binary files /dev/null and b/images/img_folder/airplanes/image_0795.jpg differ
diff --git a/images/img_folder/airplanes/image_0796.jpg b/images/img_folder/airplanes/image_0796.jpg
new file mode 100644
index 0000000..f0936fe
Binary files /dev/null and b/images/img_folder/airplanes/image_0796.jpg differ
diff --git a/images/img_folder/airplanes/image_0797.jpg b/images/img_folder/airplanes/image_0797.jpg
new file mode 100644
index 0000000..96b1205
Binary files /dev/null and b/images/img_folder/airplanes/image_0797.jpg differ
diff --git a/images/img_folder/airplanes/image_0798.jpg b/images/img_folder/airplanes/image_0798.jpg
new file mode 100644
index 0000000..628eaec
Binary files /dev/null and b/images/img_folder/airplanes/image_0798.jpg differ
diff --git a/images/img_folder/airplanes/image_0799.jpg b/images/img_folder/airplanes/image_0799.jpg
new file mode 100644
index 0000000..a08d1ed
Binary files /dev/null and b/images/img_folder/airplanes/image_0799.jpg differ
diff --git a/images/img_folder/airplanes/image_0800.jpg b/images/img_folder/airplanes/image_0800.jpg
new file mode 100644
index 0000000..2d56989
Binary files /dev/null and b/images/img_folder/airplanes/image_0800.jpg differ
diff --git a/images/img_folder/anchor/image_0001.jpg b/images/img_folder/anchor/image_0001.jpg
new file mode 100644
index 0000000..d2f97ff
Binary files /dev/null and b/images/img_folder/anchor/image_0001.jpg differ
diff --git a/images/img_folder/anchor/image_0002.jpg b/images/img_folder/anchor/image_0002.jpg
new file mode 100644
index 0000000..b4773f2
Binary files /dev/null and b/images/img_folder/anchor/image_0002.jpg differ
diff --git a/images/img_folder/anchor/image_0003.jpg b/images/img_folder/anchor/image_0003.jpg
new file mode 100644
index 0000000..7cf9380
Binary files /dev/null and b/images/img_folder/anchor/image_0003.jpg differ
diff --git a/images/img_folder/anchor/image_0004.jpg b/images/img_folder/anchor/image_0004.jpg
new file mode 100644
index 0000000..3eadf34
Binary files /dev/null and b/images/img_folder/anchor/image_0004.jpg differ
diff --git a/images/img_folder/anchor/image_0005.jpg b/images/img_folder/anchor/image_0005.jpg
new file mode 100644
index 0000000..f7a961e
Binary files /dev/null and b/images/img_folder/anchor/image_0005.jpg differ
diff --git a/images/img_folder/anchor/image_0006.jpg b/images/img_folder/anchor/image_0006.jpg
new file mode 100644
index 0000000..6d3e268
Binary files /dev/null and b/images/img_folder/anchor/image_0006.jpg differ
diff --git a/images/img_folder/anchor/image_0007.jpg b/images/img_folder/anchor/image_0007.jpg
new file mode 100644
index 0000000..329bd15
Binary files /dev/null and b/images/img_folder/anchor/image_0007.jpg differ
diff --git a/images/img_folder/anchor/image_0008.jpg b/images/img_folder/anchor/image_0008.jpg
new file mode 100644
index 0000000..1f15ed3
Binary files /dev/null and b/images/img_folder/anchor/image_0008.jpg differ
diff --git a/images/img_folder/anchor/image_0009.jpg b/images/img_folder/anchor/image_0009.jpg
new file mode 100644
index 0000000..76c4d51
Binary files /dev/null and b/images/img_folder/anchor/image_0009.jpg differ
diff --git a/images/img_folder/anchor/image_0010.jpg b/images/img_folder/anchor/image_0010.jpg
new file mode 100644
index 0000000..777aabf
Binary files /dev/null and b/images/img_folder/anchor/image_0010.jpg differ
diff --git a/images/img_folder/anchor/image_0011.jpg b/images/img_folder/anchor/image_0011.jpg
new file mode 100644
index 0000000..b26196a
Binary files /dev/null and b/images/img_folder/anchor/image_0011.jpg differ
diff --git a/images/img_folder/anchor/image_0012.jpg b/images/img_folder/anchor/image_0012.jpg
new file mode 100644
index 0000000..239cb80
Binary files /dev/null and b/images/img_folder/anchor/image_0012.jpg differ
diff --git a/images/img_folder/anchor/image_0013.jpg b/images/img_folder/anchor/image_0013.jpg
new file mode 100644
index 0000000..6eff368
Binary files /dev/null and b/images/img_folder/anchor/image_0013.jpg differ
diff --git a/images/img_folder/anchor/image_0014.jpg b/images/img_folder/anchor/image_0014.jpg
new file mode 100644
index 0000000..22badfd
Binary files /dev/null and b/images/img_folder/anchor/image_0014.jpg differ
diff --git a/images/img_folder/anchor/image_0015.jpg b/images/img_folder/anchor/image_0015.jpg
new file mode 100644
index 0000000..f7f1430
Binary files /dev/null and b/images/img_folder/anchor/image_0015.jpg differ
diff --git a/images/img_folder/anchor/image_0016.jpg b/images/img_folder/anchor/image_0016.jpg
new file mode 100644
index 0000000..70a4054
Binary files /dev/null and b/images/img_folder/anchor/image_0016.jpg differ
diff --git a/images/img_folder/anchor/image_0017.jpg b/images/img_folder/anchor/image_0017.jpg
new file mode 100644
index 0000000..4bd9d86
Binary files /dev/null and b/images/img_folder/anchor/image_0017.jpg differ
diff --git a/images/img_folder/anchor/image_0018.jpg b/images/img_folder/anchor/image_0018.jpg
new file mode 100644
index 0000000..e1f0590
Binary files /dev/null and b/images/img_folder/anchor/image_0018.jpg differ
diff --git a/images/img_folder/anchor/image_0019.jpg b/images/img_folder/anchor/image_0019.jpg
new file mode 100644
index 0000000..0f243ce
Binary files /dev/null and b/images/img_folder/anchor/image_0019.jpg differ
diff --git a/images/img_folder/anchor/image_0020.jpg b/images/img_folder/anchor/image_0020.jpg
new file mode 100644
index 0000000..d9076df
Binary files /dev/null and b/images/img_folder/anchor/image_0020.jpg differ
diff --git a/images/img_folder/anchor/image_0021.jpg b/images/img_folder/anchor/image_0021.jpg
new file mode 100644
index 0000000..5deab9f
Binary files /dev/null and b/images/img_folder/anchor/image_0021.jpg differ
diff --git a/images/img_folder/anchor/image_0022.jpg b/images/img_folder/anchor/image_0022.jpg
new file mode 100644
index 0000000..7f88724
Binary files /dev/null and b/images/img_folder/anchor/image_0022.jpg differ
diff --git a/images/img_folder/anchor/image_0023.jpg b/images/img_folder/anchor/image_0023.jpg
new file mode 100644
index 0000000..0b4c779
Binary files /dev/null and b/images/img_folder/anchor/image_0023.jpg differ
diff --git a/images/img_folder/anchor/image_0024.jpg b/images/img_folder/anchor/image_0024.jpg
new file mode 100644
index 0000000..fa3dfd5
Binary files /dev/null and b/images/img_folder/anchor/image_0024.jpg differ
diff --git a/images/img_folder/anchor/image_0025.jpg b/images/img_folder/anchor/image_0025.jpg
new file mode 100644
index 0000000..0dba2f3
Binary files /dev/null and b/images/img_folder/anchor/image_0025.jpg differ
diff --git a/images/img_folder/anchor/image_0026.jpg b/images/img_folder/anchor/image_0026.jpg
new file mode 100644
index 0000000..43b3077
Binary files /dev/null and b/images/img_folder/anchor/image_0026.jpg differ
diff --git a/images/img_folder/anchor/image_0027.jpg b/images/img_folder/anchor/image_0027.jpg
new file mode 100644
index 0000000..39cdd86
Binary files /dev/null and b/images/img_folder/anchor/image_0027.jpg differ
diff --git a/images/img_folder/anchor/image_0028.jpg b/images/img_folder/anchor/image_0028.jpg
new file mode 100644
index 0000000..16abf60
Binary files /dev/null and b/images/img_folder/anchor/image_0028.jpg differ
diff --git a/images/img_folder/anchor/image_0029.jpg b/images/img_folder/anchor/image_0029.jpg
new file mode 100644
index 0000000..05fce76
Binary files /dev/null and b/images/img_folder/anchor/image_0029.jpg differ
diff --git a/images/img_folder/anchor/image_0030.jpg b/images/img_folder/anchor/image_0030.jpg
new file mode 100644
index 0000000..1b0d30c
Binary files /dev/null and b/images/img_folder/anchor/image_0030.jpg differ
diff --git a/images/img_folder/anchor/image_0031.jpg b/images/img_folder/anchor/image_0031.jpg
new file mode 100644
index 0000000..b2842ba
Binary files /dev/null and b/images/img_folder/anchor/image_0031.jpg differ
diff --git a/images/img_folder/anchor/image_0032.jpg b/images/img_folder/anchor/image_0032.jpg
new file mode 100644
index 0000000..c94a1bc
Binary files /dev/null and b/images/img_folder/anchor/image_0032.jpg differ
diff --git a/images/img_folder/anchor/image_0033.jpg b/images/img_folder/anchor/image_0033.jpg
new file mode 100644
index 0000000..626d9c7
Binary files /dev/null and b/images/img_folder/anchor/image_0033.jpg differ
diff --git a/images/img_folder/anchor/image_0034.jpg b/images/img_folder/anchor/image_0034.jpg
new file mode 100644
index 0000000..e2de64a
Binary files /dev/null and b/images/img_folder/anchor/image_0034.jpg differ
diff --git a/images/img_folder/anchor/image_0035.jpg b/images/img_folder/anchor/image_0035.jpg
new file mode 100644
index 0000000..0ad9b8f
Binary files /dev/null and b/images/img_folder/anchor/image_0035.jpg differ
diff --git a/images/img_folder/anchor/image_0036.jpg b/images/img_folder/anchor/image_0036.jpg
new file mode 100644
index 0000000..0a83805
Binary files /dev/null and b/images/img_folder/anchor/image_0036.jpg differ
diff --git a/images/img_folder/anchor/image_0037.jpg b/images/img_folder/anchor/image_0037.jpg
new file mode 100644
index 0000000..54907d3
Binary files /dev/null and b/images/img_folder/anchor/image_0037.jpg differ
diff --git a/images/img_folder/anchor/image_0038.jpg b/images/img_folder/anchor/image_0038.jpg
new file mode 100644
index 0000000..925ccce
Binary files /dev/null and b/images/img_folder/anchor/image_0038.jpg differ
diff --git a/images/img_folder/anchor/image_0039.jpg b/images/img_folder/anchor/image_0039.jpg
new file mode 100644
index 0000000..7850a49
Binary files /dev/null and b/images/img_folder/anchor/image_0039.jpg differ
diff --git a/images/img_folder/anchor/image_0040.jpg b/images/img_folder/anchor/image_0040.jpg
new file mode 100644
index 0000000..eb680a3
Binary files /dev/null and b/images/img_folder/anchor/image_0040.jpg differ
diff --git a/images/img_folder/anchor/image_0041.jpg b/images/img_folder/anchor/image_0041.jpg
new file mode 100644
index 0000000..0a5d9de
Binary files /dev/null and b/images/img_folder/anchor/image_0041.jpg differ
diff --git a/images/img_folder/anchor/image_0042.jpg b/images/img_folder/anchor/image_0042.jpg
new file mode 100644
index 0000000..8f43ce0
Binary files /dev/null and b/images/img_folder/anchor/image_0042.jpg differ
diff --git a/images/mask_cartoon.jpg b/images/mask_cartoon.jpg
new file mode 100644
index 0000000..a8768ab
Binary files /dev/null and b/images/mask_cartoon.jpg differ
diff --git a/images/red_car.jpg b/images/red_car.jpg
new file mode 100644
index 0000000..47ac06a
Binary files /dev/null and b/images/red_car.jpg differ
diff --git a/images/regionFill_test.jpg b/images/regionFill_test.jpg
new file mode 100644
index 0000000..cee90fc
Binary files /dev/null and b/images/regionFill_test.jpg differ
diff --git a/images/regionFill_test2.jpg b/images/regionFill_test2.jpg
new file mode 100644
index 0000000..7972f56
Binary files /dev/null and b/images/regionFill_test2.jpg differ
diff --git a/images/regionFill_test3.jpg b/images/regionFill_test3.jpg
new file mode 100644
index 0000000..30bc499
Binary files /dev/null and b/images/regionFill_test3.jpg differ
diff --git a/images/regionFill_test4.jpg b/images/regionFill_test4.jpg
new file mode 100644
index 0000000..9e4a16b
Binary files /dev/null and b/images/regionFill_test4.jpg differ
diff --git a/images/regionFill_test5.jpeg b/images/regionFill_test5.jpeg
new file mode 100644
index 0000000..3d8f18a
Binary files /dev/null and b/images/regionFill_test5.jpeg differ
diff --git a/images/regionFill_test5.jpg b/images/regionFill_test5.jpg
new file mode 100644
index 0000000..d714d28
Binary files /dev/null and b/images/regionFill_test5.jpg differ
diff --git a/images/regionFill_test6.jpg b/images/regionFill_test6.jpg
new file mode 100644
index 0000000..6cc95f8
Binary files /dev/null and b/images/regionFill_test6.jpg differ
diff --git a/images/regionFill_test7.jpg b/images/regionFill_test7.jpg
new file mode 100644
index 0000000..605d5be
Binary files /dev/null and b/images/regionFill_test7.jpg differ
diff --git a/images/sky.jpg b/images/sky.jpg
new file mode 100644
index 0000000..8a6eba4
Binary files /dev/null and b/images/sky.jpg differ
diff --git a/images/smile.jpg b/images/smile.jpg
new file mode 100644
index 0000000..2847bb8
Binary files /dev/null and b/images/smile.jpg differ
diff --git a/images/templateMatcher_test5.jpg b/images/templateMatcher_test5.jpg
new file mode 100644
index 0000000..f847cb2
Binary files /dev/null and b/images/templateMatcher_test5.jpg differ
diff --git a/images/templateMatcher_test8.jpg b/images/templateMatcher_test8.jpg
new file mode 100644
index 0000000..de09f7e
Binary files /dev/null and b/images/templateMatcher_test8.jpg differ
diff --git a/images/test/airplanes/image_0001.jpg b/images/test/airplanes/image_0001.jpg
new file mode 100644
index 0000000..39b7760
Binary files /dev/null and b/images/test/airplanes/image_0001.jpg differ
diff --git a/images/test/airplanes/image_0002.jpg b/images/test/airplanes/image_0002.jpg
new file mode 100644
index 0000000..c6a1026
Binary files /dev/null and b/images/test/airplanes/image_0002.jpg differ
diff --git a/images/test/airplanes/image_0003.jpg b/images/test/airplanes/image_0003.jpg
new file mode 100644
index 0000000..2589eaa
Binary files /dev/null and b/images/test/airplanes/image_0003.jpg differ
diff --git a/images/test/airplanes/image_0004.jpg b/images/test/airplanes/image_0004.jpg
new file mode 100644
index 0000000..10aada6
Binary files /dev/null and b/images/test/airplanes/image_0004.jpg differ
diff --git a/images/test/airplanes/image_0005.jpg b/images/test/airplanes/image_0005.jpg
new file mode 100644
index 0000000..380fac3
Binary files /dev/null and b/images/test/airplanes/image_0005.jpg differ
diff --git a/images/test/airplanes/image_0006.jpg b/images/test/airplanes/image_0006.jpg
new file mode 100644
index 0000000..ab7bbba
Binary files /dev/null and b/images/test/airplanes/image_0006.jpg differ
diff --git a/images/test/ferry/image_0001.jpg b/images/test/ferry/image_0001.jpg
new file mode 100644
index 0000000..2b9b5e3
Binary files /dev/null and b/images/test/ferry/image_0001.jpg differ
diff --git a/images/test/ferry/image_0002.jpg b/images/test/ferry/image_0002.jpg
new file mode 100644
index 0000000..dc3bdcc
Binary files /dev/null and b/images/test/ferry/image_0002.jpg differ
diff --git a/images/test/ferry/image_0003.jpg b/images/test/ferry/image_0003.jpg
new file mode 100644
index 0000000..e1d0c2b
Binary files /dev/null and b/images/test/ferry/image_0003.jpg differ
diff --git a/images/test/ferry/image_0004.jpg b/images/test/ferry/image_0004.jpg
new file mode 100644
index 0000000..271c43f
Binary files /dev/null and b/images/test/ferry/image_0004.jpg differ
diff --git a/images/test/ferry/image_0005.jpg b/images/test/ferry/image_0005.jpg
new file mode 100644
index 0000000..a1310f5
Binary files /dev/null and b/images/test/ferry/image_0005.jpg differ
diff --git a/images/test/ferry/image_0006.jpg b/images/test/ferry/image_0006.jpg
new file mode 100644
index 0000000..bdb16d5
Binary files /dev/null and b/images/test/ferry/image_0006.jpg differ
diff --git a/images/test/laptop/image_0001.jpg b/images/test/laptop/image_0001.jpg
new file mode 100644
index 0000000..00968e2
Binary files /dev/null and b/images/test/laptop/image_0001.jpg differ
diff --git a/images/test/laptop/image_0002.jpg b/images/test/laptop/image_0002.jpg
new file mode 100644
index 0000000..efd30ca
Binary files /dev/null and b/images/test/laptop/image_0002.jpg differ
diff --git a/images/test/laptop/image_0003.jpg b/images/test/laptop/image_0003.jpg
new file mode 100644
index 0000000..4ac7180
Binary files /dev/null and b/images/test/laptop/image_0003.jpg differ
diff --git a/images/test/laptop/image_0004.jpg b/images/test/laptop/image_0004.jpg
new file mode 100644
index 0000000..a39e296
Binary files /dev/null and b/images/test/laptop/image_0004.jpg differ
diff --git a/images/test/laptop/image_0005.jpg b/images/test/laptop/image_0005.jpg
new file mode 100644
index 0000000..7e80884
Binary files /dev/null and b/images/test/laptop/image_0005.jpg differ
diff --git a/images/test/laptop/image_0006.jpg b/images/test/laptop/image_0006.jpg
new file mode 100644
index 0000000..39f417d
Binary files /dev/null and b/images/test/laptop/image_0006.jpg differ
diff --git a/images/watershed2.jpg b/images/watershed2.jpg
new file mode 100644
index 0000000..bf55f35
Binary files /dev/null and b/images/watershed2.jpg differ
diff --git a/images/watershed3.jpg b/images/watershed3.jpg
new file mode 100644
index 0000000..6006df8
Binary files /dev/null and b/images/watershed3.jpg differ
diff --git a/images/watershed4.jpg b/images/watershed4.jpg
new file mode 100644
index 0000000..cd52e27
Binary files /dev/null and b/images/watershed4.jpg differ
diff --git a/images/yellow_car.jpg b/images/yellow_car.jpg
new file mode 100644
index 0000000..9b2a244
Binary files /dev/null and b/images/yellow_car.jpg differ
diff --git a/macros/colorChange.sci b/macros/colorChange.sci
new file mode 100644
index 0000000..ac5bab5
--- /dev/null
+++ b/macros/colorChange.sci
@@ -0,0 +1,89 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = colorChange(src,mask,varargin)
+// This function seamlessly mixes two differently colored versions of the input image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = colorChange(src, mask, red_mul, green_mul, blue_mul )
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image
+// mask: Input mask image with same size as that of source image.
+// red_mul: R-channel multiply factor (float) (default value= 1.0f)
+// green_mul: G-channel multiply factor.(float) (default value= 1.0f)
+// blue_mul: B-channel multiply factor.(float) (default value= 1.0f)
+// -Multiplication factor is between .5 to 2.5.
+//
+// Description
+// Given an original color image, two differently colored versions of this image can be mixed seamlessly.
+//
+// Examples
+// src = imread("/images/color2.jpeg");
+// mask = roiFreeHand(src); //creating a mask
+//
+// outputImage1 = colorChange(src, mask) //using default value for all optional parameters
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = colorChange(src, mask,0.5 ) //specifying just the value of red_mul
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = colorChange(src, mask,0.5 , 1, 2.5 ) //specifying value of all optional parameter
+// imshow(outputImage3);//view the output
+//
+// outputImage4 = colorChange(src, mask,0.5 , [] , 2.5 ) //skipping the second argument
+// imshow(outputImage4);//view the output
+//
+// Examples
+// src = imread("../images/color2.jpeg");
+// [row col] = size(src)
+// mask = zeros(row,col) //creating a mask
+// mask(100:140,100:150) =255
+// imshow(mask); view the mask
+// outputImage = colorChange(src, mask,0.5 , 1, 2.5 ) //specifying value of all optional parameter
+// imshow(outputImage);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>5 //max i/p arguments are 5
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<2 //min i/p arguments are 2
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(mask);
+
+
+ red_mul = argindefault ( varargin , 1 , 1.0 );//default value is 1.0
+ green_mul = argindefault ( varargin , 2 , 1.0 );//default value is 1.0
+ border = argindefault ( varargin , 3 , 1.0 );//default value is 1.0
+
+ out = raw_colorChange(image_list1,image_list2,red_mul,green_mul,blue_mul );
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/colorChange.sci~ b/macros/colorChange.sci~
new file mode 100644
index 0000000..ac5bab5
--- /dev/null
+++ b/macros/colorChange.sci~
@@ -0,0 +1,89 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = colorChange(src,mask,varargin)
+// This function seamlessly mixes two differently colored versions of the input image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = colorChange(src, mask, red_mul, green_mul, blue_mul )
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image
+// mask: Input mask image with same size as that of source image.
+// red_mul: R-channel multiply factor (float) (default value= 1.0f)
+// green_mul: G-channel multiply factor.(float) (default value= 1.0f)
+// blue_mul: B-channel multiply factor.(float) (default value= 1.0f)
+// -Multiplication factor is between .5 to 2.5.
+//
+// Description
+// Given an original color image, two differently colored versions of this image can be mixed seamlessly.
+//
+// Examples
+// src = imread("/images/color2.jpeg");
+// mask = roiFreeHand(src); //creating a mask
+//
+// outputImage1 = colorChange(src, mask) //using default value for all optional parameters
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = colorChange(src, mask,0.5 ) //specifying just the value of red_mul
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = colorChange(src, mask,0.5 , 1, 2.5 ) //specifying value of all optional parameter
+// imshow(outputImage3);//view the output
+//
+// outputImage4 = colorChange(src, mask,0.5 , [] , 2.5 ) //skipping the second argument
+// imshow(outputImage4);//view the output
+//
+// Examples
+// src = imread("../images/color2.jpeg");
+// [row col] = size(src)
+// mask = zeros(row,col) //creating a mask
+// mask(100:140,100:150) =255
+// imshow(mask); view the mask
+// outputImage = colorChange(src, mask,0.5 , 1, 2.5 ) //specifying value of all optional parameter
+// imshow(outputImage);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>5 //max i/p arguments are 5
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<2 //min i/p arguments are 2
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(mask);
+
+
+ red_mul = argindefault ( varargin , 1 , 1.0 );//default value is 1.0
+ green_mul = argindefault ( varargin , 2 , 1.0 );//default value is 1.0
+ border = argindefault ( varargin , 3 , 1.0 );//default value is 1.0
+
+ out = raw_colorChange(image_list1,image_list2,red_mul,green_mul,blue_mul );
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/convert.sci b/macros/convert.sci
new file mode 100644
index 0000000..ae5e61b
--- /dev/null
+++ b/macros/convert.sci
@@ -0,0 +1,65 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function dst = convert(src,rtype, varargin)
+// This function converts a matrix to another data type with optional scaling.
+//
+// Calling Sequence
+// src = imread('location-of-src');
+// dst = convert(src,rtype, alpha,beta);
+//
+// Parameters
+// src : the source matrix/image
+// alpha: optional scale factor (default value is 1) (type- Double)
+// beta: optional delta added to the scaled values (default value is 0) (type- Double)
+// rtype: (type- string)desired output matrix type/depth.It supports the following types -> 1) CV_8U, 2) CV_8S, 3) CV_16U ,4) CV_16S, 5) CV_32S, 6) CV_64F
+//
+// Description
+// The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overflows-
+//
+// Examples
+// src = imread('/images/color2.jpeg');
+// dst = convert(src,'CV_8U') //convert to 8 bit unsigned int using default values of alpha and beta
+// dst //viewing the content of dst
+//
+// dst2 = convert(src,'CV_64F') //convert to 64 bit floating point using default values of alpha and beta
+// dst2 //viewing the content of dst2
+//
+// Authors
+// Rohan Gurve
+
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 4 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 2 then
+ error(msprintf("Input arguments missing"))
+ end
+
+ image_list = mattolist(src)
+
+ alpha = argindefault ( varargin , 1 , 1 );//default value is 1
+ beta = argindefault ( varargin , 2 , 0 );//default value is 0
+
+ temp = raw_convert(image_list, rtype, alpha,beta)
+
+
+ sz = size(temp)
+
+ for i=1 : sz
+ dst(:, :, i) = temp(i)
+ end
+
+endfunction
diff --git a/macros/convert.sci~ b/macros/convert.sci~
new file mode 100644
index 0000000..ae5e61b
--- /dev/null
+++ b/macros/convert.sci~
@@ -0,0 +1,65 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function dst = convert(src,rtype, varargin)
+// This function converts a matrix to another data type with optional scaling.
+//
+// Calling Sequence
+// src = imread('location-of-src');
+// dst = convert(src,rtype, alpha,beta);
+//
+// Parameters
+// src : the source matrix/image
+// alpha: optional scale factor (default value is 1) (type- Double)
+// beta: optional delta added to the scaled values (default value is 0) (type- Double)
+// rtype: (type- string)desired output matrix type/depth.It supports the following types -> 1) CV_8U, 2) CV_8S, 3) CV_16U ,4) CV_16S, 5) CV_32S, 6) CV_64F
+//
+// Description
+// The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overflows-
+//
+// Examples
+// src = imread('/images/color2.jpeg');
+// dst = convert(src,'CV_8U') //convert to 8 bit unsigned int using default values of alpha and beta
+// dst //viewing the content of dst
+//
+// dst2 = convert(src,'CV_64F') //convert to 64 bit floating point using default values of alpha and beta
+// dst2 //viewing the content of dst2
+//
+// Authors
+// Rohan Gurve
+
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 4 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 2 then
+ error(msprintf("Input arguments missing"))
+ end
+
+ image_list = mattolist(src)
+
+ alpha = argindefault ( varargin , 1 , 1 );//default value is 1
+ beta = argindefault ( varargin , 2 , 0 );//default value is 0
+
+ temp = raw_convert(image_list, rtype, alpha,beta)
+
+
+ sz = size(temp)
+
+ for i=1 : sz
+ dst(:, :, i) = temp(i)
+ end
+
+endfunction
diff --git a/macros/detailEnhance.sci b/macros/detailEnhance.sci
new file mode 100644
index 0000000..9907288
--- /dev/null
+++ b/macros/detailEnhance.sci
@@ -0,0 +1,66 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = detailEnhance(src,varargin)
+//This filter enhances the details of a the given image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// outputImage = detailEnhance(src,sigma_s,sigma_r)
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input 8-bit 3-channel image.
+// sigma_s: Range between 0 to 200 (float) (default value is 10)
+// sigma_r: Range between 0 to 1. (float) (default value is 0.15f)
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// outputImage1 = detailEnhance(src) //using the default values for optional parameter
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = detailEnhance(src,[],0.4) //providing value for second optional parameter
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = detailEnhance(src,121,0.4) // providing value all optional parameters
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3 //max i/p arguments are 3
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+
+ sigma_s = argindefault ( varargin , 1 , 10 );//default value is 10
+ sigma_r = argindefault ( varargin , 2 , 0.15 );//default value is 0.15
+
+ out = raw_detailEnhance(image_list1,sigma_s,sigma_r);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/detailEnhance.sci~ b/macros/detailEnhance.sci~
new file mode 100644
index 0000000..9907288
--- /dev/null
+++ b/macros/detailEnhance.sci~
@@ -0,0 +1,66 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = detailEnhance(src,varargin)
+//This filter enhances the details of a the given image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// outputImage = detailEnhance(src,sigma_s,sigma_r)
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input 8-bit 3-channel image.
+// sigma_s: Range between 0 to 200 (float) (default value is 10)
+// sigma_r: Range between 0 to 1. (float) (default value is 0.15f)
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// outputImage1 = detailEnhance(src) //using the default values for optional parameter
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = detailEnhance(src,[],0.4) //providing value for second optional parameter
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = detailEnhance(src,121,0.4) // providing value all optional parameters
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3 //max i/p arguments are 3
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+
+ sigma_s = argindefault ( varargin , 1 , 10 );//default value is 10
+ sigma_r = argindefault ( varargin , 2 , 0.15 );//default value is 0.15
+
+ out = raw_detailEnhance(image_list1,sigma_s,sigma_r);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/edgePreservingFilter.sci b/macros/edgePreservingFilter.sci
new file mode 100644
index 0000000..59a5e0a
--- /dev/null
+++ b/macros/edgePreservingFilter.sci
@@ -0,0 +1,72 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = edgePreservingFilter(src,varargin)
+// This function smoothens the given input image while preserving the edges.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// outputImage = edgePreservingFilter(src,flag,sigma_s,sigma_r)
+//
+//Parameters
+//outputImage: resultant Output image
+//src: Input 8-bit 3-channel image.
+//flag: (default value is 1) (denotes Edge preserving filters). It takes 2 values -> 1) 1 (for RECURS_FILTER) ; 2) 2 (for NORMCONV_FILTER)
+//sigma_s: Range between 0 to 200 (float) (default value is 60 )
+//sigma_r: Range between 0 to 1. (float) (default value is 0.4f)
+//
+//Description
+//Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters
+//are used in many different applications
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// outputImage1 = edgePreservingFilter(src) //using default values for all optional arguments
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = edgePreservingFilter(src,2) //using default values for sigma_s & sigma_r
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = edgePreservingFilter(src,[],[],0.6) //using default values for sigma_s & sigma_r
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>4 //max i/p arguments are 4
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1//min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ flag = argindefault ( varargin , 1 , 1 ); //default value is 1
+ sigma_s = argindefault ( varargin , 2 , 60 );//default value is 60
+ sigma_r = argindefault ( varargin , 3 , 0.4 );//default value is 0.4
+
+
+ out = raw_edgePreservingFilter(image_list1,flag,sigma_s,sigma_r);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/edgePreservingFilter.sci~ b/macros/edgePreservingFilter.sci~
new file mode 100644
index 0000000..59a5e0a
--- /dev/null
+++ b/macros/edgePreservingFilter.sci~
@@ -0,0 +1,72 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = edgePreservingFilter(src,varargin)
+// This function smoothens the given input image while preserving the edges.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// outputImage = edgePreservingFilter(src,flag,sigma_s,sigma_r)
+//
+//Parameters
+//outputImage: resultant Output image
+//src: Input 8-bit 3-channel image.
+//flag: (default value is 1) (denotes Edge preserving filters). It takes 2 values -> 1) 1 (for RECURS_FILTER) ; 2) 2 (for NORMCONV_FILTER)
+//sigma_s: Range between 0 to 200 (float) (default value is 60 )
+//sigma_r: Range between 0 to 1. (float) (default value is 0.4f)
+//
+//Description
+//Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters
+//are used in many different applications
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// outputImage1 = edgePreservingFilter(src) //using default values for all optional arguments
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = edgePreservingFilter(src,2) //using default values for sigma_s & sigma_r
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = edgePreservingFilter(src,[],[],0.6) //using default values for sigma_s & sigma_r
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>4 //max i/p arguments are 4
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1//min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ flag = argindefault ( varargin , 1 , 1 ); //default value is 1
+ sigma_s = argindefault ( varargin , 2 , 60 );//default value is 60
+ sigma_r = argindefault ( varargin , 3 , 0.4 );//default value is 0.4
+
+
+ out = raw_edgePreservingFilter(image_list1,flag,sigma_s,sigma_r);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/getDepth.sci b/macros/getDepth.sci
new file mode 100644
index 0000000..6c4ca18
--- /dev/null
+++ b/macros/getDepth.sci
@@ -0,0 +1,54 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function depth = getDepth(src)
+// This function returns the depth of the input matrix element.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// depth = getDepth(src)
+//
+//Parameters
+//src: Input 8-bit 3-channel image.
+//depth: a string which denoted the depth of the src.It identifies the following- 1) CV_8U - 8-bit unsigned integers ( 0..255 ) ; 2) CV_8S - 8-bit signed integers ( -128..127 ); 3) CV_16U - 16-bit unsigned integers ( 0..65535 ); 4) CV_16U - 16-bit unsigned integers ( 0..65535 ); 5) CV_16S - 16-bit signed integers ( -32768..32767 ) ; 6) CV_32S - 32-bit signed integers ( -2147483648..2147483647 ) ; 7) CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN )
+//
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg"); //reading an image
+// depth = getDepth(src) ; //get the depth
+// disp(depth) ; //view the output
+//
+// Description
+// Note - Scilab does not support CV_32F - it would be considered as CV_64F
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>1 //max i/p arguments is 1
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+
+ d = raw_getDepth(image_list1);
+ depth = d(1);
+
+endfunction
+
+
diff --git a/macros/getDepth.sci~ b/macros/getDepth.sci~
new file mode 100644
index 0000000..79e8cc1
--- /dev/null
+++ b/macros/getDepth.sci~
@@ -0,0 +1,54 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function depth = getDepth(src)
+// This function returns the depth of the input matrix element.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// depth = getDepth(src)
+//
+//Parameters
+//src: Input 8-bit 3-channel image.
+//depth: a string which denoted the depth of the src.It identifies the following- 1) CV_8U - 8-bit unsigned integers ( 0..255 ) ; 2) CV_8S - 8-bit signed integers ( -128..127 ); 3) CV_16U - 16-bit unsigned integers ( 0..65535 ); 4) CV_16U - 16-bit unsigned integers ( 0..65535 ); 5) CV_16S - 16-bit signed integers ( -32768..32767 ) ; 6) CV_32S - 32-bit signed integers ( -2147483648..2147483647 ) ; 7) CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN )
+//
+//
+// Examples
+//
+// src = imread("../images/color2.jpeg"); //reading an image
+// depth = getDepth(src) ; //get the depth
+// disp(depth) ; //view the output
+//
+// Description
+// Note - Scilab does not support CV_32F - it would be considered as CV_64F
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>1 //max i/p arguments is 1
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+
+ d = raw_getDepth(image_list1);
+ depth = d(1);
+
+endfunction
+
+
diff --git a/macros/getStructuringElement.sci b/macros/getStructuringElement.sci
new file mode 100644
index 0000000..b09b98a
--- /dev/null
+++ b/macros/getStructuringElement.sci
@@ -0,0 +1,67 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sukul Bagai
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function structuring_element = getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+// This function returns a structuring element required for the morphological operations.
+// Calling Sequence
+// se = raw_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+//
+// Parameters
+// se: output structuring element matrix
+// shape: element shape that could be one of the following-
+//
+//MORPH_RECT - a rectangular structuring element
+//MORPH_ELLIPSE - an elliptic structuring element
+//MORPH_CROSS - a cross-shaped structuring element
+//
+//cols: Width of the structuring element
+//rows: Height of the structuring element
+//anchor: Anchor position within the element. The value (-1, -1) means that the anchor is at the center.
+//Only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates
+//how much the result of the morphological operation is shifted.
+//anchor_x: x-coordinate of the anchor
+//anchor_y: y-coordinate of the anchor
+//
+// Description
+// The function constructs and returns the structuring element that can be further passed to
+// function that perform morphological operations like erode or dilate.
+//
+// Examples
+// src = imread("/images/color2.jpeg");
+// se1=getStructuringElement('MORPH_RECT',5,7,3,4); //make a rectangular structuring element
+// out = dilate(src,se1,3,4,1); //perform dilate morphological operation
+// imshow(out); //view the output image
+//
+// Examples
+// src = imread("../images/color2.jpeg");
+// se2=getStructuringElement('MORPH_ELLIPSE',10,15,2,2); //make an elliptical structuring element
+// out = dilate(src,se2,2,2,2); //perform dilate morphological operation
+// imshow(out); //view the output image
+//
+// Authors
+// Sukul Bagai
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 5 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 5 then
+ error(msprintf("input arguments missing"))
+ end
+
+
+
+ structuring_element = raw_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+
+endfunction
diff --git a/macros/getStructuringElement.sci~ b/macros/getStructuringElement.sci~
new file mode 100644
index 0000000..b09b98a
--- /dev/null
+++ b/macros/getStructuringElement.sci~
@@ -0,0 +1,67 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sukul Bagai
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function structuring_element = getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+// This function returns a structuring element required for the morphological operations.
+// Calling Sequence
+// se = raw_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+//
+// Parameters
+// se: output structuring element matrix
+// shape: element shape that could be one of the following-
+//
+//MORPH_RECT - a rectangular structuring element
+//MORPH_ELLIPSE - an elliptic structuring element
+//MORPH_CROSS - a cross-shaped structuring element
+//
+//cols: Width of the structuring element
+//rows: Height of the structuring element
+//anchor: Anchor position within the element. The value (-1, -1) means that the anchor is at the center.
+//Only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates
+//how much the result of the morphological operation is shifted.
+//anchor_x: x-coordinate of the anchor
+//anchor_y: y-coordinate of the anchor
+//
+// Description
+// The function constructs and returns the structuring element that can be further passed to
+// function that perform morphological operations like erode or dilate.
+//
+// Examples
+// src = imread("/images/color2.jpeg");
+// se1=getStructuringElement('MORPH_RECT',5,7,3,4); //make a rectangular structuring element
+// out = dilate(src,se1,3,4,1); //perform dilate morphological operation
+// imshow(out); //view the output image
+//
+// Examples
+// src = imread("../images/color2.jpeg");
+// se2=getStructuringElement('MORPH_ELLIPSE',10,15,2,2); //make an elliptical structuring element
+// out = dilate(src,se2,2,2,2); //perform dilate morphological operation
+// imshow(out); //view the output image
+//
+// Authors
+// Sukul Bagai
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 5 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 5 then
+ error(msprintf("input arguments missing"))
+ end
+
+
+
+ structuring_element = raw_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+
+endfunction
diff --git a/macros/illuminationChange.sci b/macros/illuminationChange.sci
new file mode 100644
index 0000000..9c97dfe
--- /dev/null
+++ b/macros/illuminationChange.sci
@@ -0,0 +1,87 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = illuminationChange(src,mask,varargin)
+// This function is used to reduce specular reflections or highlight under-exposed foreground objects.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = illuminationChange(src, mask, alpha, beta )
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image
+// mask: Input mask image with same size as that of source image.
+// alpha: Value ranges between 0-2. (float) (default value= 0.2f)
+// beta: Value ranges between 0-2. (float) (default value= 0.4f)
+//
+//
+// Description
+// Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating
+// back with a Poisson solver, modifies locally the apparent illumination of an image.
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");//reading an image
+// mask = roiFreeHand(src); //creating a mask
+// imshow(mask);//view mask
+//
+// outputImage1 = illuminationChange(src, mask) //using default arguments
+// imshow(outputImage1); // view outputImage1
+//
+// outputImage2 = illuminationChange(src, mask,1.9, 0.3) //providing all optional input arguments
+// imshow(outputImage2); // view outputImage2
+//
+// outputImage3 = illuminationChange(src, mask,[], 0.3) //skipping first optional input argument
+// imshow(outputImage3); // view outputImage3
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// [row col] = size(src)
+// mask = zeros(row,col) //creating a mask
+// mask(100:140,100:150) =255
+// imshow(mask); view the mask
+// outputImage = illuminationChange(src, mask) //using default arguments
+// imshow(outputImage);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>4 // max i/p arguments are 4
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<2// min i/p arguments are 2
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(mask);
+
+ alpha = argindefault ( varargin , 1 , 0.2 );//default value is 0.2
+ beta = argindefault ( varargin , 2 , 0.4 );//default value is 0.4
+
+ out = raw_illuminationChange(image_list1,image_list2,alpha,beta );
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/illuminationChange.sci~ b/macros/illuminationChange.sci~
new file mode 100644
index 0000000..9c97dfe
--- /dev/null
+++ b/macros/illuminationChange.sci~
@@ -0,0 +1,87 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = illuminationChange(src,mask,varargin)
+// This function is used to reduce specular reflections or highlight under-exposed foreground objects.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = illuminationChange(src, mask, alpha, beta )
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image
+// mask: Input mask image with same size as that of source image.
+// alpha: Value ranges between 0-2. (float) (default value= 0.2f)
+// beta: Value ranges between 0-2. (float) (default value= 0.4f)
+//
+//
+// Description
+// Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating
+// back with a Poisson solver, modifies locally the apparent illumination of an image.
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");//reading an image
+// mask = roiFreeHand(src); //creating a mask
+// imshow(mask);//view mask
+//
+// outputImage1 = illuminationChange(src, mask) //using default arguments
+// imshow(outputImage1); // view outputImage1
+//
+// outputImage2 = illuminationChange(src, mask,1.9, 0.3) //providing all optional input arguments
+// imshow(outputImage2); // view outputImage2
+//
+// outputImage3 = illuminationChange(src, mask,[], 0.3) //skipping first optional input argument
+// imshow(outputImage3); // view outputImage3
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// [row col] = size(src)
+// mask = zeros(row,col) //creating a mask
+// mask(100:140,100:150) =255
+// imshow(mask); view the mask
+// outputImage = illuminationChange(src, mask) //using default arguments
+// imshow(outputImage);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>4 // max i/p arguments are 4
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<2// min i/p arguments are 2
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(mask);
+
+ alpha = argindefault ( varargin , 1 , 0.2 );//default value is 0.2
+ beta = argindefault ( varargin , 2 , 0.4 );//default value is 0.4
+
+ out = raw_illuminationChange(image_list1,image_list2,alpha,beta );
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/localMaximaFinder.sci b/macros/localMaximaFinder.sci
new file mode 100644
index 0000000..bd25c9b
--- /dev/null
+++ b/macros/localMaximaFinder.sci
@@ -0,0 +1,137 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [location]=localMaximaFinder(inputMatrix,neighborhood,maxNoOfMaxima,threshold)
+// This function returns local maxima in input matrice.
+//
+// Calling Sequence
+// location=localMaximaFinder(inputMatrix,neighborhood,maxNoOfMaxima,threshold)
+//
+// Parameters
+// inputMatrix: 2-D input matrix
+// neighborhood: It specifies the neighborhood around maxima, function zeros out the values inside the block.
+// Neighborhood is a two element vector,first one indicates number of rows in neighborhood,second one
+// indicates columns, of odd intergers.
+// maxNoOfMaxima: maximum number of local maxima you want to find.
+// threshold: It specifies minimum value of the local maxima.
+//
+// Description
+// localMaximaFinder returns [x y] coordinates of the local maxima in a M-by-2 matrix where M is
+// the number of local maxima and each row represents one local maximum
+//
+// Examples
+// mat = [0 0 0 0 0 0;0 0 0 1 0 0;0 0 7 0 0 0 ;0 0 0 0 0 0];
+// loc=localMaximaFinder(mat,[1 3],4,1);
+// o/p: loc =
+//
+// 3. 3.
+// 4. 2.
+//
+// Examples
+// I=imread("/images/color2.jpeg");
+// grayImage=rgb2gray(I);
+// location=localMaximaFinder(grayImage,[1 1],1,1);
+
+
+ [lhs,rhs]=argn(0)
+ if rhs<4 then
+ error(msprintf(" Not enough input arguments"))
+ elseif rhs>4 then
+ error(msprintf(" Too many input arguments to the function"))
+ elseif lhs>1 then
+ error(msprintf(" Too many output arguments"))
+ end
+
+ [iRows iCols]=size(inputMatrix)
+ [nRows nCols]=size(neighborhood)
+
+ if ~nRows==1 | ~nCols==2
+ error(msprintf("Neighborhood property must be a vector with 2 columns"))
+ end
+
+ nh_x=neighborhood(1,1);
+ nh_y=neighborhood(1,2);
+ if modulo(nh_x,2)==0 | modulo(nh_y,2)==0
+ error(msprintf("-Neighborhood property must be odd"))
+ elseif ~nh_x<=iRows | ~nh_y<=iCols
+ error(msprintf("Each dimension of the NeighborhoodSize property value must be less than or equal to the corresponding dimension of the input matrix"))
+ end
+
+ nh_x=floor(nh_x/2);
+ nh_y=floor(nh_y/2);
+ count=0;
+ index=1;
+ k=1;
+ while countmax_data
+ max_data=inputMatrix(i,j);
+ max_xIn=i;
+ max_yIn=j;
+ end
+ end
+ end
+ if threshold<=max_data //store the x & y coordinates
+ location(k,1)=max_yIn ;
+ location(k,2)=iRows ;
+ k=k+1;
+
+ //to zero-out the values around the neighborhood
+ if max_xIn-nh_x<1 then
+ start_x=1
+ else
+ start_x=max_xIn-nh_x
+ end
+ if max_yIn-nh_y<1 then
+ start_y=1
+ else
+ start_y=max_yIn-nh_y
+ end
+ if max_xIn+nh_x>iRows then
+ end_x=iRows
+ else
+ end_x=max_xIn+nh_x
+ end
+ if max_yIn+nh_y>iCols then
+ end_y=iCols
+ else
+ end_y=max_yIn+nh_y
+ end
+ for i=start_x:end_x
+ for j=start_y:end_y
+ inputMatrix(i,j)=0;
+ end
+ end
+ //to check the existence of non-zero element
+ nonZeroCount=0;
+ for i=1:iRows
+ for j=1:iCols
+ if ~inputMatrix(i,j)==0 then
+ nonZeroCount=nonZeroCount+1;
+ break;
+ end
+ end
+ if nonZeroCount==1 then
+ break;
+ end
+ end
+ if nonZeroCount==0 then
+ break;
+ end
+ count=count+1;
+
+ else
+ break; //if maximum number in input matrix is less than threshold
+ end
+ end
+endfunction
diff --git a/macros/localMaximaFinder.sci~ b/macros/localMaximaFinder.sci~
new file mode 100644
index 0000000..bd25c9b
--- /dev/null
+++ b/macros/localMaximaFinder.sci~
@@ -0,0 +1,137 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [location]=localMaximaFinder(inputMatrix,neighborhood,maxNoOfMaxima,threshold)
+// This function returns local maxima in input matrice.
+//
+// Calling Sequence
+// location=localMaximaFinder(inputMatrix,neighborhood,maxNoOfMaxima,threshold)
+//
+// Parameters
+// inputMatrix: 2-D input matrix
+// neighborhood: It specifies the neighborhood around maxima, function zeros out the values inside the block.
+// Neighborhood is a two element vector,first one indicates number of rows in neighborhood,second one
+// indicates columns, of odd intergers.
+// maxNoOfMaxima: maximum number of local maxima you want to find.
+// threshold: It specifies minimum value of the local maxima.
+//
+// Description
+// localMaximaFinder returns [x y] coordinates of the local maxima in a M-by-2 matrix where M is
+// the number of local maxima and each row represents one local maximum
+//
+// Examples
+// mat = [0 0 0 0 0 0;0 0 0 1 0 0;0 0 7 0 0 0 ;0 0 0 0 0 0];
+// loc=localMaximaFinder(mat,[1 3],4,1);
+// o/p: loc =
+//
+// 3. 3.
+// 4. 2.
+//
+// Examples
+// I=imread("/images/color2.jpeg");
+// grayImage=rgb2gray(I);
+// location=localMaximaFinder(grayImage,[1 1],1,1);
+
+
+ [lhs,rhs]=argn(0)
+ if rhs<4 then
+ error(msprintf(" Not enough input arguments"))
+ elseif rhs>4 then
+ error(msprintf(" Too many input arguments to the function"))
+ elseif lhs>1 then
+ error(msprintf(" Too many output arguments"))
+ end
+
+ [iRows iCols]=size(inputMatrix)
+ [nRows nCols]=size(neighborhood)
+
+ if ~nRows==1 | ~nCols==2
+ error(msprintf("Neighborhood property must be a vector with 2 columns"))
+ end
+
+ nh_x=neighborhood(1,1);
+ nh_y=neighborhood(1,2);
+ if modulo(nh_x,2)==0 | modulo(nh_y,2)==0
+ error(msprintf("-Neighborhood property must be odd"))
+ elseif ~nh_x<=iRows | ~nh_y<=iCols
+ error(msprintf("Each dimension of the NeighborhoodSize property value must be less than or equal to the corresponding dimension of the input matrix"))
+ end
+
+ nh_x=floor(nh_x/2);
+ nh_y=floor(nh_y/2);
+ count=0;
+ index=1;
+ k=1;
+ while countmax_data
+ max_data=inputMatrix(i,j);
+ max_xIn=i;
+ max_yIn=j;
+ end
+ end
+ end
+ if threshold<=max_data //store the x & y coordinates
+ location(k,1)=max_yIn ;
+ location(k,2)=iRows ;
+ k=k+1;
+
+ //to zero-out the values around the neighborhood
+ if max_xIn-nh_x<1 then
+ start_x=1
+ else
+ start_x=max_xIn-nh_x
+ end
+ if max_yIn-nh_y<1 then
+ start_y=1
+ else
+ start_y=max_yIn-nh_y
+ end
+ if max_xIn+nh_x>iRows then
+ end_x=iRows
+ else
+ end_x=max_xIn+nh_x
+ end
+ if max_yIn+nh_y>iCols then
+ end_y=iCols
+ else
+ end_y=max_yIn+nh_y
+ end
+ for i=start_x:end_x
+ for j=start_y:end_y
+ inputMatrix(i,j)=0;
+ end
+ end
+ //to check the existence of non-zero element
+ nonZeroCount=0;
+ for i=1:iRows
+ for j=1:iCols
+ if ~inputMatrix(i,j)==0 then
+ nonZeroCount=nonZeroCount+1;
+ break;
+ end
+ end
+ if nonZeroCount==1 then
+ break;
+ end
+ end
+ if nonZeroCount==0 then
+ break;
+ end
+ count=count+1;
+
+ else
+ break; //if maximum number in input matrix is less than threshold
+ end
+ end
+endfunction
diff --git a/macros/minAreaRect.sci b/macros/minAreaRect.sci
new file mode 100644
index 0000000..3384e79
--- /dev/null
+++ b/macros/minAreaRect.sci
@@ -0,0 +1,59 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out]=minAreaRect(x,y)
+// This function is used to find a rotated rectangle of the minimum area enclosing the input 2D point set.
+//
+// Calling Sequence
+// x = [x1 x2 x3 ...............xn]
+// y = [y1 y2 y3................yn]
+// out = minAreaRect(x , y)
+//
+// Parameters
+// x: 1xn matrix denoting the x coordinates of the points
+// y: 1xn matrix denoting the corresponding y coordinates of the points
+// out: Output structure with the following members - 1) width- width of the rectangle, 2) height- height of the rectangle, 3) center_x- x coordinate of the center of the rectangle, 4) center_y- x coordinate of the center of the rectangle, 5) angle- the angle by which the rectanle is rotated, 6) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 7) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 8) y_coordinates_vertices- 1x4 Double matrix denoting the corresponding y coordinates of the vertices of the rectangle
+//
+// Description
+// The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a specified point set.
+// the returned rotatedRect can contain negative indices when data is close to the containing Mat element boundary.
+//
+// Examples
+// x = [0 8 8 0]
+// y = [0 0 5 5]
+// out = minAreaRect(x,y)
+//
+// Examples
+// x = [0 8 8 0 8 8]
+// y = [0 0 5 5 4 4]
+// out = minAreaRect(x,y)
+//
+// Authors
+// Priyanka Hiranandani
+// Rohan Gurve
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 2 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 2 then
+ error(msprintf("input arguments missing"))
+ end
+
+
+ [t1 t2 t3 t4 t5 t6 t7]= raw_minAreaRect(x,y);
+ out=struct("width",t1,"height",t2,"center_x",t3,"center_y",t4,"angle",t5,"x_coordinates_vertices",t6,"y_coordinates_vertices",t7);
+endfunction;
+
+
diff --git a/macros/minAreaRect.sci~ b/macros/minAreaRect.sci~
new file mode 100644
index 0000000..3384e79
--- /dev/null
+++ b/macros/minAreaRect.sci~
@@ -0,0 +1,59 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out]=minAreaRect(x,y)
+// This function is used to find a rotated rectangle of the minimum area enclosing the input 2D point set.
+//
+// Calling Sequence
+// x = [x1 x2 x3 ...............xn]
+// y = [y1 y2 y3................yn]
+// out = minAreaRect(x , y)
+//
+// Parameters
+// x: 1xn matrix denoting the x coordinates of the points
+// y: 1xn matrix denoting the corresponding y coordinates of the points
+// out: Output structure with the following members - 1) width- width of the rectangle, 2) height- height of the rectangle, 3) center_x- x coordinate of the center of the rectangle, 4) center_y- x coordinate of the center of the rectangle, 5) angle- the angle by which the rectanle is rotated, 6) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 7) x_coordinates_vertices- 1x4 Double matrix denoting the x coordinates of the vertices of the rectangle, 8) y_coordinates_vertices- 1x4 Double matrix denoting the corresponding y coordinates of the vertices of the rectangle
+//
+// Description
+// The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a specified point set.
+// the returned rotatedRect can contain negative indices when data is close to the containing Mat element boundary.
+//
+// Examples
+// x = [0 8 8 0]
+// y = [0 0 5 5]
+// out = minAreaRect(x,y)
+//
+// Examples
+// x = [0 8 8 0 8 8]
+// y = [0 0 5 5 4 4]
+// out = minAreaRect(x,y)
+//
+// Authors
+// Priyanka Hiranandani
+// Rohan Gurve
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 2 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 2 then
+ error(msprintf("input arguments missing"))
+ end
+
+
+ [t1 t2 t3 t4 t5 t6 t7]= raw_minAreaRect(x,y);
+ out=struct("width",t1,"height",t2,"center_x",t3,"center_y",t4,"angle",t5,"x_coordinates_vertices",t6,"y_coordinates_vertices",t7);
+endfunction;
+
+
diff --git a/macros/minEnclosingCircle.sci b/macros/minEnclosingCircle.sci
new file mode 100644
index 0000000..6e16e00
--- /dev/null
+++ b/macros/minEnclosingCircle.sci
@@ -0,0 +1,53 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out]= minEnclosingCircle(x,y)
+// This function is used to find the circumcircle of an object constituted by the given set of input points.
+//
+// Calling Sequence
+// x = [x1 x2 x3 ...............xn]
+// y = [y1 y2 y3................yn]
+// out = minEnclosingCirlce(x , y)
+//
+// Parameters
+// x: 1xn matrix denoting the x coordinates of the points of the object
+// y: 1xn matrix denoting the corresponding y coordinates of the points of the object
+// out: Output structure with the following members- 1) center_x- x coordinate of the center of the circle, 2)center_y- x coordinate of the center of the circle, 3) radius- radius of the circle
+//
+// Examples
+// x = [0 8 8 0 2]
+// y = [0 0 5 5 9]
+// out = minEnclosingCircle(x,y)
+//
+// Examples
+//
+// x = [0 8 8 0 8 8]
+// y = [0 0 5 5 4 4]
+// out = minEnclosingCircle(x,y)
+//
+// Authors
+// Priyanka Hiranandani
+// Rohan Gurve
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 2 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 2 then
+ error(msprintf("input arguments missing"))
+ end
+
+ [t1 t2 t3]= raw_minEnclosingCircle(x,y);
+ out=struct("center_x",t1,"center_y",t2,"radius",t3);
+endfunction;
diff --git a/macros/minEnclosingCircle.sci~ b/macros/minEnclosingCircle.sci~
new file mode 100644
index 0000000..6e16e00
--- /dev/null
+++ b/macros/minEnclosingCircle.sci~
@@ -0,0 +1,53 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out]= minEnclosingCircle(x,y)
+// This function is used to find the circumcircle of an object constituted by the given set of input points.
+//
+// Calling Sequence
+// x = [x1 x2 x3 ...............xn]
+// y = [y1 y2 y3................yn]
+// out = minEnclosingCirlce(x , y)
+//
+// Parameters
+// x: 1xn matrix denoting the x coordinates of the points of the object
+// y: 1xn matrix denoting the corresponding y coordinates of the points of the object
+// out: Output structure with the following members- 1) center_x- x coordinate of the center of the circle, 2)center_y- x coordinate of the center of the circle, 3) radius- radius of the circle
+//
+// Examples
+// x = [0 8 8 0 2]
+// y = [0 0 5 5 9]
+// out = minEnclosingCircle(x,y)
+//
+// Examples
+//
+// x = [0 8 8 0 8 8]
+// y = [0 0 5 5 4 4]
+// out = minEnclosingCircle(x,y)
+//
+// Authors
+// Priyanka Hiranandani
+// Rohan Gurve
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 2 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 2 then
+ error(msprintf("input arguments missing"))
+ end
+
+ [t1 t2 t3]= raw_minEnclosingCircle(x,y);
+ out=struct("center_x",t1,"center_y",t2,"radius",t3);
+endfunction;
diff --git a/macros/partition.sci b/macros/partition.sci
new file mode 100644
index 0000000..f5c058d
--- /dev/null
+++ b/macros/partition.sci
@@ -0,0 +1,77 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohit Suri, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [varargout]=partition(imageSet,groupSizesOrPercentages,varargin)
+// This function is used to split an imageSet.
+//
+// Calling Sequence
+// imgSet = imageSet(location) //or imgSet = imageSet(location,'recursive')
+// [set1 set2 ... setN] = partition(imgSet, groupSizes)
+// [set1 set2 ... setN] = partition(imgSet, groupPercentages)
+// [set1 set2 ... setN] = partition(..., method)
+//
+// Parameters
+// set: Output imageSet structure
+// imgSet: Input imageSet to be split
+// groupSizes: Matrix that specifies size of output sets
+// groupPercentages: Matrix that specifies percentage content of each output set
+// method: (Optional) Determines whether split is 'sequential' or 'randomized' (Default: 'sequential')
+//
+// Description
+// This function splits an imageSet into two or more imageSets on the basis of the groupSizes or groupPercentages provided.
+//
+// Examples
+//
+// imgSet = imageSet('/images/test','recursive');
+// [set1 set2 set3] = partition(imgSet,[2 , 3], 'randomized');
+//
+// imgSet = imageSet('/images/test','recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+//
+// imgSet = imageSet('/images/airplanes');
+// [set1 set2] = partition(imgSet,[5]);
+//
+// imgSet = imageSet('/images/test','recursive');
+// [trainingSet testSet] = partition(imgSet,[4], 'randomized');
+//
+// Authors
+// Rohit Suri
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3
+ error(msprintf(" Too many input arguments"));
+ end
+ cols=size(groupSizesOrPercentages,'c');
+ if lhs>cols+1 then
+ error(msprintf(" Too many output arguments"));
+ end
+ imgSetList=imageSetToList(imageSet);
+
+ select rhs
+ case 2 then
+ sets=raw_partition(imgSetList,groupSizesOrPercentages);
+ case 3 then
+ sets=raw_partition(imgSetList,groupSizesOrPercentages,varargin(1));
+ end
+ for i=1:lhs
+ for j=1:length(sets(i)(3))
+ for k=1:sets(i)(3)(j)
+ imgLocations(k)=sets(i)(4)(j)(1,k);
+ end
+ imgSet(1,j)=struct('Description',sets(i)(2)(j),'ImageLocation',imgLocations,'Count',int32(sets(i)(3)(j)) );
+ imgLocations=[]
+ end
+ varargout(i) = imgSet;
+ end
+endfunction
+
+
diff --git a/macros/partition.sci~ b/macros/partition.sci~
new file mode 100644
index 0000000..f5c058d
--- /dev/null
+++ b/macros/partition.sci~
@@ -0,0 +1,77 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohit Suri, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [varargout]=partition(imageSet,groupSizesOrPercentages,varargin)
+// This function is used to split an imageSet.
+//
+// Calling Sequence
+// imgSet = imageSet(location) //or imgSet = imageSet(location,'recursive')
+// [set1 set2 ... setN] = partition(imgSet, groupSizes)
+// [set1 set2 ... setN] = partition(imgSet, groupPercentages)
+// [set1 set2 ... setN] = partition(..., method)
+//
+// Parameters
+// set: Output imageSet structure
+// imgSet: Input imageSet to be split
+// groupSizes: Matrix that specifies size of output sets
+// groupPercentages: Matrix that specifies percentage content of each output set
+// method: (Optional) Determines whether split is 'sequential' or 'randomized' (Default: 'sequential')
+//
+// Description
+// This function splits an imageSet into two or more imageSets on the basis of the groupSizes or groupPercentages provided.
+//
+// Examples
+//
+// imgSet = imageSet('/images/test','recursive');
+// [set1 set2 set3] = partition(imgSet,[2 , 3], 'randomized');
+//
+// imgSet = imageSet('/images/test','recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+//
+// imgSet = imageSet('/images/airplanes');
+// [set1 set2] = partition(imgSet,[5]);
+//
+// imgSet = imageSet('/images/test','recursive');
+// [trainingSet testSet] = partition(imgSet,[4], 'randomized');
+//
+// Authors
+// Rohit Suri
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3
+ error(msprintf(" Too many input arguments"));
+ end
+ cols=size(groupSizesOrPercentages,'c');
+ if lhs>cols+1 then
+ error(msprintf(" Too many output arguments"));
+ end
+ imgSetList=imageSetToList(imageSet);
+
+ select rhs
+ case 2 then
+ sets=raw_partition(imgSetList,groupSizesOrPercentages);
+ case 3 then
+ sets=raw_partition(imgSetList,groupSizesOrPercentages,varargin(1));
+ end
+ for i=1:lhs
+ for j=1:length(sets(i)(3))
+ for k=1:sets(i)(3)(j)
+ imgLocations(k)=sets(i)(4)(j)(1,k);
+ end
+ imgSet(1,j)=struct('Description',sets(i)(2)(j),'ImageLocation',imgLocations,'Count',int32(sets(i)(3)(j)) );
+ imgLocations=[]
+ end
+ varargout(i) = imgSet;
+ end
+endfunction
+
+
diff --git a/macros/pencilSketch.sci b/macros/pencilSketch.sci
new file mode 100644
index 0000000..752e7f0
--- /dev/null
+++ b/macros/pencilSketch.sci
@@ -0,0 +1,78 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImage_1, outputImage_2 ] = pencilSketch(src,varargin)
+// This function is used to give a non-photorealistic pencil-like line drawing effect to the given input image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// [outputImage_1 outputImage_2 ] = pencilSketch(src,sigma_s,sigma_r,shade_factor)
+//
+//Parameters
+//outputImage_1: resultant Output image with single channel
+//outputImage_2: resultant Output image with 3 channels
+//src: Input 8-bit 3-channel image.
+//sigma_s: Range between 0 to 200 (float) (default value is 60)
+//sigma_r: Range between 0 to 1. (float) (default value is 0.07f)
+//shade_factor: Range between 0 to 0.1 (default value is 0.02f)
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// outputImage1 = pencilSketch(src) //using default values for all optional parameters
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = pencilSketch(src,100,[],0.07) //using default values for sigma_s
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = pencilSketch(src,100,0.4,0.07) //providing values for all optional parameters
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>4//max i/p arguments are 4
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1//min i/p arguments is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>2
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+
+ sigma_s = argindefault ( varargin , 1 , 60 );//default value is 60
+ sigma_r = argindefault ( varargin , 2 , 0.07 );//default value is 0.07f
+ shade_factor = argindefault ( varargin , 3 , 0.02 ); //default value is 0.02f
+
+
+
+ [out1 , out2] = raw_pencilSketch(image_list1,sigma_s,sigma_r,shade_factor);
+
+ //sz = size(out);
+
+ //we know that we'll receive 4 matrices
+ //the first matrice will be for the single channel image
+ //the rest 3 matrices will be for the 3 channel image
+
+ //retreiving the 1 channel image
+ outputImage_1(:, :, 1) = out1(1);
+ //retreiving the 3 channel image
+ for i=1:size(out2)
+ outputImage_2(:, :, i) = out2(i)
+ end
+
+endfunction
+
+
diff --git a/macros/pencilSketch.sci~ b/macros/pencilSketch.sci~
new file mode 100644
index 0000000..752e7f0
--- /dev/null
+++ b/macros/pencilSketch.sci~
@@ -0,0 +1,78 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImage_1, outputImage_2 ] = pencilSketch(src,varargin)
+// This function is used to give a non-photorealistic pencil-like line drawing effect to the given input image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// [outputImage_1 outputImage_2 ] = pencilSketch(src,sigma_s,sigma_r,shade_factor)
+//
+//Parameters
+//outputImage_1: resultant Output image with single channel
+//outputImage_2: resultant Output image with 3 channels
+//src: Input 8-bit 3-channel image.
+//sigma_s: Range between 0 to 200 (float) (default value is 60)
+//sigma_r: Range between 0 to 1. (float) (default value is 0.07f)
+//shade_factor: Range between 0 to 0.1 (default value is 0.02f)
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// outputImage1 = pencilSketch(src) //using default values for all optional parameters
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = pencilSketch(src,100,[],0.07) //using default values for sigma_s
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = pencilSketch(src,100,0.4,0.07) //providing values for all optional parameters
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>4//max i/p arguments are 4
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1//min i/p arguments is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>2
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+
+ sigma_s = argindefault ( varargin , 1 , 60 );//default value is 60
+ sigma_r = argindefault ( varargin , 2 , 0.07 );//default value is 0.07f
+ shade_factor = argindefault ( varargin , 3 , 0.02 ); //default value is 0.02f
+
+
+
+ [out1 , out2] = raw_pencilSketch(image_list1,sigma_s,sigma_r,shade_factor);
+
+ //sz = size(out);
+
+ //we know that we'll receive 4 matrices
+ //the first matrice will be for the single channel image
+ //the rest 3 matrices will be for the 3 channel image
+
+ //retreiving the 1 channel image
+ outputImage_1(:, :, 1) = out1(1);
+ //retreiving the 3 channel image
+ for i=1:size(out2)
+ outputImage_2(:, :, i) = out2(i)
+ end
+
+endfunction
+
+
diff --git a/macros/pyramid.sci b/macros/pyramid.sci
new file mode 100644
index 0000000..79c2bfa
--- /dev/null
+++ b/macros/pyramid.sci
@@ -0,0 +1,58 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Diwakar Bhardwaj
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out]=pyramid(inputimage,direction,level)
+// This function computes the pyramid reduction or expansion of input_image.
+//
+// Calling Sequence
+// output_image=pyramid(inputimage,direction,level);
+//
+// Parameters
+// inputimage : image matrix on which pyramid reduction or expansion has to be applied
+// Direction : An input string 'expand' for expand or 'reduce' for reduce the image matrix
+// level : It is specify number of times want to expand or reduce the dimension of an image matrix.
+// output_image : Expanded or reduced form of image after pyramid reduction or expansio
+//
+// Description
+// This function computes the pyramid reduction or expansion of input image.It uses Gaussian pyramid to downsamples
+// and upsamples the image pixels.In reduction it reduces the size of image (if m*n matrix image) by m/pow(2,level)
+// and n/pow(2,level).In expansion it expands the size of image (if m*n matrix image) by m*pow(2,level)
+// and n*pow(2,level) where pow(x,y)=x^y.
+//
+// Examples
+// inputimage1 = imread('/images/color2.jpeg'); //read an image
+// a=pyramid(inputimage1,'expand',2); //perform 'expand' operation
+// imshow(a); //view the output
+// b=pyramid(inputimage1,'reduce',4);
+// imshow(b); //view the output
+//
+// Authors
+// Diwakar Bhardwaj
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 3 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 3
+ error(msprintf("Input arguments missing"))
+ end
+
+ inputimage1=mattolist(inputimage);
+ a=raw_pyramid(inputimage1,direction,level);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/pyramid.sci~ b/macros/pyramid.sci~
new file mode 100644
index 0000000..79c2bfa
--- /dev/null
+++ b/macros/pyramid.sci~
@@ -0,0 +1,58 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Diwakar Bhardwaj
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out]=pyramid(inputimage,direction,level)
+// This function computes the pyramid reduction or expansion of input_image.
+//
+// Calling Sequence
+// output_image=pyramid(inputimage,direction,level);
+//
+// Parameters
+// inputimage : image matrix on which pyramid reduction or expansion has to be applied
+// Direction : An input string 'expand' for expand or 'reduce' for reduce the image matrix
+// level : It is specify number of times want to expand or reduce the dimension of an image matrix.
+// output_image : Expanded or reduced form of image after pyramid reduction or expansio
+//
+// Description
+// This function computes the pyramid reduction or expansion of input image.It uses Gaussian pyramid to downsamples
+// and upsamples the image pixels.In reduction it reduces the size of image (if m*n matrix image) by m/pow(2,level)
+// and n/pow(2,level).In expansion it expands the size of image (if m*n matrix image) by m*pow(2,level)
+// and n*pow(2,level) where pow(x,y)=x^y.
+//
+// Examples
+// inputimage1 = imread('/images/color2.jpeg'); //read an image
+// a=pyramid(inputimage1,'expand',2); //perform 'expand' operation
+// imshow(a); //view the output
+// b=pyramid(inputimage1,'reduce',4);
+// imshow(b); //view the output
+//
+// Authors
+// Diwakar Bhardwaj
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 1 then
+ error(msprintf("Too many output argument"))
+ end
+
+ if rhs > 3 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs < 3
+ error(msprintf("Input arguments missing"))
+ end
+
+ inputimage1=mattolist(inputimage);
+ a=raw_pyramid(inputimage1,direction,level);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/regionFill.sci b/macros/regionFill.sci
new file mode 100644
index 0000000..4b8bdc8
--- /dev/null
+++ b/macros/regionFill.sci
@@ -0,0 +1,73 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Vinay Bhat, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function[dstImg] = regionFill(srcImg,inpaintRadius,varargin)
+// This function restores the selected region in an image using the region neighborhood.
+// This function restores the selected region in an image using the region neighborhood.
+//
+//
+// Calling Sequence
+// src = imread(location-for-image)
+// x = [x1 x2 ...........xn ] //x coordinates of polygon covering the region that you want to fill
+// y = [y1 y2 ...........yn ] //corresponding y coordinates of polygon covering the region that you want to fill
+// dstImg 1= regionFill(srcImg,inpaintRadius,x,y)
+//
+// mask = roiFreeHand(srx) //making a mask - you can also use other function to make the mask
+// dstImg2 = regionFill(srcImg,inpaintRadius,mask)
+//
+// Parameters
+//
+// srcImg: input source imge //it is converted to 8 bit internally
+// inpaintRadius: Radius of a circular neighborhood of each point inpainted that is considered by the algorithm(Double)
+// mask: Inpainting mask. Non-zero pixels indicate the area that needs to be inpainted.
+// x: 1xn matrix denoting x coordinates of polygon covering the region that you want to fill
+// y: 1xn matrix denoting y coordinates of polygon covering the region that you want to fill
+//
+// Examples
+// src= imread("/images/regionFill_test5.jpg");
+// p=regionFill(src,1,[100 110 110 100],[150 150 200 200]);
+// imshow(p);
+//
+// Examples
+// src= imread("/images/regionFill_test5.jpg"); //reading an image
+// mask=roiFreeHand(src); //making a mask
+// p=regionFill(src,5,mask);
+// imshow(p);
+//
+//Authors
+//Vinay Bhat
+//Rohan Gurve
+
+ [lhs, rhs] = argn(0)
+
+ if rhs < 3
+ error(msprintf("input arguments missing"));
+ elseif rhs > 4
+ error(msprintf(" Too many input arguments"));
+ end
+
+ srcMat = mattolist(srcImg)
+
+ if rhs == 3 then
+ maskMat = mattolist(varargin(1))
+ out = raw_regionFill(srcMat,inpaintRadius, maskMat)
+ elseif rhs == 4 then
+ x= varargin(1)
+ y= varargin(2)
+ out = raw_regionFill(srcMat,inpaintRadius, x, y)
+ end
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+endfunction
diff --git a/macros/regionFill.sci~ b/macros/regionFill.sci~
new file mode 100644
index 0000000..4b8bdc8
--- /dev/null
+++ b/macros/regionFill.sci~
@@ -0,0 +1,73 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Vinay Bhat, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function[dstImg] = regionFill(srcImg,inpaintRadius,varargin)
+// This function restores the selected region in an image using the region neighborhood.
+// This function restores the selected region in an image using the region neighborhood.
+//
+//
+// Calling Sequence
+// src = imread(location-for-image)
+// x = [x1 x2 ...........xn ] //x coordinates of polygon covering the region that you want to fill
+// y = [y1 y2 ...........yn ] //corresponding y coordinates of polygon covering the region that you want to fill
+// dstImg 1= regionFill(srcImg,inpaintRadius,x,y)
+//
+// mask = roiFreeHand(srx) //making a mask - you can also use other function to make the mask
+// dstImg2 = regionFill(srcImg,inpaintRadius,mask)
+//
+// Parameters
+//
+// srcImg: input source imge //it is converted to 8 bit internally
+// inpaintRadius: Radius of a circular neighborhood of each point inpainted that is considered by the algorithm(Double)
+// mask: Inpainting mask. Non-zero pixels indicate the area that needs to be inpainted.
+// x: 1xn matrix denoting x coordinates of polygon covering the region that you want to fill
+// y: 1xn matrix denoting y coordinates of polygon covering the region that you want to fill
+//
+// Examples
+// src= imread("/images/regionFill_test5.jpg");
+// p=regionFill(src,1,[100 110 110 100],[150 150 200 200]);
+// imshow(p);
+//
+// Examples
+// src= imread("/images/regionFill_test5.jpg"); //reading an image
+// mask=roiFreeHand(src); //making a mask
+// p=regionFill(src,5,mask);
+// imshow(p);
+//
+//Authors
+//Vinay Bhat
+//Rohan Gurve
+
+ [lhs, rhs] = argn(0)
+
+ if rhs < 3
+ error(msprintf("input arguments missing"));
+ elseif rhs > 4
+ error(msprintf(" Too many input arguments"));
+ end
+
+ srcMat = mattolist(srcImg)
+
+ if rhs == 3 then
+ maskMat = mattolist(varargin(1))
+ out = raw_regionFill(srcMat,inpaintRadius, maskMat)
+ elseif rhs == 4 then
+ x= varargin(1)
+ y= varargin(2)
+ out = raw_regionFill(srcMat,inpaintRadius, x, y)
+ end
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+endfunction
diff --git a/macros/rgb2gray.sci b/macros/rgb2gray.sci
new file mode 100644
index 0000000..a84f735
--- /dev/null
+++ b/macros/rgb2gray.sci
@@ -0,0 +1,53 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani,Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImg]=rgb2gray(inputImage)
+//Given an original color image, this function converts it into a single channel grayscale image and return the same.
+//
+// Calling Sequence
+// inputImage = imread("image-location-for-inputImage");
+// outputImg = rgb2gray(inputImage)
+//
+// Parameters
+// outputImage: single channel grayscale version of the inputImage
+// inputImage: Input source image
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// gray = rgb2gray(src);
+// imshow(gray);//view the output grayscale image
+//
+// Authors
+// Priyanka Hiranandani
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>1 //max i/p arguments is 1
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ inputList=mattolist(inputImage);
+ out=raw_rgb2gray(inputList);
+
+ sz = size(out);
+
+ for i=1:sz
+ outputImg(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/rgb2gray.sci~ b/macros/rgb2gray.sci~
new file mode 100644
index 0000000..a84f735
--- /dev/null
+++ b/macros/rgb2gray.sci~
@@ -0,0 +1,53 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani,Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImg]=rgb2gray(inputImage)
+//Given an original color image, this function converts it into a single channel grayscale image and return the same.
+//
+// Calling Sequence
+// inputImage = imread("image-location-for-inputImage");
+// outputImg = rgb2gray(inputImage)
+//
+// Parameters
+// outputImage: single channel grayscale version of the inputImage
+// inputImage: Input source image
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// gray = rgb2gray(src);
+// imshow(gray);//view the output grayscale image
+//
+// Authors
+// Priyanka Hiranandani
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>1 //max i/p arguments is 1
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ inputList=mattolist(inputImage);
+ out=raw_rgb2gray(inputList);
+
+ sz = size(out);
+
+ for i=1:sz
+ outputImg(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/roiFreeHand.sci b/macros/roiFreeHand.sci
new file mode 100644
index 0000000..be98720
--- /dev/null
+++ b/macros/roiFreeHand.sci
@@ -0,0 +1,291 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function mask =roiFreeHand(Image)
+// This is a gui based function which is used to create a mask by selecting the region of interest
+//
+// Calling Sequence
+// src = imread(image-location-for-src)
+// mask = roiFreeHand(src)
+//
+// Parameters
+// mask: Output 8 bit mask image with same size as input image
+// image: Input image to be masked
+//
+// Description
+// This function allows the user to create a mask by selecting the region of interest in the image.
+// Start selecting the region of interest by pressing the left mouse button and moving in the clockwise direction.
+// Don't leave the left mouse button until you are done selecting the region. Once the region has been selected,
+// wait until the process completes.
+// More than one region of interest can be selected by repeating the same procedure.
+// Once you are done selecting the ROI, press the small 's' key.This would stop the process.
+// This function returns a 8 bit mask image with (the ROI being white and the rest of the region being black).
+//
+// Note
+// more than one ROI can be selected from the image. Press key 's' only after all ROI have been selected.
+// Move the mouse only in the clockwise direction.
+// This algorithm assumes that the selected points in the ROI are very close to each other. Thus for best result, move
+// the mouse slowly while selecting the ROI
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// mask = roiFreeHand(src); //creating a mask
+// imshow(mask) //view the mask
+//
+// outputImage1 = colorChange(src, mask) //using this mask in the colorChange function
+// imshow(outputImage1);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ imshow(Image);
+
+ FigureHandle = gcf();
+ FigureHandle.figure_name = "Create mask - Select ROI ";
+ Diagram=gca();
+ //Diagram.axes_visible = ['off' 'off' 'off'];
+ //Diagram.isoview = 'on';
+ ImageList=mattolist(Image);
+ [rows cols]=size(ImageList(1));
+
+ temp_mask = zeros(ImageList(1));
+ while(1) do
+
+ pointsList = list();
+
+ while(1) //start selection of points only when the user presses the left mouse button
+ [b,x_new,y_new]=xclick();
+ if(b==0 & ( (x_new <= cols) & (x_new>=0) & (y_new<= rows) & (y_new>=0))) then//left mouse button has been pressed
+ break; //consider the point only if it lies inside the image
+ elseif(b==115) //key s has been pressed
+ break;
+ end;
+ end;
+
+ if(b==0) then
+
+
+ x_new = ceil(x_new); y_new = ceil(y_new);
+ pointsList($+1)=[x_new y_new];
+
+ rep=[x_new,y_new,0];
+ plot([x_new x_new], [y_new y_new],'rx');
+ while rep(3)~=-5 do // left mouse button has been pressed
+ rep=xgetmouse([%t %t]);
+ x_temp= ceil(rep(1));
+ y_temp= ceil(rep(2));
+ if( (x_temp <= cols) & (x_temp>=0) & (y_temp<= rows) & (y_temp>=0)) then// consider the point only if it lies inside the image
+ x_old=x_new;y_old=y_new;
+ x_new=x_temp;y_new=y_temp;
+ x = [x_old x_new];
+ y = [y_old y_new];
+
+ pointsList($+1)=[x_new y_new];
+
+ plot(x, y);
+ end;
+ end;
+
+ //-**ROI has been selected - the computation of the ROI will take palce now **-/
+
+ //first marking the boundary
+ FigureHandle.figure_name = "Wait (processing.............)";
+
+
+ for i=1: (length(pointsList) -1)
+ //intensity;
+ if( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) < 0) //moved from right to left
+ intensity = 0; //negative area
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //-- moved from up to down & from right to left --//
+ increase_ht = 0 ;
+ for j=pointsList(i+1)(1,1):pointsList(i)(1,1)
+ temp_mask(rows - pointsList(i+1)(1,2) - increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht+1;
+
+ end;
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up & from right to left --//
+
+ increase_ht = 0 ;
+ for j=pointsList(i+1)(1,1):pointsList(i)(1,1)
+ temp_mask(rows - pointsList(i+1)(1,2) + increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht + 1;
+ end;
+
+ else//both points have same height
+ for j=pointsList(i+1)(1,1):pointsList(i)(1,1)
+ temp_mask(rows - pointsList(i+1)(1,2) +1 ,j) = 1; //marking the boundary as 1
+ end;
+
+ end
+
+
+ elseif( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) > 0)
+ intensity =255;//positive area if movement from left to right
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //-- moved from up to down and from left to right --//
+
+ increase_ht = 0 ;
+ for j=pointsList(i)(1,1):pointsList(i+1)(1,1)
+ temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht + 1;
+ end;
+
+
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up and from left to right --//
+
+ increase_ht = 0 ;
+ for j=pointsList(i)(1,1):pointsList(i+1)(1,1)
+ temp_mask(rows - pointsList(i)(1,2) - increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht+1;
+ end;
+ else //both points have same height
+ for j=pointsList(i)(1,1):pointsList(i+1)(1,1)
+ temp_mask(rows - pointsList(i)(1,2) +1 ,j) = 1; //marking the boundary as 1
+
+ //increase_ht=increase_ht+1;
+ end;
+
+
+ end
+
+ else//both coordinate have the same x coordinate
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ for j=0:(pointsList(i)(1,2) - pointsList(i+1)(1,2))
+ temp_mask(rows - pointsList(i)(1,2) + j +1 ,pointsList(i)(1,1)) = 1; //marking the boundary as 1
+ end
+ else
+ for j=0:(pointsList(i+1)(1,2) - pointsList(i)(1,2)) //moved from down to up
+ temp_mask(rows - pointsList(i)(1,2) - j +1 ,pointsList(i)(1,1)) = 1; //marking the boundary as 1
+ end
+
+ end
+
+ end //if
+
+ end //for loop
+
+
+ //next marking the area
+ for i=1: (length(pointsList) -1)
+ //intensity;
+ if( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) < 0) //moved from right to left
+ intensity = 0; //negative area
+
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //-- moved from up to down & from right to left --//
+
+ for j=0:(pointsList(i)(1,1)-pointsList(i+1)(1,1))
+ increase_ht = 1 ;
+ while( ((rows - pointsList(i+1)(1,2) -j + increase_ht +1 ) <= rows) & (temp_mask(rows - pointsList(i+1)(1,2) -j + increase_ht +1 ,pointsList(i+1)(1,1)+j) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i+1)(1,2) -j + increase_ht +1 ,pointsList(i+1)(1,1)+j) = 0; //marking the underneath area as 0
+ increase_ht=increase_ht + 1;
+
+ end;
+ end;
+
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up & from right to left --//
+
+
+ for j=0:(pointsList(i)(1,1)-pointsList(i+1)(1,1))
+ increase_ht = 1 ;
+ while( ((rows - pointsList(i+1)(1,2) + j + increase_ht +1) <= rows) & (temp_mask(rows - pointsList(i+1)(1,2)+j + increase_ht +1 ,pointsList(i+1)(1,1)+j) ~= 1) ) //loop until it reaches any boundary or image border
+ temp_mask(rows - pointsList(i+1)(1,2) + j + increase_ht +1 ,pointsList(i+1)(1,1)+j) = 0; //marking the underneath area as 0
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+ else //both point on same height
+ for j=0:(pointsList(i)(1,1)-pointsList(i+1)(1,1))
+ increase_ht = 1 ;
+ while( ((rows - pointsList(i+1)(1,2) + increase_ht +1) <= rows) & (temp_mask(rows - pointsList(i+1)(1,2) + increase_ht +1 ,pointsList(i+1)(1,1)+j) ~= 1) ) //loop until it reaches any boundary or image border
+ temp_mask(rows - pointsList(i+1)(1,2) + increase_ht +1 ,pointsList(i+1)(1,1)+j) = 0; //marking the underneath area as 0
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+
+ end //"moved from up to down" 'if' end
+
+ elseif( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) > 0)// moved from left to right
+ intensity =255;//positive area if movement from left to right
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //--moved from up to down and from left to right --//
+
+ for j=0:(pointsList(i+1)(1,1)-pointsList(i)(1,1))
+ increase_ht = 1 ;
+
+ while(((rows - pointsList(i)(1,2) + increase_ht + j +1) <= rows) & (temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 +j,j+pointsList(i)(1,1)) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i)(1,2) + increase_ht +j +1 ,j+pointsList(i)(1,1)) = 255; //marking the underneath area as 255
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up and from left to right --//
+
+
+ for j=0:(pointsList(i+1)(1,1)-pointsList(i)(1,1))
+ increase_ht = 1 ;
+
+ while( ((rows - pointsList(i)(1,2) + increase_ht -j +1) <= rows ) & (temp_mask(rows - pointsList(i)(1,2) -j + increase_ht +1 ,pointsList(i)(1,1)+j) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i)(1,2) - j + increase_ht +1 ,pointsList(i)(1,1)+j) = 255; //marking the underneath area as 255
+ increase_ht = increase_ht + 1 ;
+ end;
+
+ end;
+ else
+ for j=0:(pointsList(i+1)(1,1)-pointsList(i)(1,1))
+ increase_ht = 1 ;
+
+ while( ((rows - pointsList(i)(1,2) + increase_ht +1) <= rows ) & (temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 ,pointsList(i)(1,1)+j) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 ,pointsList(i)(1,1)+j) = 255; //marking the underneath area as 255
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+
+
+
+ end;//moved from up to down's if end
+ end; //if statement
+ end;//for loop's end
+
+ FigureHandle.figure_name = "Create mask - Select ROI";
+
+ //-** the computation of the selected ROI has been completed **-/
+ //mask = pointsList;
+
+ else //b==115
+ break;//ROI has been selected - stopping the selection process
+
+ end //if(b==0)
+ mask = temp_mask;
+
+ end //while(1) loop's end
+
+
+endfunction
diff --git a/macros/roiFreeHand.sci~ b/macros/roiFreeHand.sci~
new file mode 100644
index 0000000..be98720
--- /dev/null
+++ b/macros/roiFreeHand.sci~
@@ -0,0 +1,291 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function mask =roiFreeHand(Image)
+// This is a gui based function which is used to create a mask by selecting the region of interest
+//
+// Calling Sequence
+// src = imread(image-location-for-src)
+// mask = roiFreeHand(src)
+//
+// Parameters
+// mask: Output 8 bit mask image with same size as input image
+// image: Input image to be masked
+//
+// Description
+// This function allows the user to create a mask by selecting the region of interest in the image.
+// Start selecting the region of interest by pressing the left mouse button and moving in the clockwise direction.
+// Don't leave the left mouse button until you are done selecting the region. Once the region has been selected,
+// wait until the process completes.
+// More than one region of interest can be selected by repeating the same procedure.
+// Once you are done selecting the ROI, press the small 's' key.This would stop the process.
+// This function returns a 8 bit mask image with (the ROI being white and the rest of the region being black).
+//
+// Note
+// more than one ROI can be selected from the image. Press key 's' only after all ROI have been selected.
+// Move the mouse only in the clockwise direction.
+// This algorithm assumes that the selected points in the ROI are very close to each other. Thus for best result, move
+// the mouse slowly while selecting the ROI
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// mask = roiFreeHand(src); //creating a mask
+// imshow(mask) //view the mask
+//
+// outputImage1 = colorChange(src, mask) //using this mask in the colorChange function
+// imshow(outputImage1);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ imshow(Image);
+
+ FigureHandle = gcf();
+ FigureHandle.figure_name = "Create mask - Select ROI ";
+ Diagram=gca();
+ //Diagram.axes_visible = ['off' 'off' 'off'];
+ //Diagram.isoview = 'on';
+ ImageList=mattolist(Image);
+ [rows cols]=size(ImageList(1));
+
+ temp_mask = zeros(ImageList(1));
+ while(1) do
+
+ pointsList = list();
+
+ while(1) //start selection of points only when the user presses the left mouse button
+ [b,x_new,y_new]=xclick();
+ if(b==0 & ( (x_new <= cols) & (x_new>=0) & (y_new<= rows) & (y_new>=0))) then//left mouse button has been pressed
+ break; //consider the point only if it lies inside the image
+ elseif(b==115) //key s has been pressed
+ break;
+ end;
+ end;
+
+ if(b==0) then
+
+
+ x_new = ceil(x_new); y_new = ceil(y_new);
+ pointsList($+1)=[x_new y_new];
+
+ rep=[x_new,y_new,0];
+ plot([x_new x_new], [y_new y_new],'rx');
+ while rep(3)~=-5 do // left mouse button has been pressed
+ rep=xgetmouse([%t %t]);
+ x_temp= ceil(rep(1));
+ y_temp= ceil(rep(2));
+ if( (x_temp <= cols) & (x_temp>=0) & (y_temp<= rows) & (y_temp>=0)) then// consider the point only if it lies inside the image
+ x_old=x_new;y_old=y_new;
+ x_new=x_temp;y_new=y_temp;
+ x = [x_old x_new];
+ y = [y_old y_new];
+
+ pointsList($+1)=[x_new y_new];
+
+ plot(x, y);
+ end;
+ end;
+
+ //-**ROI has been selected - the computation of the ROI will take palce now **-/
+
+ //first marking the boundary
+ FigureHandle.figure_name = "Wait (processing.............)";
+
+
+ for i=1: (length(pointsList) -1)
+ //intensity;
+ if( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) < 0) //moved from right to left
+ intensity = 0; //negative area
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //-- moved from up to down & from right to left --//
+ increase_ht = 0 ;
+ for j=pointsList(i+1)(1,1):pointsList(i)(1,1)
+ temp_mask(rows - pointsList(i+1)(1,2) - increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht+1;
+
+ end;
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up & from right to left --//
+
+ increase_ht = 0 ;
+ for j=pointsList(i+1)(1,1):pointsList(i)(1,1)
+ temp_mask(rows - pointsList(i+1)(1,2) + increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht + 1;
+ end;
+
+ else//both points have same height
+ for j=pointsList(i+1)(1,1):pointsList(i)(1,1)
+ temp_mask(rows - pointsList(i+1)(1,2) +1 ,j) = 1; //marking the boundary as 1
+ end;
+
+ end
+
+
+ elseif( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) > 0)
+ intensity =255;//positive area if movement from left to right
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //-- moved from up to down and from left to right --//
+
+ increase_ht = 0 ;
+ for j=pointsList(i)(1,1):pointsList(i+1)(1,1)
+ temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht + 1;
+ end;
+
+
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up and from left to right --//
+
+ increase_ht = 0 ;
+ for j=pointsList(i)(1,1):pointsList(i+1)(1,1)
+ temp_mask(rows - pointsList(i)(1,2) - increase_ht +1 ,j) = 1; //marking the boundary as 1
+
+ increase_ht=increase_ht+1;
+ end;
+ else //both points have same height
+ for j=pointsList(i)(1,1):pointsList(i+1)(1,1)
+ temp_mask(rows - pointsList(i)(1,2) +1 ,j) = 1; //marking the boundary as 1
+
+ //increase_ht=increase_ht+1;
+ end;
+
+
+ end
+
+ else//both coordinate have the same x coordinate
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ for j=0:(pointsList(i)(1,2) - pointsList(i+1)(1,2))
+ temp_mask(rows - pointsList(i)(1,2) + j +1 ,pointsList(i)(1,1)) = 1; //marking the boundary as 1
+ end
+ else
+ for j=0:(pointsList(i+1)(1,2) - pointsList(i)(1,2)) //moved from down to up
+ temp_mask(rows - pointsList(i)(1,2) - j +1 ,pointsList(i)(1,1)) = 1; //marking the boundary as 1
+ end
+
+ end
+
+ end //if
+
+ end //for loop
+
+
+ //next marking the area
+ for i=1: (length(pointsList) -1)
+ //intensity;
+ if( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) < 0) //moved from right to left
+ intensity = 0; //negative area
+
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //-- moved from up to down & from right to left --//
+
+ for j=0:(pointsList(i)(1,1)-pointsList(i+1)(1,1))
+ increase_ht = 1 ;
+ while( ((rows - pointsList(i+1)(1,2) -j + increase_ht +1 ) <= rows) & (temp_mask(rows - pointsList(i+1)(1,2) -j + increase_ht +1 ,pointsList(i+1)(1,1)+j) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i+1)(1,2) -j + increase_ht +1 ,pointsList(i+1)(1,1)+j) = 0; //marking the underneath area as 0
+ increase_ht=increase_ht + 1;
+
+ end;
+ end;
+
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up & from right to left --//
+
+
+ for j=0:(pointsList(i)(1,1)-pointsList(i+1)(1,1))
+ increase_ht = 1 ;
+ while( ((rows - pointsList(i+1)(1,2) + j + increase_ht +1) <= rows) & (temp_mask(rows - pointsList(i+1)(1,2)+j + increase_ht +1 ,pointsList(i+1)(1,1)+j) ~= 1) ) //loop until it reaches any boundary or image border
+ temp_mask(rows - pointsList(i+1)(1,2) + j + increase_ht +1 ,pointsList(i+1)(1,1)+j) = 0; //marking the underneath area as 0
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+ else //both point on same height
+ for j=0:(pointsList(i)(1,1)-pointsList(i+1)(1,1))
+ increase_ht = 1 ;
+ while( ((rows - pointsList(i+1)(1,2) + increase_ht +1) <= rows) & (temp_mask(rows - pointsList(i+1)(1,2) + increase_ht +1 ,pointsList(i+1)(1,1)+j) ~= 1) ) //loop until it reaches any boundary or image border
+ temp_mask(rows - pointsList(i+1)(1,2) + increase_ht +1 ,pointsList(i+1)(1,1)+j) = 0; //marking the underneath area as 0
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+
+ end //"moved from up to down" 'if' end
+
+ elseif( (pointsList(i+1)(1,1) - pointsList(i)(1,1)) > 0)// moved from left to right
+ intensity =255;//positive area if movement from left to right
+
+ if( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) < 0) //moved from up to down
+ //--moved from up to down and from left to right --//
+
+ for j=0:(pointsList(i+1)(1,1)-pointsList(i)(1,1))
+ increase_ht = 1 ;
+
+ while(((rows - pointsList(i)(1,2) + increase_ht + j +1) <= rows) & (temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 +j,j+pointsList(i)(1,1)) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i)(1,2) + increase_ht +j +1 ,j+pointsList(i)(1,1)) = 255; //marking the underneath area as 255
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+ elseif( (pointsList(i+1)(1,2) - pointsList(i)(1,2)) > 0) //moved from down to up
+ //-- moved from down to up and from left to right --//
+
+
+ for j=0:(pointsList(i+1)(1,1)-pointsList(i)(1,1))
+ increase_ht = 1 ;
+
+ while( ((rows - pointsList(i)(1,2) + increase_ht -j +1) <= rows ) & (temp_mask(rows - pointsList(i)(1,2) -j + increase_ht +1 ,pointsList(i)(1,1)+j) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i)(1,2) - j + increase_ht +1 ,pointsList(i)(1,1)+j) = 255; //marking the underneath area as 255
+ increase_ht = increase_ht + 1 ;
+ end;
+
+ end;
+ else
+ for j=0:(pointsList(i+1)(1,1)-pointsList(i)(1,1))
+ increase_ht = 1 ;
+
+ while( ((rows - pointsList(i)(1,2) + increase_ht +1) <= rows ) & (temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 ,pointsList(i)(1,1)+j) ~ = 1) ) //loop until it reaches the any boundary or image border
+ temp_mask(rows - pointsList(i)(1,2) + increase_ht +1 ,pointsList(i)(1,1)+j) = 255; //marking the underneath area as 255
+ increase_ht = increase_ht + 1 ;
+ end;
+ end;
+
+
+
+
+ end;//moved from up to down's if end
+ end; //if statement
+ end;//for loop's end
+
+ FigureHandle.figure_name = "Create mask - Select ROI";
+
+ //-** the computation of the selected ROI has been completed **-/
+ //mask = pointsList;
+
+ else //b==115
+ break;//ROI has been selected - stopping the selection process
+
+ end //if(b==0)
+ mask = temp_mask;
+
+ end //while(1) loop's end
+
+
+endfunction
diff --git a/macros/roiPoly.sci b/macros/roiPoly.sci
new file mode 100644
index 0000000..6b4b9b0
--- /dev/null
+++ b/macros/roiPoly.sci
@@ -0,0 +1,78 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohit Suri, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function[dstImg] = roiPoly(srcImg, col_list, row_list)
+//This function creates mask by selecting the ROI as a poygon.
+//This function creates mask by selecting the ROI as a poygon.
+//
+// Calling Sequence
+// I = imimread(image-location)
+// c = [c1 c2 ..............cn]
+// r = [r1 r2 ..............rn]
+// BW = roipoly(I, c, r)
+//
+// Parameters
+// I : Input image
+// c : a 1xn vector specifying the column indices of the vertices of the n sided polygon
+// r : a 1xn vector specifying the row indices of the vertices of the n sided polygon
+// BW: Output mask image for input I
+//
+// Description
+// Returns the ROI specified by the polygon described by vectors c and r, which specify the column
+// and row indices of each vertex, respectively. c and r must be the same size.
+//
+// Examples
+// I = imread('image_01.jpeg');
+// c = [50 50 100 100] //defining the column indices of the vertices of the ROI
+// r = [100 150 150 100 ] //defining the corresponding row indices of the vertices of the ROI
+// BW = roipoly(I, c, r) //creating a mask
+// imshow(BW) //viewing the mask
+// c=colorChange(I,mask,2.4 ,2.0, 2.2); //using this mask in colorChange function
+// imshow(c);
+//
+// Examples
+// I = imread('../images/color3.jpg');
+// c = [ 150 200 250 300 250 200 ] ; //defining the column indices of the vertices of the ROI
+// r = [ 135 100 100 135 170 170 ] ; //defining the corresponding row indices of the vertices of the ROI
+// gray = rgb2gray(I) ; //for a grayscale image
+// BW = roiPoly(I, c, r); //creating a mask
+// imshow(BW) //viewing the mask
+//
+// Examples
+// I = imread('/images/color3.jpg');
+// c1 = [200 250 300 250 150 200 ]
+// r1 = [ 170 170 135 100 135 100] //undesired output because changing the order of points
+// BW = roiPoly(I,c1,r1);
+// imshow(BW)
+//
+// Authors
+// Vinay Bhat
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<3
+ error(msprintf(" input arguments missing"));
+ end
+
+ srcMat = mattolist(srcImg)
+
+ out = raw_roiPoly(srcMat,row_list,col_list)
+
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/roiPoly.sci~ b/macros/roiPoly.sci~
new file mode 100644
index 0000000..e6ff1b4
--- /dev/null
+++ b/macros/roiPoly.sci~
@@ -0,0 +1,78 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohit Suri, Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function[dstImg] = roiPoly(srcImg, col_list, row_list)
+//This function creates mask by selecting the ROI as a poygon.
+//This function creates mask by selecting the ROI as a poygon.
+//
+// Calling Sequence
+// I = imimread(image-location)
+// c = [c1 c2 ..............cn]
+// r = [r1 r2 ..............rn]
+// BW = roipoly(I, c, r)
+//
+// Parameters
+// I : Input image
+// c : a 1xn vector specifying the column indices of the vertices of the n sided polygon
+// r : a 1xn vector specifying the row indices of the vertices of the n sided polygon
+// BW: Output mask image for input I
+//
+// Description
+// Returns the ROI specified by the polygon described by vectors c and r, which specify the column
+// and row indices of each vertex, respectively. c and r must be the same size.
+//
+// Examples
+// I = imread('image_01.jpeg');
+// c = [50 50 100 100] //defining the column indices of the vertices of the ROI
+// r = [100 150 150 100 ] //defining the corresponding row indices of the vertices of the ROI
+// BW = roipoly(I, c, r) //creating a mask
+// imshow(BW) //viewing the mask
+// c=colorChange(I,mask,2.4 ,2.0, 2.2); //using this mask in colorChange function
+// imshow(c);
+//
+// Examples
+// I = imread('../images/color3.jpg');
+// c = [ 150 200 250 300 250 200 ] ; //defining the column indices of the vertices of the ROI
+// r = [ 135 100 100 135 170 170 ] ; //defining the corresponding row indices of the vertices of the ROI
+// gray = rgb2gray(I) ; //for a grayscale image
+// BW = roiPoly(I, c, r); //creating a mask
+// imshow(BW) //viewing the mask
+//
+// Examples
+// I = imread('../images/color3.jpg');
+// c1 = [200 250 300 250 150 200 ]
+// r1 = [ 170 170 135 100 135 100] //undesired output because changing the order of points
+// BW = roiPoly(I,c1,r1);
+// imshow(BW)
+//
+// Authors
+// Vinay Bhat
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<3
+ error(msprintf(" input arguments missing"));
+ end
+
+ srcMat = mattolist(srcImg)
+
+ out = raw_roiPoly(srcMat,row_list,col_list)
+
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/seamlessClone.sci b/macros/seamlessClone.sci
new file mode 100644
index 0000000..5d05fda
--- /dev/null
+++ b/macros/seamlessClone.sci
@@ -0,0 +1,84 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = seamlessClone(src,dst,mask, pointMatirx, flag)
+// This function is used to seamlessly clone a source image onto a destination image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = seamlessClone(src,dst,mask, pointMatirx, flag)
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image.
+// dst: Input destination image on which the source image will be cloned onto .
+// mask: Input mask image with same size as that of source image.
+// pointMatirx: a 1x2 vector denoting the x & y coordinates of the point in dst where the src image will be cloned (x & y are Double)
+// flag( Cloning method that could be one of the following):1) 1 - NORMAL_CLONE ; 2) 2 - MIXED_CLONE ; 3) 3 - FEATURE_EXCHANGE
+//
+// Description
+// Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or
+// local changes concerned to a selection. Here we are interested in achieving local changes, ones
+// that are restricted to a region manually selected (ROI), in a seamless and effortless manner.
+// The extent of the changes ranges from slight distortions to complete replacement by novel content
+//
+//
+//Note: The size of the source image should be equal to or less than the destination image. The point 'p'
+// should be chosen such that it fully fits inside the destination image.If not, then this function will throw the error=>
+// -(minxd >= 0 && minyd >= 0 && maxxd <= dest.rows && maxyd <= dest.cols) in seamlessClone
+//
+// Examples
+// dst = imread("/images/color3.jpg"); //read destination image
+// src = imread("/images/cartoon.jpg"); //read source image
+// mask = roiFreeHand(src); //create a mask for source image
+// output = seamlessClone(src,dst,mask,[75 120], 1 ); //perform the seamelessClone
+// imshow(output);
+//
+// Examples
+// dst = imread("/images/color3.jpg"); //read destination image
+// src = imread("/images/cartoon.jpg"); //read source image
+// [rows cols] = size(src) //creating a mask for source image
+// mask = zeros(rows,cols);
+// mask(50:rows,1:cols) = 255;
+// output = seamlessClone(src,dst,mask,[75 120], 1 ); //perform the seamelessClone
+// imshow(output);
+//
+//
+// Authors
+// Rohan Gurve
+
+
+ [lhs rhs]=argn(0);
+ if rhs>5
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<5
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(dst);
+ image_list3 = mattolist(mask);
+
+ out = raw_seamlessClone(image_list1,image_list2,image_list3,pointMatirx, flag);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
diff --git a/macros/seamlessClone.sci~ b/macros/seamlessClone.sci~
new file mode 100644
index 0000000..5d05fda
--- /dev/null
+++ b/macros/seamlessClone.sci~
@@ -0,0 +1,84 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = seamlessClone(src,dst,mask, pointMatirx, flag)
+// This function is used to seamlessly clone a source image onto a destination image.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = seamlessClone(src,dst,mask, pointMatirx, flag)
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image.
+// dst: Input destination image on which the source image will be cloned onto .
+// mask: Input mask image with same size as that of source image.
+// pointMatirx: a 1x2 vector denoting the x & y coordinates of the point in dst where the src image will be cloned (x & y are Double)
+// flag( Cloning method that could be one of the following):1) 1 - NORMAL_CLONE ; 2) 2 - MIXED_CLONE ; 3) 3 - FEATURE_EXCHANGE
+//
+// Description
+// Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or
+// local changes concerned to a selection. Here we are interested in achieving local changes, ones
+// that are restricted to a region manually selected (ROI), in a seamless and effortless manner.
+// The extent of the changes ranges from slight distortions to complete replacement by novel content
+//
+//
+//Note: The size of the source image should be equal to or less than the destination image. The point 'p'
+// should be chosen such that it fully fits inside the destination image.If not, then this function will throw the error=>
+// -(minxd >= 0 && minyd >= 0 && maxxd <= dest.rows && maxyd <= dest.cols) in seamlessClone
+//
+// Examples
+// dst = imread("/images/color3.jpg"); //read destination image
+// src = imread("/images/cartoon.jpg"); //read source image
+// mask = roiFreeHand(src); //create a mask for source image
+// output = seamlessClone(src,dst,mask,[75 120], 1 ); //perform the seamelessClone
+// imshow(output);
+//
+// Examples
+// dst = imread("/images/color3.jpg"); //read destination image
+// src = imread("/images/cartoon.jpg"); //read source image
+// [rows cols] = size(src) //creating a mask for source image
+// mask = zeros(rows,cols);
+// mask(50:rows,1:cols) = 255;
+// output = seamlessClone(src,dst,mask,[75 120], 1 ); //perform the seamelessClone
+// imshow(output);
+//
+//
+// Authors
+// Rohan Gurve
+
+
+ [lhs rhs]=argn(0);
+ if rhs>5
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<5
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(dst);
+ image_list3 = mattolist(mask);
+
+ out = raw_seamlessClone(image_list1,image_list2,image_list3,pointMatirx, flag);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
diff --git a/macros/stylization.sci b/macros/stylization.sci
new file mode 100644
index 0000000..ab23b69
--- /dev/null
+++ b/macros/stylization.sci
@@ -0,0 +1,72 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = stylization(src,varargin)
+//This function aims to produce non-photorealistic digital imagery with a wide variety of effects.
+//
+//Calling Sequence
+//src = imread("image-location-for-src");
+//outputImage = stylization(src,sigma_s,sigma_r)
+//
+//Parameters
+//outputImage: resultant Output image
+//src: Input 8-bit 3-channel image.
+//sigma_s: Range between 0 to 200 (float) (default value is 60)
+//sigma_r: Range between 0 to 1. (float) (default value is 0.45f)
+//
+//Description
+// Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving,
+// or enhancing, high-contrast features.
+//
+// Examples
+// src = imread("/images/color2.jpeg");
+// outputImage1 = stylization(src) //using default values for optional parameters
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = stylization(src,121) //using default value for sigma_r
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = stylization(src,[],0.2) //using default value for sigma_s
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3 //max i/p arguments are 3
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ sigma_s = argindefault ( varargin , 1 , 60 );//default value is 60
+ sigma_r = argindefault ( varargin , 2 , 0.45 );//default value is 0.45f
+
+
+
+ out = raw_stylization(image_list1,sigma_s,sigma_r);
+
+
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/stylization.sci~ b/macros/stylization.sci~
new file mode 100644
index 0000000..ab23b69
--- /dev/null
+++ b/macros/stylization.sci~
@@ -0,0 +1,72 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = stylization(src,varargin)
+//This function aims to produce non-photorealistic digital imagery with a wide variety of effects.
+//
+//Calling Sequence
+//src = imread("image-location-for-src");
+//outputImage = stylization(src,sigma_s,sigma_r)
+//
+//Parameters
+//outputImage: resultant Output image
+//src: Input 8-bit 3-channel image.
+//sigma_s: Range between 0 to 200 (float) (default value is 60)
+//sigma_r: Range between 0 to 1. (float) (default value is 0.45f)
+//
+//Description
+// Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving,
+// or enhancing, high-contrast features.
+//
+// Examples
+// src = imread("/images/color2.jpeg");
+// outputImage1 = stylization(src) //using default values for optional parameters
+// imshow(outputImage1);//view the output
+//
+// outputImage2 = stylization(src,121) //using default value for sigma_r
+// imshow(outputImage2);//view the output
+//
+// outputImage3 = stylization(src,[],0.2) //using default value for sigma_s
+// imshow(outputImage3);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>3 //max i/p arguments are 3
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<1 //min i/p argument is 1
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ sigma_s = argindefault ( varargin , 1 , 60 );//default value is 60
+ sigma_r = argindefault ( varargin , 2 , 0.45 );//default value is 0.45f
+
+
+
+ out = raw_stylization(image_list1,sigma_s,sigma_r);
+
+
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/templateMatcher.sci b/macros/templateMatcher.sci
new file mode 100644
index 0000000..fec8a9e
--- /dev/null
+++ b/macros/templateMatcher.sci
@@ -0,0 +1,80 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Suraj Prakash,Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [new_image,x,y] = templateMatcher(image, template_image)
+// This function compares a template in overlapped image regions and returns the coordinates of the point of match.
+//
+// Calling Sequence
+// [new_image x y] = templateMatcher(image, template_image)
+//
+// Parameters
+// image : 8-bit int or 32-bit floating image
+// template_image : Searched template. It must not be greater than the source image and have the same data type of input image.
+// newimage : Map of comparison results. It must be single channel 32-bit floating-point. Its size is (W-w+1) * (H-h+1) if image
+// is W * H and template_image is w * h
+// x: the row no. of the location where the template matched occured in the input image
+// y: x: the column no. of the location where the template matched in the input image
+//
+// Description
+// The function compares the w * h sized images of the original image against the template image and stores the result in the new_image.
+// The point of maxima in the image gives the position of the match.
+//
+// Examples
+// src= imread("/images/color3.jpg"); //reading the source image
+// gray_src = rgb2gray(src); //converting src to grayscale
+// tem = imread("/images/smile.jpg"); //reading the template image
+// tem = rgb2gray(tem);//converting template image to gray
+// imshow(tem);//view the template image
+// [j x y] =templateMatcher(gray_src,tem); //perform the template matching
+// [rows cols] =size(tem)
+// t = rectangle(src,x,y,x+cols,y+rows,0,0,255,2,8,0); //mark the position of the point of template match in the src image
+// imshow(j) //view the CV_64F output image of templateMatcher
+// imshow(t) //view the src image with the template object marked
+//
+//
+// Authors
+// Suraj Prakash
+// Rohan Gurve
+
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 3 then
+ error(msprintf("Too many output argument"))
+ elseif lhs < 1 then
+ error(msprintf("output arguments missing"))
+
+ end
+
+
+ if rhs > 2 then
+ error(msprintf("Too many input arguments"))
+ end
+
+ [imagerows imagecols imagechannel] = size(image)
+ [t_rows t_cols t_channel] = size(template_image)
+ if t_rows > imagerows | t_cols > imagecols then
+ error(msprintf("Template image is greater than image\n"))
+ end
+
+ image_list = mattolist(image)
+ template_image_list = mattolist(template_image)
+
+
+ [temp x y] = raw_templateMatcher(image_list, template_image_list)
+
+
+ sz = size(temp)
+
+ for i=1 : sz
+ new_image(:, :, i) = temp(i)
+ end
+
+endfunction
diff --git a/macros/templateMatcher.sci~ b/macros/templateMatcher.sci~
new file mode 100644
index 0000000..fec8a9e
--- /dev/null
+++ b/macros/templateMatcher.sci~
@@ -0,0 +1,80 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Suraj Prakash,Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [new_image,x,y] = templateMatcher(image, template_image)
+// This function compares a template in overlapped image regions and returns the coordinates of the point of match.
+//
+// Calling Sequence
+// [new_image x y] = templateMatcher(image, template_image)
+//
+// Parameters
+// image : 8-bit int or 32-bit floating image
+// template_image : Searched template. It must not be greater than the source image and have the same data type of input image.
+// newimage : Map of comparison results. It must be single channel 32-bit floating-point. Its size is (W-w+1) * (H-h+1) if image
+// is W * H and template_image is w * h
+// x: the row no. of the location where the template matched occured in the input image
+// y: x: the column no. of the location where the template matched in the input image
+//
+// Description
+// The function compares the w * h sized images of the original image against the template image and stores the result in the new_image.
+// The point of maxima in the image gives the position of the match.
+//
+// Examples
+// src= imread("/images/color3.jpg"); //reading the source image
+// gray_src = rgb2gray(src); //converting src to grayscale
+// tem = imread("/images/smile.jpg"); //reading the template image
+// tem = rgb2gray(tem);//converting template image to gray
+// imshow(tem);//view the template image
+// [j x y] =templateMatcher(gray_src,tem); //perform the template matching
+// [rows cols] =size(tem)
+// t = rectangle(src,x,y,x+cols,y+rows,0,0,255,2,8,0); //mark the position of the point of template match in the src image
+// imshow(j) //view the CV_64F output image of templateMatcher
+// imshow(t) //view the src image with the template object marked
+//
+//
+// Authors
+// Suraj Prakash
+// Rohan Gurve
+
+
+ [ lhs rhs ] = argn(0)
+ if lhs > 3 then
+ error(msprintf("Too many output argument"))
+ elseif lhs < 1 then
+ error(msprintf("output arguments missing"))
+
+ end
+
+
+ if rhs > 2 then
+ error(msprintf("Too many input arguments"))
+ end
+
+ [imagerows imagecols imagechannel] = size(image)
+ [t_rows t_cols t_channel] = size(template_image)
+ if t_rows > imagerows | t_cols > imagecols then
+ error(msprintf("Template image is greater than image\n"))
+ end
+
+ image_list = mattolist(image)
+ template_image_list = mattolist(template_image)
+
+
+ [temp x y] = raw_templateMatcher(image_list, template_image_list)
+
+
+ sz = size(temp)
+
+ for i=1 : sz
+ new_image(:, :, i) = temp(i)
+ end
+
+endfunction
diff --git a/macros/textureFlattening.sci b/macros/textureFlattening.sci
new file mode 100644
index 0000000..5cbb824
--- /dev/null
+++ b/macros/textureFlattening.sci
@@ -0,0 +1,90 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = textureFlattening(src,mask,varargin)
+// This function washes out the texture of the selected region in the input image, giving its contents a flat aspect.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = textureFlattening(src,mask,low_threshold,high_threshold, kernel_size);
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image.
+// mask: Input mask image with same size as that of source image ( 1 or 3-channel image)
+// low_threshold: Range from 0 to 100. (double) (default value is 30)
+// high_threshold: Value > 100 & <=255. (double) (default value is 120)
+// kernel_size: The size of the Sobel kernel to be used: it can be 3 , 5 or 7
+//
+// Description
+// It retain the gradients at edge locations, before integrating with the Poisson solver. It uses Canny Edge Detector.
+// The algorithm assumes that the color of the source image is close to that of the destination.
+// This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// mask = roiFreeHand(src); //creating a mask
+// imshow(mask);//view mask
+//
+// outputImage1 = textureFlattening(src,mask) // using default value for optional parameters
+// imshow(outputImage1); // view outputImage1
+//
+// outputImage2 = textureFlattening(src,mask,50 , 180.5 ) //providing value for 1st and 2nd optional argument
+// imshow(outputImage2); // view outputImage2
+//
+// outputImage2 = textureFlattening(src,mask,[],[], 7 ) //providing value for only 3rd optional argument
+// imshow(outputImage3); // view outputImage3
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// [row col] = size(src)
+// mask = zeros(row,col) //creating a mask
+// mask(100:140,100:150) =255
+// imshow(mask); view the mask
+// outputImage = textureFlattening(src,mask)
+// imshow(outputImage);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>5 //max i/p arguments are 5
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<2 //min i/p arguments are 2
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(mask);
+
+ low_threshold = argindefault ( varargin , 1 , 30 );//default value is 30
+ high_threshold = argindefault ( varargin , 2 , 120 );//default value is 120
+ kernel_size = argindefault ( varargin , 3 , 3 );//default value is 3
+
+
+ out = raw_textureFlattening(image_list1,image_list2,low_threshold,high_threshold, kernel_size);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/textureFlattening.sci~ b/macros/textureFlattening.sci~
new file mode 100644
index 0000000..5cbb824
--- /dev/null
+++ b/macros/textureFlattening.sci~
@@ -0,0 +1,90 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function output_image = textureFlattening(src,mask,varargin)
+// This function washes out the texture of the selected region in the input image, giving its contents a flat aspect.
+//
+// Calling Sequence
+// src = imread("image-location-for-src");
+// mask = roiFreeHand(src); //we can also use other function to create the mask
+// outputImage = textureFlattening(src,mask,low_threshold,high_threshold, kernel_size);
+//
+// Parameters
+// outputImage: resultant Output image
+// src: Input source image.
+// mask: Input mask image with same size as that of source image ( 1 or 3-channel image)
+// low_threshold: Range from 0 to 100. (double) (default value is 30)
+// high_threshold: Value > 100 & <=255. (double) (default value is 120)
+// kernel_size: The size of the Sobel kernel to be used: it can be 3 , 5 or 7
+//
+// Description
+// It retain the gradients at edge locations, before integrating with the Poisson solver. It uses Canny Edge Detector.
+// The algorithm assumes that the color of the source image is close to that of the destination.
+// This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// mask = roiFreeHand(src); //creating a mask
+// imshow(mask);//view mask
+//
+// outputImage1 = textureFlattening(src,mask) // using default value for optional parameters
+// imshow(outputImage1); // view outputImage1
+//
+// outputImage2 = textureFlattening(src,mask,50 , 180.5 ) //providing value for 1st and 2nd optional argument
+// imshow(outputImage2); // view outputImage2
+//
+// outputImage2 = textureFlattening(src,mask,[],[], 7 ) //providing value for only 3rd optional argument
+// imshow(outputImage3); // view outputImage3
+//
+// Examples
+//
+// src = imread("/images/color2.jpeg");
+// [row col] = size(src)
+// mask = zeros(row,col) //creating a mask
+// mask(100:140,100:150) =255
+// imshow(mask); view the mask
+// outputImage = textureFlattening(src,mask)
+// imshow(outputImage);//view the output
+//
+// Authors
+// Rohan Gurve
+
+ [lhs rhs]=argn(0);
+ if rhs>5 //max i/p arguments are 5
+ error(msprintf(" Too many input arguments"));
+ elseif rhs<2 //min i/p arguments are 2
+ error(msprintf("input arguments missing"));
+ end
+
+ if lhs>1
+ error(msprintf("Too many output arguments"));
+ end
+
+ image_list1 = mattolist(src);
+ image_list2 = mattolist(mask);
+
+ low_threshold = argindefault ( varargin , 1 , 30 );//default value is 30
+ high_threshold = argindefault ( varargin , 2 , 120 );//default value is 120
+ kernel_size = argindefault ( varargin , 3 , 3 );//default value is 3
+
+
+ out = raw_textureFlattening(image_list1,image_list2,low_threshold,high_threshold, kernel_size);
+
+ sz = size(out);
+
+ for i=1:sz
+ output_image(:, :, i) = out(i)
+ end
+
+endfunction
+
+
diff --git a/macros/watershed.sci b/macros/watershed.sci
new file mode 100644
index 0000000..33186db
--- /dev/null
+++ b/macros/watershed.sci
@@ -0,0 +1,70 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias, Ashish Manatosh Barik , Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function[dstImg] = watershed(srcImg, varargin)
+// This function returns a marker based segmented image for the given input image.
+// This function returns a marker based segmented image for the given input image.
+//
+// Calling Sequence
+//
+// src = imread("image-location-for-src");
+// [dstImg] = watershed(srcImg) //uses distance transform to find the contours
+//
+// src = imread("image-location-for-src");
+// markerMat = roiFreeHand(src); //using roiFreeHand to roughly mark the contours manually by selecting the ROI
+// [dstImg] = watershed(srcImg,markerMat)
+// src = imread("image-location-for-src");
+//
+// Parameters
+// dstImg: output segmented image
+// src: Input source image
+// markerMat: a mask image with the the contours marked(region selected)
+//
+// Description
+// The second calling sequence gives better results.Here the user has to manually select the region of interest using roiFreeHand.
+// Go through the documentation of roiFreeHand to see how it works.
+//
+// Examples
+// src= imread("/images/watershed2.jpg");
+// w2=watershed(src);// markers are created after performing distance transform by default
+// imshow(w2);
+//
+// Examples
+// src= imread("../images/watershed2.jpg");
+// mask=roiFreeHand(src); //creating markers - selecting each coin separately using the function roiFreeHand
+// w2=watershed(src,mask); //retrieve the segmented image
+// imshow(w2);
+//
+// Authors
+// Tess Zacharias
+// Ashish Manatosh Barik
+// Rohan Gurve
+
+
+ srcMat = mattolist(srcImg)
+
+ [lhs, rhs] = argn(0)
+
+ select rhs
+ case 1 then
+ out = raw_watershed(srcMat)
+ case 2 then
+ markerMat = mattolist(varargin(1))
+ out = raw_watershed(srcMat, markerMat)
+ end
+
+ channels = size(out)
+
+ for i = 1 : channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/watershed.sci~ b/macros/watershed.sci~
new file mode 100644
index 0000000..33186db
--- /dev/null
+++ b/macros/watershed.sci~
@@ -0,0 +1,70 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias, Ashish Manatosh Barik , Rohan Gurve
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function[dstImg] = watershed(srcImg, varargin)
+// This function returns a marker based segmented image for the given input image.
+// This function returns a marker based segmented image for the given input image.
+//
+// Calling Sequence
+//
+// src = imread("image-location-for-src");
+// [dstImg] = watershed(srcImg) //uses distance transform to find the contours
+//
+// src = imread("image-location-for-src");
+// markerMat = roiFreeHand(src); //using roiFreeHand to roughly mark the contours manually by selecting the ROI
+// [dstImg] = watershed(srcImg,markerMat)
+// src = imread("image-location-for-src");
+//
+// Parameters
+// dstImg: output segmented image
+// src: Input source image
+// markerMat: a mask image with the the contours marked(region selected)
+//
+// Description
+// The second calling sequence gives better results.Here the user has to manually select the region of interest using roiFreeHand.
+// Go through the documentation of roiFreeHand to see how it works.
+//
+// Examples
+// src= imread("/images/watershed2.jpg");
+// w2=watershed(src);// markers are created after performing distance transform by default
+// imshow(w2);
+//
+// Examples
+// src= imread("../images/watershed2.jpg");
+// mask=roiFreeHand(src); //creating markers - selecting each coin separately using the function roiFreeHand
+// w2=watershed(src,mask); //retrieve the segmented image
+// imshow(w2);
+//
+// Authors
+// Tess Zacharias
+// Ashish Manatosh Barik
+// Rohan Gurve
+
+
+ srcMat = mattolist(srcImg)
+
+ [lhs, rhs] = argn(0)
+
+ select rhs
+ case 1 then
+ out = raw_watershed(srcMat)
+ case 2 then
+ markerMat = mattolist(varargin(1))
+ out = raw_watershed(srcMat, markerMat)
+ end
+
+ channels = size(out)
+
+ for i = 1 : channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/sci_gateway/opencv_colorChange.cpp b/sci_gateway/opencv_colorChange.cpp
new file mode 100644
index 0000000..6dd4c65
--- /dev/null
+++ b/sci_gateway/opencv_colorChange.cpp
@@ -0,0 +1,253 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+/* Calling sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = colorChange(src, mask, red_mul, green_mul, blue_mul )
+
+*/
+ int opencv_colorChange(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double red_mul,green_mul,blue_mul;
+ char * funcName= "colorChange";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 5, 5);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src,mask;
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return -1;
+ }
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ retrieveImage(mask, 2);
+
+
+ //size of mask should be same as that of src
+ if( (src.rows!=mask.rows) || (src.cols!=mask.cols) )
+ {
+ Scierror(999, "%s: in input argument #%d - size of mask is not equal to size of source image ! Same size required !\n",funcName,2);
+ return -1;
+
+ }
+
+
+
+ if(mask.channels()==1)
+ {
+ //convert to 8 bit 1 channel
+ mask.convertTo(mask,CV_8UC1);
+ }
+ else if(mask.channels()==3)
+ {
+ //convert to 8 bit 3 channel
+ mask.convertTo(mask,CV_8UC3);
+
+ }
+ else
+ {
+ Scierror(999, "%s: in input argument #%d requires either a 1 or 3 channel image !\n",funcName,2);
+ return -1;
+
+ }
+
+
+ //for value of red_mul
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ if (isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &red_mul);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (red_mul <= 0.5) || (red_mul >= 2.5))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0.5 & 2.5 .\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+
+
+
+
+
+ //for value of green_mul
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr4) )
+ {
+ if(isScalar(pvApiCtx, piAddr4))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &green_mul);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (green_mul <= 0.5) || (green_mul >= 2.5))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0.5 & 2.5 .\n",funcName,4);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,4);
+ return -1;
+
+ }
+
+
+
+
+ //for value of blue_mul
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr5) )
+ {
+ if(isScalar(pvApiCtx, piAddr5))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr5, &blue_mul);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (blue_mul <= 0.5) || (blue_mul >= 2.5))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0.5 & 2.5 .\n",funcName,5);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 5);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,5);
+ return -1;
+
+ }
+
+
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ colorChange(src,mask,output_image,red_mul,green_mul,blue_mul);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_convert.cpp b/sci_gateway/opencv_convert.cpp
new file mode 100644
index 0000000..9977707
--- /dev/null
+++ b/sci_gateway/opencv_convert.cpp
@@ -0,0 +1,158 @@
+/***************************************************
+Author : Rohan Gurve
+****************************************************
+ dst = convert(src,rtype,alpha,beta)
+***************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ int opencv_convert(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piLen = NULL;
+ char **rtype = NULL;
+ double alpha,beta;
+ int i;
+ int type;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 4, 4);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src,1);
+
+
+ //for type
+ sciErr = getVarAddressFromPosition(pvApiCtx,2, &piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ sciErr = getMatrixOfString(pvApiCtx, piAddr2, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr2, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ rtype = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ {
+ rtype[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+ }
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr2, &iRows, &iCols, piLen, rtype);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+
+ //for value of alpha
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &alpha);
+ if(intErr)
+ return intErr;
+
+
+ //for value of beta
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ intErr = getScalarDouble(pvApiCtx, piAddr4 ,&beta);
+ if(intErr)
+ return intErr;
+
+
+
+
+ if(strcmp(rtype[0], "CV_8U") == 0)
+ type = CV_8U;
+ else if(strcmp(rtype[0], "CV_8S") == 0)
+ type = CV_8S;
+ else if(strcmp(rtype[0], "CV_16U") == 0)
+ type = CV_16U;
+ else if(strcmp(rtype[0], "CV_16S") == 0)
+ type = CV_16S;
+ else if(strcmp(rtype[0], "CV_32S") == 0)
+ type = CV_32S;
+ else if(strcmp(rtype[0], "CV_64F") == 0)
+ type = CV_64F;
+
+ else
+ {
+ Scierror(999, "%s: Invalid image type\n");
+ return -1;
+ }
+
+
+ try
+ {
+ src.convertTo(src,type,alpha,beta);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ string tempstring = type2str(src.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,src,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_detailEnhance.cpp b/sci_gateway/opencv_detailEnhance.cpp
new file mode 100644
index 0000000..e9f3e97
--- /dev/null
+++ b/sci_gateway/opencv_detailEnhance.cpp
@@ -0,0 +1,178 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+ /*
+ Calling Sequence
+ src = imread("image-location-for-src");
+ outputImage = detailEnhance(src,sigma_s,sigma_r)
+
+ */
+
+ int opencv_detailEnhance(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double sigma_s,sigma_r;
+ double temp_flag;
+ int flag;
+ char * funcName= "detailEnhance";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 3);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return -1;
+ }
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ //for value of sigma_s
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ if (isDoubleType(pvApiCtx, piAddr2) )
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &sigma_s);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_s <= 0) || (sigma_s >= 200))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 200 .\n",funcName,2);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 2);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,2);
+ return -1;
+
+ }
+
+
+ //for value of sigma_r
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &sigma_r);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_r <= 0) || (sigma_r >= 1))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 1 !\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,3);
+ return -1;
+
+ }
+
+
+
+
+
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ detailEnhance(src,output_image,sigma_s,sigma_r);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_edgePreservingFilter.cpp b/sci_gateway/opencv_edgePreservingFilter.cpp
new file mode 100644
index 0000000..40d88b1
--- /dev/null
+++ b/sci_gateway/opencv_edgePreservingFilter.cpp
@@ -0,0 +1,223 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ /*Calling Sequence
+
+ src = imread("image-location-for-src");
+ outputImage = edgePreservingFilter(src,flag,sigma_s,sigma_r)
+ */
+
+ int opencv_edgePreservingFilter(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double sigma_s,sigma_r;
+ double temp_flag;
+ int flag;
+ char * funcName= "edgePreservingFilter";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 4, 4);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return -1;
+ }
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ //for flag
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ if (isDoubleType(pvApiCtx, piAddr2) )
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &temp_flag);
+ if(intErr)
+ {
+ return intErr;
+ }
+ flag = int(temp_flag);
+
+ if( !((flag == 1) || (flag ==2)))
+ {
+ Scierror(999, "%s: value of input argument #%d should be 1 or 2 .\n",funcName,2);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 2);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar int expected.\n", funcName, 2);
+ return -1;
+
+ }
+
+
+ //for value of sigma_s
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ if (isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &sigma_s);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_s <= 0) || (sigma_s >= 200))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 200 .\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+
+
+
+
+
+ //for value of sigma_r
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr4) )
+ {
+ if(isScalar(pvApiCtx, piAddr4))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &sigma_r);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_r <= 0) || (sigma_r >= 1))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 1 !\n",funcName,4);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,4);
+ return -1;
+
+ }
+
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ edgePreservingFilter(src,output_image,flag,sigma_s,sigma_r);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_getDepth.cpp b/sci_gateway/opencv_getDepth.cpp
new file mode 100644
index 0000000..834a9ca
--- /dev/null
+++ b/sci_gateway/opencv_getDepth.cpp
@@ -0,0 +1,108 @@
+/***************************************************
+Author : Rohan Gurve
+****************************************************
+ depth = getDepth(src)
+***************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ int opencv_getDepth(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+
+ char **postData = NULL;
+ int i;
+ int size;
+ int iRows = 1;
+ int iCols = 1;
+ char * depth;
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 1);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src,1);
+
+ postData= (char**)malloc(sizeof(char*) * (iRows*iCols));
+
+ try
+ {
+ switch(src.depth())
+ {
+ case CV_8U : depth= "CV_8U";
+ postData[0] = depth;
+ break;
+
+
+ case CV_8S : depth = "CV_8S";
+ postData[0] = depth;
+ break;
+
+ case CV_16U : depth = "CV_16U";
+ postData[0] = depth;
+ break;
+
+ case CV_16S : depth = "CV_16S";
+ postData[0] = depth;
+
+ break;
+
+ case CV_32S : depth = "CV_32S";
+ postData[0] = depth;
+ break;
+
+ //scialb dosen't support CV_32F - it would be treated as CV_64F
+
+ case CV_64F : depth = "CV_64F";
+
+ postData[0] = depth;
+
+ break;
+
+ }
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ /* Create the stringmatrix as return of the function */
+ sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows,iCols, postData);
+ free(postData); // Data have been copied into Scilab memory
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_getStructuringElement.cpp b/sci_gateway/opencv_getStructuringElement.cpp
new file mode 100644
index 0000000..8f451d6
--- /dev/null
+++ b/sci_gateway/opencv_getStructuringElement.cpp
@@ -0,0 +1,158 @@
+/*************************************************
+Author: Sukul Bagai
+**************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ int opencv_getStructuringElement(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piLen = NULL;
+ int *piAddr1 = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k,type;
+ char **gettype = NULL;
+ double cols,rows,anchorX,anchorY;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 5, 5);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ //checking for error if any
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ sciErr = getMatrixOfString(pvApiCtx, piAddr1, &iRows, &iCols, NULL, NULL);
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string of first argument
+ sciErr = getMatrixOfString(pvApiCtx, piAddr1, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ gettype= (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ gettype[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+ //third call to retrieve data of each string of first argument
+ sciErr = getMatrixOfString(pvApiCtx, piAddr1, &iRows, &iCols, piLen, gettype);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ if(strcmp("MORPH_RECT",gettype[0])==0)
+ type=MORPH_RECT;
+ else if(strcmp("MORPH_ELLIPSE",gettype[0])==0)
+ type=MORPH_ELLIPSE;
+ else if(strcmp("MORPH_CROSS",gettype[0])==0)
+ type=MORPH_CROSS;
+
+ //for cols
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2 ,&cols);
+ if(intErr)
+ return intErr;
+
+ //for rows
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &rows);
+ if(intErr)
+ return intErr;
+
+ //for anchorX
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4 ,&anchorX);
+ if(intErr)
+ return intErr;
+
+ //for anchorY
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5 ,&anchorY);
+ if(intErr)
+ return intErr;
+
+ Mat temp;
+
+ try
+ {
+ temp = getStructuringElement(type,Size(rows,cols),Point(anchorX,anchorY));
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ sciprint("%s", err);
+ return -1;
+ }
+ double *m = (double *)malloc(temp.rows*temp.cols*sizeof(double));
+ for(i=0;i(i, j);
+ *(m + i*temp.cols + j) = intensity;
+ }
+ }
+
+ sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, temp.rows, temp.cols, m);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+
+ }
+
+}
diff --git a/sci_gateway/opencv_illuminationChange.cpp b/sci_gateway/opencv_illuminationChange.cpp
new file mode 100644
index 0000000..2c9f6d4
--- /dev/null
+++ b/sci_gateway/opencv_illuminationChange.cpp
@@ -0,0 +1,215 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+/**Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = illuminationChange(src, mask, alpha, beta )
+**/
+
+ int opencv_illuminationChange(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double alpha,beta;
+ char * funcName= "illuminationChange";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 4, 4);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src,mask;
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return -1;
+ }
+
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ retrieveImage(mask, 2);
+
+
+ //size of mask should be same as that of src
+ if( (src.rows!=mask.rows) || (src.cols!=mask.cols) )
+ {
+ Scierror(999, "%s: in input argument #%d - size of mask is not equal to size of source image ! Same size required !\n",funcName,2);
+ return -1;
+
+ }
+
+
+
+
+ if(mask.channels()==1)
+ {
+ //convert to 8 bit 1 channel
+ mask.convertTo(mask,CV_8UC1);
+ }
+ else if(mask.channels()==3)
+ {
+ //convert to 8 bit 3 channel
+ mask.convertTo(mask,CV_8UC3);
+
+ }
+ else
+ {
+ Scierror(999, "%s: in input argument #%d requires either a 1 or 3 channel image !\n",funcName,2);
+ return -1;
+
+ }
+
+
+
+
+
+
+
+ //for value of apha
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ if (isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &alpha);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (alpha < 0) || (alpha > 2))
+ {
+ Scierror(999, "%s: input argument #%d can only accept values in the range from 0 to 2 .\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+
+
+
+
+
+ //for value of beta
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr4) )
+ {
+ if(isScalar(pvApiCtx, piAddr4))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &beta);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (beta < 0) || (beta > 2))
+ {
+ Scierror(999, "%s: input argument #%d can only accept values in the range from 0 to 2 .\n",funcName,4);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,4);
+ return -1;
+
+ }
+
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ illuminationChange(src,mask,output_image,alpha,beta);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+ }
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_minAreaRect.cpp b/sci_gateway/opencv_minAreaRect.cpp
new file mode 100644
index 0000000..a36326d
--- /dev/null
+++ b/sci_gateway/opencv_minAreaRect.cpp
@@ -0,0 +1,240 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat, Rohan Gurve GCET, Anand */
+/* ==================================================================== */
+/* Syntax : return_rotatedrect=minAreaRect(x,y);
+/* ==================================================================== */
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+using namespace cv;
+using namespace std;
+ extern "C"
+ {
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ int opencv_minAreaRect(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int x_iRows = 0;
+ int x_iCols = 0;
+
+ int y_iRows = 0;
+ int y_iCols = 0;
+
+
+ int piRows = 0;
+ int piCols = 0;
+ int* piAddr = NULL;
+ int* piAddr2 = NULL;
+ //int* piAddr3 = NULL;
+ //int* piAddr4 = NULL;
+ // int* piAddr5 = NULL;
+ //int* piAddr6 = NULL;
+ int* piAddrNew = NULL;
+ int* piLen = NULL;
+ double* x = NULL;
+ double* y = NULL;
+
+ double * rectCoordinates_x = NULL; //to store x coordinates of vertices of the min area rect
+ double * rectCoordinates_y = NULL; //to store y coordinates of vertices of the min area rect
+
+ rectCoordinates_x = (double*)malloc(sizeof(double) * 1 * 4);
+ rectCoordinates_y = (double*)malloc(sizeof(double) * 1 * 4);
+ double sigmaSpace;
+ int error;
+ ////checking input argument
+ CheckInputArgument(pvApiCtx,2,2);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx,7,7);
+
+
+ //for first argument
+ // get Address of first input
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ /* Check that the first input argument is a real matrix (and not complex) */
+ if ( !isDoubleType(pvApiCtx, piAddr) || isVarComplex(pvApiCtx, piAddr) )
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n", fname, 1);
+ return -1;
+ }
+
+ //retrieve input array an dstore it in x
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &x_iRows, &x_iCols,&x);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ //for second argument
+ // get Address of second input
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ /* Check that the second input argument is a real matrix (and not complex) */
+ if ( !isDoubleType(pvApiCtx, piAddr2) || isVarComplex(pvApiCtx, piAddr2) )
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n", fname, 2);
+ return -1;
+ }
+
+ //retrieve input array and store it in y
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr2, &y_iRows, &y_iCols,&y);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ //error check
+
+ if(!(x_iRows==1 && y_iRows==1) )
+ {
+ Scierror(999, "%s","x and y matrix expects a dimension of 1xn");
+ return -1;
+
+ }
+
+ if( !(x_iCols==y_iCols))
+ {
+ Scierror(999, "%s","size of x matrix is not equal to y matrix");
+ return -1;
+
+ }
+
+
+ int k=0;
+ vector contours;
+ for(int i=0;i
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+using namespace cv;
+using namespace std;
+ extern "C"
+ {
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ // #include "../common.h"
+ int opencv_minEnclosingCircle(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int x_iRows = 0;
+ int x_iCols = 0;
+
+ int y_iRows = 0;
+ int y_iCols = 0;
+
+ int piRows = 0;
+ int piCols = 0;
+ int* piAddr = NULL;
+ int* piAddr2 = NULL;
+ int* piAddrNew = NULL;
+ int* piLen = NULL;
+ double *pstData = NULL;
+ char **pstData2 = NULL;
+ //for storing the input matrix
+ double* x = NULL;
+ double* y = NULL;
+
+ Point2f center;
+ float radius;
+ int error;
+ //checking input argument
+ CheckInputArgument(pvApiCtx,2,2);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx,3,3);
+ //for first argument
+ // get Address of first input
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ /* Check that the first input argument is a real matrix (and not complex) */
+ if ( !isDoubleType(pvApiCtx, piAddr) || isVarComplex(pvApiCtx, piAddr) )
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n", fname, 1);
+ return -1;
+ }
+
+ //retrieve input array an dstore it in x
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &x_iRows, &x_iCols,&x);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ //for second argument
+ // get Address of second input
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ /* Check that the second input argument is a real matrix (and not complex) */
+ if ( !isDoubleType(pvApiCtx, piAddr2) || isVarComplex(pvApiCtx, piAddr2) )
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n", fname, 2);
+ return -1;
+ }
+
+ //retrieve input array and store it in y
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr2, &y_iRows, &y_iCols,&y);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ //error check
+
+ if(!(x_iRows==1 && y_iRows==1) )
+ {
+ Scierror(999, "%s","x and y matrix expects a dimension of 1xn");
+ return -1;
+
+ }
+
+ if( !(x_iCols==y_iCols))
+ {
+ Scierror(999, "%s","size of x matrix is not equal to y matrix");
+ return -1;
+
+ }
+
+
+ int k=0;
+ vector contours;
+ for(int i=0;i
+#include
+#include
+#include
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "sciprint.h"
+
+ /* Calling sequence: imgSet = imageSet(location) //or imgSet = imageSet(location,'recursive')
+ [set1,set2,...,setN] = partition(imgSet,groupSizes)
+ [set1,set2,...,setN] = partition(imgSet,groupPercentages)
+ [set1,set2,...,setN] = partition(___,method) */
+
+ double findSum(double *array, int n)
+ {
+ double sum = 0;
+ for(int iter=0; iter0 && groupSizesOrPercentages[0]<1)
+ {
+ sizeProvided = 0;
+ }
+ else if(groupSizesOrPercentages[0]>=1)
+ {
+ sizeProvided = 1;
+ }
+ else
+ {
+ Scierror(999, "Error: Please enter positive values groupSizes argument.\n");
+ return -1;
+ }
+ for(int iter = 0; iter=1))
+ {
+ Scierror(999, "Error: Please enter proper groupPercentages argument. Values should lie between 0-1.\n");
+ return -1;
+ }
+ groupSizesOrPercentagesSum+=groupSizesOrPercentages[iter];
+ }
+ if(!sizeProvided && groupSizesOrPercentagesSum>1)
+ {
+ Scierror(999, "Error: Sum of values of groupPercentages should be less than or equal to one. \n");
+ return -1;
+ }
+ if(sizeProvided)
+ {
+ for(int iter = 0; iter= 0.5)
+ {
+ temp = (int)temp + 1;
+ }
+ else
+ {
+ temp = (int)temp;
+ }
+ }
+ if(tempCount[iter2]==0)
+ {
+ countOutput[iter][iter2] = 0;
+ }
+ else if(tempCount[iter2]-temp<=0)
+ {
+ countOutput[iter][iter2] = tempCount[iter2];
+ tempCount[iter2] = 0;
+ zeroWarning = 1;
+ }
+ else
+ {
+ if(temp==0)
+ {
+ zeroWarning = 1;
+ }
+ countOutput[iter][iter2] = temp;
+ tempCount[iter2] -= temp;
+ }
+ }
+ }
+ countOutput[partitionCount-1] = (int*) malloc(sizeof(int) * descriptionCount);
+ for(int iter = 0; iter
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ /* Calling Sequence
+
+ src = imread("image-location-for-src");
+ [outputImage_1 outputImage_2 ] = pencilSketch(src,sigma_s,sigma_r,shade_factor)
+
+ */
+
+ int opencv_pencilSketch(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double sigma_s,sigma_r,shade_factor;
+ char * funcName= "pencilSketch";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 4, 4);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 2, 2) ;
+
+ Mat src;
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return -1;
+ }
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+
+
+ //for value of sigma_s
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ if (isDoubleType(pvApiCtx, piAddr2) )
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &sigma_s);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_s <= 0) || (sigma_s >= 200))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 200 .\n",funcName,2);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 2);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName, 2);
+ return -1;
+
+ }
+
+
+
+
+
+
+ //for value of sigma_r
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &sigma_r);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_r <= 0) || (sigma_r >= 1))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 1 !\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,3);
+ return -1;
+
+ }
+
+
+ //for shade_factor
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ if (isDoubleType(pvApiCtx, piAddr4) )
+ {
+ if(isScalar(pvApiCtx, piAddr4))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &shade_factor);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+
+ if( (shade_factor <= 0 ) || (shade_factor >= 0.1))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 0.1\n",funcName,4);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar int expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+
+
+
+ Mat output_image_1_channel(src.rows,src.cols,CV_8UC1);
+ Mat output_image_3_channel(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ pencilSketch(src,output_image_1_channel,output_image_3_channel,sigma_s,sigma_r,shade_factor);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ //We need to return 2 images : the first is a 1 channel image and the second is a 3 channel image
+
+ //for the 1 channel image
+ string tempstring = type2str(output_image_1_channel.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image_1_channel,1);
+ free(checker);
+ //now for the 3 channel image
+ string tempstring2 = type2str(output_image_3_channel.type());
+ checker = (char *)malloc(tempstring2.size() + 1);
+ memcpy(checker, tempstring2.c_str(), tempstring2.size() + 1);
+ returnImage(checker,output_image_3_channel,2);
+ free(checker);
+
+
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_pyramid.cpp b/sci_gateway/opencv_pyramid.cpp
new file mode 100644
index 0000000..cf63040
--- /dev/null
+++ b/sci_gateway/opencv_pyramid.cpp
@@ -0,0 +1,157 @@
+/********************************************************
+Author: Diwakar Bhardwaj
+*********************************************************
+Usage :return_image=pyramid(input_image,'direction',level)
+********************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "sciprint.h"
+ #include "../common.h"
+
+ int opencv_pyramid(char *fname, unsigned long fname_len)
+ {
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piLen = NULL;
+ char **direction = NULL;
+ int i,j,k=0,l=0;
+ double alpha, beta,x,n;
+
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 3);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+ Mat image,new_image;
+
+ retrieveImage(image, 1);
+
+ sciErr = getVarAddressFromPosition(pvApiCtx,2, &piAddr2);
+
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ sciErr = getMatrixOfString(pvApiCtx, piAddr2, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr2, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ direction = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ {
+ direction[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+ }
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr2, &iRows, &iCols, piLen, direction);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3 ,&x);
+ if(intErr)
+ return intErr;
+ n=x;
+ k=image.rows;
+ l=image.cols;
+ while(n--)
+ {
+
+ //if expand operation is performed
+ if(strcmp(direction[0], "expand") == 0)
+ {
+
+ try
+ {
+ pyrUp(image, new_image, Size( image.cols*2, image.rows*2 ));
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+ //Size size((k*2)-1,(l*2)-1);
+ //resize(image,new_image,size);
+ }
+
+
+ //if reduced operation is performed
+ else if(strcmp(direction[0], "reduce") == 0)
+ {
+ try
+ {
+ pyrDown( image, new_image, Size( image.cols/2, image.rows/2 ));
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+ }
+ image=new_image;
+
+ }
+
+
+
+
+ int temp = nbInputArgument(pvApiCtx) + 1;
+ string tempstring = type2str(new_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,new_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
+
+
diff --git a/sci_gateway/opencv_regionFill.cpp b/sci_gateway/opencv_regionFill.cpp
new file mode 100644
index 0000000..4e56d75
--- /dev/null
+++ b/sci_gateway/opencv_regionFill.cpp
@@ -0,0 +1,259 @@
+/********************************************************
+Author: Vinay Bhat,Rohan Gurve
+********************************************************
+Usage: return_image = regionFill(input_image,inpaintRadius, column_list, row_list)
+ return_image = regionFill(input_image,inpaintRadius, mask)
+Example:
+ im = regionFill(image, 3,[0 100 100 0], [0 0 100 100])
+ im = regionFill(image, 1, mask)
+********************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "sciprint.h"
+ #include "../common.h"
+
+ int opencv_regionFill(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRowsR=0,iColsR=0,iColsC=0,iRowsC=0;
+ int *piAddr = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ double *pstDataR = NULL;
+ double *pstDataC = NULL;
+ int i, number_of_points;
+ int lineType = 8;
+ double inpaintRadius;
+ int iRet;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 4);
+ CheckOutputArgument(pvApiCtx, 1, 1);
+
+ // Get the input image from the Scilab environment
+ Mat image, mask, mask_orig, fin_image;
+ retrieveImage(image, 1);
+
+ //get the inPaint radius
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ iRet = getScalarDouble(pvApiCtx, piAddr2, &inpaintRadius);
+ if(iRet)
+ {
+ return iRet;
+ }
+
+ if (nbInputArgument(pvApiCtx) == 3)
+ {
+ retrieveImage(mask_orig, 3);
+
+ if(mask_orig.channels()==3)
+ {
+ try
+ {
+ mask_orig.convertTo(mask_orig,CV_8UC3);
+ cvtColor(mask_orig, mask_orig, CV_BGR2GRAY);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ }
+ else
+ {
+ try
+ {
+ mask_orig.convertTo(mask_orig,CV_8UC1);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+ }
+
+
+ mask = mask_orig.clone();
+
+ }
+ else
+ {
+ // Get the address of 3rd argument, the column list
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ // Get the address of the 4th argument, the row list
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ // Get the column list in the form of a matrix
+ // No. of columns = No. of elements in the list
+ // No. of rows = 1
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr3, &iRowsC, &iColsC, &pstDataC);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ if (iRowsC != 1)
+ {
+
+ Scierror(999, "%s","Please enter a list of column coordinates.\n");
+ return -1;
+
+ }
+
+ // Get the row list in the form of a matrix
+ // No. of columns = No. of elements in the list
+ // No. of rows = 1
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr4, &iRowsR, &iColsR, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ if (iRowsR != 1)
+ {
+ sciprint("Please enter a list of row coordinates.\n");
+ return -1;
+ }
+
+ if (iColsC != iColsR)
+ {
+ sciprint("Please ensure number of elements in both row and column lists are equal.\n");
+ return -1;
+ }
+
+ // Number of points is number of columns
+ number_of_points = iColsC;
+
+ // Create the n points which define
+ // the polygon
+ Point points[1][number_of_points];
+
+ for (i = 0; i < number_of_points; i++)
+ {
+ if (pstDataR[i] < 0 || pstDataC[i] < 0)
+ {
+ sciprint("Coordinates cannot be negative.\n");
+ return -1;
+ }
+ else
+ points[0][i] = Point(pstDataR[i], pstDataC[i]);
+ }
+
+ const Point* ppt[1] = { points[0] };
+
+ int npt[] = { number_of_points };
+
+ // Create a new, black, blank image same size as of input
+ mask_orig = Mat::zeros(image.size(),CV_8UC3 );
+
+ // Call the fillPoly OpenCV function
+ // Fill the blank image in the polygon specified
+ // by the points
+
+
+
+ try
+ {
+ fillPoly(mask_orig, ppt, npt, 1, Scalar(255, 255, 255), lineType);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+ try
+ {
+ mask_orig.convertTo(mask_orig,CV_8UC3);
+ cvtColor(mask_orig, mask_orig, CV_BGR2GRAY);
+ // Binary Threshold
+ threshold(mask_orig,mask_orig, 0, 255, THRESH_BINARY);
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+ mask = mask_orig.clone();
+
+ }
+
+
+ try
+ {
+ image.convertTo(image,CV_8U);//convert image to 8 bit
+ inpaint(image, mask, fin_image, inpaintRadius, INPAINT_TELEA);
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ string tempstring = type2str(fin_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker, fin_image, 1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_rgb2gray.cpp b/sci_gateway/opencv_rgb2gray.cpp
new file mode 100644
index 0000000..1bdf4df
--- /dev/null
+++ b/sci_gateway/opencv_rgb2gray.cpp
@@ -0,0 +1,82 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat, Rohan Gurve GCET,Anand */
+/* ==================================================================== */
+/* Syntax : output_image=rgb2gray(sourceimage) */
+/* ==================================================================== */
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include "opencv2/imgproc/imgproc.hpp" //new header file for cvtColor function of opencv
+#include
+using namespace cv;
+using namespace std;
+extern "C"
+{
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "BOOL.h"
+#include
+#include
+#include "../common.h"
+#include
+int opencv_rgb2gray(char *fname, unsigned long fname_len)
+{
+
+ // Error management variable
+ SciErr sciErr;
+ //checking input argument
+ CheckInputArgument(pvApiCtx,1,1);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1)
+ Mat img;
+
+ Mat grayimg = Mat(img.rows,img.cols,CV_8UC1);
+ //calling function
+ retrieveImage(img,1);
+
+
+
+ try
+ {
+ //converting to 8 bit 3 channel
+ img.convertTo(img,CV_8UC3);
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+
+ try
+ {
+ cvtColor(img, grayimg, CV_BGR2GRAY );
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ string tempstring = type2str(grayimg.type());
+ char* checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,grayimg,1);
+ free(checker);
+
+ //returning output variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ ReturnArguments(pvApiCtx);
+ return 0;
+}
+
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_roiPoly.cpp b/sci_gateway/opencv_roiPoly.cpp
new file mode 100644
index 0000000..991a96e
--- /dev/null
+++ b/sci_gateway/opencv_roiPoly.cpp
@@ -0,0 +1,165 @@
+
+/********************************************************
+Author: Vinay Bhat, Rohan Gurve
+********************************************************
+Usage: return_image = roipoly(input_image, column_list, row_list)
+Example:
+ im = roiPoly(image, [0 100 100 0], [0 0 100 100])
+********************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "sciprint.h"
+ #include "../common.h"
+
+ int opencv_roiPoly(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRowsR=0,iColsR=0,iColsC=0,iRowsC=0;
+ int *piAddr = NULL;
+ int *piAddr2 = NULL;
+ double *pstDataR = NULL;
+ double *pstDataC = NULL;
+ int i, number_of_points;
+ int lineType = 8;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 4);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ // Get the input image from the Scilab environment
+ Mat image;
+ retrieveImage(image, 1);
+
+ // Get the address of 2nd argument, the column list
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ // Get the address of the 3rd agument, the row list
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ // Get the column list in the form of a matrix
+ // No. of columns = No. of elements in the list
+ // No. of rows = 1
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRowsC, &iColsC, &pstDataC);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ if (iRowsC != 1)
+ {
+ Scierror(999, "%s","Please enter a list of column coordinates.\n");
+ return -1;
+
+ }
+
+ // Get the row list in the form of a matrix
+ // No. of columns = No. of elements in the list
+ // No. of rows = 1
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr2, &iRowsR, &iColsR, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ if (iRowsR != 1)
+ {
+
+ Scierror(999, "%s","Please enter a list of row coordinates.\n");
+ return -1;
+
+ }
+
+ if (iColsC != iColsR)
+ {
+ Scierror(999, "%s","Please ensure number of elements in both row and column lists are equal.\n");
+ return -1;
+
+
+ }
+
+ // Number of points is number of columns
+ number_of_points = iColsC;
+
+ // Create the n points which define
+ // the polygon
+ Point points[1][number_of_points];
+
+ for (i = 0; i < number_of_points; i++)
+ {
+ if (pstDataR[i] < 0 || pstDataC[i] < 0)
+ {
+ Scierror(999, "%s","Coordinates cannot be negative.\n");
+ return -1;
+
+ }
+ else
+ points[0][i] = Point(pstDataR[i], pstDataC[i]);
+ }
+
+ const Point* ppt[1] = { points[0] };
+
+ int npt[] = { number_of_points };
+
+ // Create a new, white, blank image same size as of input
+ Mat img = Mat::zeros(image.size(), image.type());
+
+ // Call the fillPoly OpenCV function
+ // Fill the blank image in the polygon specified
+ // by the points
+
+ try
+ {
+ fillPoly(img, ppt, npt, 1, Scalar(255, 255, 255), lineType);;
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+
+ string tempstring = type2str(img.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker, img, 1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_seamlessClone.cpp b/sci_gateway/opencv_seamlessClone.cpp
new file mode 100644
index 0000000..8e65ff3
--- /dev/null
+++ b/sci_gateway/opencv_seamlessClone.cpp
@@ -0,0 +1,252 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ /*Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = seamlessClone(src,dst,mask, pointMatirx, flag)
+
+ */
+
+
+ int opencv_seamlessClone(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double * pointMatrix =NULL;
+ int m1,n1;
+ int flag;
+
+ //for point
+ int x,y;
+ double alpha,beta,temp_flag;
+ char * funcName= "seamlessClone";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 5, 5);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src,mask,dst;
+ //retrieveing src
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return 0;
+ }
+
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ //retrieveing dst
+ retrieveImage(dst, 2);
+
+
+
+
+ if(dst.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,2);
+ return -1;
+ }
+
+
+ if(dst.rows < src.rows || dst.cols < src.cols)
+ {
+ Scierror(999, "%s: input argument #%d : size of destination image is less than size of source image! Size of destination image should be atleast equal to the size of source image! \n",funcName,2);
+ return -1;
+ }
+
+
+
+
+ //converting dst to 8 bit 3 channel
+ dst.convertTo(dst,CV_8UC3);
+
+ //retrieveing mask
+ retrieveImage(mask, 3);
+
+ //size of mask should be same as that of src
+ if( (src.rows!=mask.rows) || (src.cols!=mask.cols) )
+ {
+ Scierror(999, "%s: in input argument #%d - size of mask is not equal to size of source image ! Same size required !\n",funcName,3);
+ return -1;
+
+ }
+
+
+
+
+
+ if(mask.channels()==1)
+ {
+ //convert to 8 bit 1 channel
+ mask.convertTo(mask,CV_8UC1);
+ }
+ else if(mask.channels()==3)
+ {
+ //convert to 8 bit 3 channel
+ mask.convertTo(mask,CV_8UC3);
+
+ }
+ else
+ {
+ Scierror(999, "%s: in input argument #%d requires either a 1 or 3 channel image !\n",funcName,3);
+ return -1;
+
+ }
+
+ //for value of p
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ /* Check that the 4th input argument is a real matrix (and not complex) */
+ if ( !isDoubleType(pvApiCtx, piAddr4) || isVarComplex(pvApiCtx, piAddr4) )
+ {
+
+
+ Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n",funcName, 4);
+ return -1;
+ }
+
+ /* get matrix */
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr4, &m1, &n1, &pointMatrix);
+ if (sciErr.iErr)
+ {
+ sciprint("get matrix main");
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ if((m1!=1) || (n1!=2))
+ {
+ Scierror(999, "%s: a 1x2 real matrix expcted for argument #%d .\n",funcName,4);
+ return -1;
+ }
+
+
+ Point p(pointMatrix[0],pointMatrix[1]);
+
+
+
+ //for flag
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ if (isDoubleType(pvApiCtx, piAddr5) )
+ {
+ if(isScalar(pvApiCtx, piAddr5))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr5, &temp_flag);
+ if(intErr)
+ {
+ return intErr;
+ }
+ flag = int(temp_flag);
+
+ if( (flag < 1) || (flag > 3))
+ {
+ Scierror(999, "%s: value of input argument #%d should be 1, 2 or 3 .\n",funcName,5);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 5);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar int expected.\n", funcName, 5);
+ return -1;
+
+ }
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ switch(flag)
+ {
+ case 1:seamlessClone(src,dst,mask, p, output_image,NORMAL_CLONE);
+ break;
+ case 2:seamlessClone(src,dst,mask, p, output_image,MIXED_CLONE);
+ break;
+ case 3:seamlessClone(src,dst,mask, p, output_image,MONOCHROME_TRANSFER);
+ break;
+
+
+ }
+
+
+ }
+
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_stylization.cpp b/sci_gateway/opencv_stylization.cpp
new file mode 100644
index 0000000..c24defe
--- /dev/null
+++ b/sci_gateway/opencv_stylization.cpp
@@ -0,0 +1,179 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ /* Calling Sequence
+
+ src = imread("image-location-for-src");
+ outputImage = stylization(src,sigma_s,sigma_r)
+
+ */
+
+ int opencv_stylization(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double sigma_s,sigma_r;
+ double temp_flag;
+ int flag;
+ char * funcName= "stylization";
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 3);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image .\n",funcName,1);
+ return -1;
+ }
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ //for value of sigma_s
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+ if (isDoubleType(pvApiCtx, piAddr2) )
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &sigma_s);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_s <= 0) || (sigma_s >= 200))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 200 .\n",funcName,2);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 2);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,2);
+ return -1;
+
+ }
+
+
+ //for value of sigma_r
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if ( isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &sigma_r);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (sigma_r <= 0) || (sigma_r >= 1))
+ {
+ Scierror(999, "%s: value of input argument #%d should be between 0 & 1 !\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar float expected.\n", funcName,3);
+ return -1;
+
+ }
+
+
+
+
+
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ stylization(src,output_image,sigma_s,sigma_r);
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_templateMatcher.cpp b/sci_gateway/opencv_templateMatcher.cpp
new file mode 100644
index 0000000..a503f8b
--- /dev/null
+++ b/sci_gateway/opencv_templateMatcher.cpp
@@ -0,0 +1,135 @@
+/********************************************************
+Author: Suraj Prakash,Rohan Gurve
+[return_image,x,y] = templateMatcher(InputArray image, InputArray template_image)
+********************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+
+using namespace cv;
+using namespace std;
+
+extern "C"{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+ int opencv_templateMatcher(char *fname, unsigned long fname_len){
+
+ /// Error management variable
+ SciErr sciErr;
+
+ /// Variables
+ int i, j;
+ int error;
+ int iRows = 0;
+ int iCols = 0;
+ int *piLen = NULL;
+ int *piAddr = NULL;
+
+ double minVal; double maxVal; Point minLoc; Point maxLoc;
+ Point matchLoc;
+
+ /// checking input argument
+ CheckInputArgument(pvApiCtx, 2, 2);
+ CheckOutputArgument(pvApiCtx, 3, 3);
+
+ Mat image, template_image;
+ retrieveImage(image, 1);
+ retrieveImage(template_image, 2);
+
+
+
+ if(image.channels()!=1){
+ Scierror(999,"argument %d requires a single channel image\n",1);
+ return 0;
+ }
+
+ if(template_image.channels()!=1){
+ Scierror(999,"argument %d requires a single channel image\n",2);
+ return 0;
+ }
+
+ if(template_image.rows > image.rows or template_image.cols > image.cols){
+ Scierror(999, "%s: Dimensions of template image is greater then image\n");
+ return 0;
+ }
+
+ //converting image to 8 bit
+ image.convertTo(image,CV_8UC1);
+
+ //converting template_image to type of image
+ template_image.convertTo(template_image,CV_8UC1);
+
+
+ /// generated image is (W - w + 1) * (H - h + 1) and it must be 32 bit floating number with single channel
+
+ Mat new_image(image.rows, image.cols,CV_32FC1);
+
+
+ try
+ {
+
+ matchTemplate(image, template_image, new_image, CV_TM_SQDIFF);
+ normalize( new_image, new_image, 0, 1, NORM_MINMAX, -1, Mat() );
+ /// Localizing the best match with minMaxLoc
+ minMaxLoc( new_image, &minVal, &maxVal, &minLoc, &maxLoc, Mat() );
+ /// For SQDIFF the best matches are lower values
+ matchLoc = minLoc;
+
+
+ }
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return 0;
+
+ }
+
+
+
+
+
+ string tempstring = type2str(new_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker, new_image, 1);
+ free(checker);
+
+ error=createScalarDouble(pvApiCtx,nbInputArgument(pvApiCtx)+2,matchLoc.x);
+ if(error!=0)
+ {
+ sciprint("error occurred");
+ return 0;
+ }
+ error=createScalarDouble(pvApiCtx,nbInputArgument(pvApiCtx)+3,matchLoc.y);
+ if(error!=0)
+ {
+ sciprint("error occurred");
+ return 0;
+ }
+
+
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+ AssignOutputVariable(pvApiCtx, 3) = nbInputArgument(pvApiCtx) + 3;
+
+
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_textureFlattening.cpp b/sci_gateway/opencv_textureFlattening.cpp
new file mode 100644
index 0000000..d7db94f
--- /dev/null
+++ b/sci_gateway/opencv_textureFlattening.cpp
@@ -0,0 +1,263 @@
+/********************************************************
+ Author: Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/opencv.hpp"
+#include "opencv2/photo.hpp"
+#include
+
+
+using namespace cv;
+using namespace std;
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include
+ #include "../common.h"
+
+/* Calling Sequence
+
+ src = imread("image-location-for-src");
+ mask = roiFreeHand(src); //we can also use other function to create the mask
+ outputImage = textureFlattening(src,mask,low_threshold,high_threshold, kernel_size);
+*/
+
+ int opencv_textureFlattening(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j,k;
+ double * pointMatrix =NULL;
+ int m1,n1;
+ int kernel_size;
+
+ //for point
+ int x,y;
+ double low_threshold,high_threshold,temp_kernel_size;
+ char * funcName= "textureFlattening";
+ //checking input argument
+ CheckInputArgument(pvApiCtx,5,5);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src,mask,dst;
+ //retrieveing src
+ retrieveImage(src, 1);
+
+ if(src.channels()!=3)
+ {
+ Scierror(999, "%s: input argument #%d requires a 3 channel image.\n",funcName,1);
+ return -1;
+ }
+
+ //converting src to 8 bit 3 channel
+ src.convertTo(src,CV_8UC3);
+
+ //retrieveing mask
+ retrieveImage(mask, 2);
+
+ //size of mask should be same as that of src
+ if( (src.rows!=mask.rows) || (src.cols!=mask.cols) )
+ {
+ Scierror(999, "%s: in input argument #%d - size of mask is not equal to size of source image ! Same size required !\n",funcName,2);
+ return -1;
+
+ }
+
+ if(mask.channels()==1)
+ {
+ //convert to 8 bit 1 channel
+ mask.convertTo(mask,CV_8UC1);
+ }
+ else if(mask.channels()==3)
+ {
+ //convert to 8 bit 3 channel
+ mask.convertTo(mask,CV_8UC3);
+
+ }
+ else
+ {
+ Scierror(999, "%s: in input argument #%d requires either a 1 or 3 channel image !\n",funcName,2);
+ return -1;
+
+ }
+
+
+ // for low threshold
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ if (isDoubleType(pvApiCtx, piAddr3) )
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &low_threshold);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (low_threshold < 0) || (low_threshold > 100))
+ {
+ Scierror(999, "%s: Out of range! value of input argument #%d should be from 0 to 100 .\n",funcName,3);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 3);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar double expected.\n", funcName,3);
+ return -1;
+
+ }
+
+
+
+
+ //for high threshold
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ if (isDoubleType(pvApiCtx, piAddr4) )
+ {
+ if(isScalar(pvApiCtx, piAddr4))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &high_threshold);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if( (high_threshold < 100 || high_threshold > 255) )
+ {
+ Scierror(999, "%s: Out of range! argument #%d should be greater than 100 and less than or equal to 255 .\n",funcName,4);
+ return -1;
+
+ }
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar double expected.\n", funcName, 4);
+ return -1;
+
+ }
+
+ //for kernel_size
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+
+
+ if (isDoubleType(pvApiCtx, piAddr5) )
+ {
+ if(isScalar(pvApiCtx, piAddr5))
+ {
+
+ intErr = getScalarDouble(pvApiCtx, piAddr5, &temp_kernel_size);
+ if(intErr)
+ {
+ return intErr;
+ }
+ kernel_size = int(temp_kernel_size);
+
+ if(! (kernel_size == 3 || kernel_size == 5 || kernel_size == 7))
+ {
+ Scierror(999, "%s: For input argument #%d : size of kernel can only be 3, 5 or 7.\n",funcName,5);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", funcName, 5);
+ return -1;
+
+ }
+
+ }
+ else
+ {
+ Scierror(999, "%s: Wrong type for input argument #%d: A scalar int expected.\n", funcName, 5);
+ return -1;
+
+ }
+
+ Mat output_image(src.rows,src.cols,CV_8UC3);
+
+ try
+ {
+ textureFlattening(src,mask,output_image,low_threshold,high_threshold, kernel_size);
+ }
+
+ catch(Exception& e)
+ {
+ const char* err = e.what();
+ Scierror(999, "%s",err);
+ return -1;
+
+ }
+
+ string tempstring = type2str(output_image.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_image,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_watershed.cpp b/sci_gateway/opencv_watershed.cpp
new file mode 100644
index 0000000..54c2bda
--- /dev/null
+++ b/sci_gateway/opencv_watershed.cpp
@@ -0,0 +1,160 @@
+/********************************************************
+Author: Tess Zacharias, Ashish Manatosh Barik , Rohan Gurve
+********************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "sciprint.h"
+ #include "../common.h"
+
+ int opencv_watershed(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+
+ int n= *getNbInputArgument(pvApiCtx);
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 2);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src, markerMask;
+ retrieveImage(src, 1);
+
+ if(n == 2)
+ {
+ retrieveImage(markerMask, 2);
+ }
+
+
+ Mat srcGray, dist, dist_8u, dst;
+
+ try
+ {
+
+ // converting the input images to 8-bit and 1 channel images
+ src.convertTo(srcGray, CV_8U);
+ cvtColor(srcGray, srcGray, CV_BGR2GRAY);
+
+ src.convertTo(src, CV_8U);
+
+ // OpenCV functionalities
+
+ if(n == 1)
+ {
+
+
+ threshold(srcGray, srcGray, 40, 255, CV_THRESH_BINARY);
+
+ // Perform the distance transform algorithm
+ distanceTransform(srcGray, dist, CV_DIST_L2, 3);
+
+ // Normalize the distance image for range = {0.0, 1.0}
+ // so we can visualize and threshold it
+ normalize(dist, dist, 0, 1., cv::NORM_MINMAX);
+
+ // Threshold to obtain the peaks
+ // This will be the markers for the foreground objects
+ threshold(dist, dist, .5, 1., CV_THRESH_BINARY);
+
+ // Create the CV_8U version of the distance image
+ // It is needed for cv::findContours()
+ dist.convertTo(dist_8u, CV_8U);
+ }
+ else if(n == 2)
+ {
+
+ markerMask.convertTo(markerMask, CV_8U);
+ //cvtColor(markerMask, markerMask, CV_BGR2GRAY);
+
+ dist_8u = markerMask.clone();
+
+
+ threshold(dist_8u, dist_8u, 0, 255, CV_THRESH_BINARY);
+
+ }
+
+
+ // Find total markers
+ vector > contours;
+ findContours(dist_8u, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
+ int ncomp = contours.size();
+
+ // Create the marker image for the watershed algorithm
+ Mat markers = Mat::zeros(dist_8u.size(), CV_32SC1);
+ // Draw the foreground markers
+ for (int i = 0; i < ncomp; i++)
+ drawContours(markers, contours, i, Scalar::all(i+1), -1);
+
+ // Draw the background marker
+ circle(markers, cv::Point(5,5), 3, CV_RGB(255,255,255), -1);
+ //imshow("markers", markers*10000);
+ // Perform the watershed algorithm
+
+ watershed(src, markers);
+ // Generate random colors
+ vector colors;
+
+ for (int i = 0; i < ncomp; i++)
+ {
+ int b = theRNG().uniform(0, 255);
+ int g = theRNG().uniform(0, 255);
+ int r = theRNG().uniform(0, 255);
+
+ colors.push_back(Vec3b((uchar)b, (uchar)g, (uchar)r));
+ }
+
+ // Create the result image
+ dst = Mat::zeros(markers.size(), CV_8UC3);
+ // Fill labeled objects with random colors
+ for (int i = 0; i < markers.rows; i++)
+ {
+ for (int j = 0; j < markers.cols; j++)
+ {
+ int index = markers.at(i,j);
+ if (index > 0 && index <= ncomp)
+ dst.at(i,j) = colors[index-1];
+ else
+ dst.at(i,j) = Vec3b(0,0,0);
+ }
+ }
+
+ }
+ catch(Exception& e)
+ {
+ const char* err=e.what();
+ Scierror(999, "%s", err);
+ }
+
+
+ string tempstring = type2str(dst.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,dst,1);
+ free(checker);
+
+ //Assigning the list as the Output Variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+ //Returning the Output Variables as arguments to the Scilab environment
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+
+ }
+}