From a6df67e8bcd5159cde27556f4f6a315f8dc2215f Mon Sep 17 00:00:00 2001
From: shamikam
Date: Mon, 16 Jan 2017 02:56:17 +0530
Subject: First Commit
---
builder.sce | 39 +
builder.sce~ | 39 +
cleaner.sce | 38 +
etc/FOSSEE_Image_Processing_Toolbox.quit | 34 +
etc/FOSSEE_Image_Processing_Toolbox.quit~ | 34 +
etc/FOSSEE_Image_Processing_Toolbox.start | 77 +
etc/FOSSEE_Image_Processing_Toolbox.start~ | 77 +
etc/FOSSEE_Optimization_Toolbox.quit~ | 34 +
etc/FOSSEE_Optimization_Toolbox.start~ | 85 +
help/builder_help.sce | 21 +
help/builder_help.sce~ | 21 +
help/en_US/build_help.sce | 17 +
help/en_US/build_help.sce~ | 17 +
help/en_US/master_help.xml | 19 +
help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS | 1 +
.../scilab_en_US_help/JavaHelpSearch/DOCS.TAB | 1 +
.../en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS | 1 +
.../scilab_en_US_help/JavaHelpSearch/POSITIONS | 1 +
help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA | 2 +
help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP | Bin 0 -> 2048 bytes
help/en_US/scilab_en_US_help/ScilabCaution.png | Bin 0 -> 513 bytes
help/en_US/scilab_en_US_help/ScilabEdit.png | Bin 0 -> 414 bytes
help/en_US/scilab_en_US_help/ScilabExecute.png | Bin 0 -> 535 bytes
help/en_US/scilab_en_US_help/ScilabImportant.png | Bin 0 -> 637 bytes
help/en_US/scilab_en_US_help/ScilabNote.png | Bin 0 -> 687 bytes
help/en_US/scilab_en_US_help/ScilabTip.png | Bin 0 -> 687 bytes
help/en_US/scilab_en_US_help/ScilabWarning.png | Bin 0 -> 513 bytes
help/en_US/scilab_en_US_help/c_code.css | 54 +
help/en_US/scilab_en_US_help/index.html | 52 +
help/en_US/scilab_en_US_help/jhelpidx.xml | 3 +
help/en_US/scilab_en_US_help/jhelpmap.jhm | 5 +
help/en_US/scilab_en_US_help/jhelpset.hs | 28 +
help/en_US/scilab_en_US_help/jhelptoc.xml | 6 +
help/en_US/scilab_en_US_help/scilab_code.css | 96 +
help/en_US/scilab_en_US_help/style.css | 350 ++
help/en_US/scilab_en_US_help/xml_code.css | 94 +
jar/scilab_en_US_help.jar | Bin 0 -> 11352 bytes
lena.jpeg | Bin 0 -> 8179 bytes
loader.sce | 10 +
macros/BRISKPoints.bin | Bin 0 -> 3984 bytes
macros/BRISKPoints.sci | 30 +
macros/CascadeObjectDetector.bin | Bin 0 -> 4516 bytes
macros/CascadeObjectDetector.sci | 31 +
macros/DCT.bin | Bin 0 -> 3216 bytes
macros/DCT.sci | 33 +
macros/Deinterlacer.bin | Bin 0 -> 7228 bytes
macros/Deinterlacer.sci | 56 +
macros/FFT.bin | Bin 0 -> 2288 bytes
macros/FFT.sci | 22 +
macros/ForegroundDetector.bin | Bin 0 -> 10240 bytes
macros/ForegroundDetector.sci | 55 +
macros/IDCT.bin | Bin 0 -> 4956 bytes
macros/IDCT.sci | 46 +
macros/IFFT.bin | Bin 0 -> 2648 bytes
macros/IFFT.sci | 31 +
macros/KalmanFilter.bin | Bin 0 -> 4016 bytes
macros/KalmanFilter.sci | 25 +
macros/SURFPoints.bin | Bin 0 -> 4752 bytes
macros/SURFPoints.sci | 33 +
macros/TemplateMatcher.bin | Bin 0 -> 6668 bytes
macros/TemplateMatcher.sci | 60 +
macros/VideoReader.bin | Bin 0 -> 5536 bytes
macros/VideoReader.sci | 37 +
macros/adapthisteq.bin | Bin 0 -> 1664 bytes
macros/adapthisteq.sci | 16 +
macros/affine2d.bin | Bin 0 -> 860 bytes
macros/affine2d.sci | 12 +
macros/approxpolyDP.bin | Bin 0 -> 368 bytes
macros/approxpolyDP.sci | 5 +
macros/arclength.bin | Bin 0 -> 308 bytes
macros/arclength.sci | 5 +
macros/arrowedline.bin | Bin 0 -> 3872 bytes
macros/arrowedline.sci | 25 +
macros/autoCorrelator.bin | Bin 0 -> 7004 bytes
macros/autoCorrelator.sci | 46 +
macros/bagOfFeatures.bin | Bin 0 -> 8280 bytes
macros/bagOfFeatures.sci | 50 +
macros/bagStructToList.bin | Bin 0 -> 2536 bytes
macros/bagStructToList.sci | 16 +
macros/bbox2points.bin | Bin 0 -> 2388 bytes
macros/bbox2points.sci | 24 +
macros/bboxOverlapRatio.bin | Bin 0 -> 4864 bytes
macros/bboxOverlapRatio.sci | 37 +
macros/bilateralFilter.bin | Bin 0 -> 1044 bytes
macros/bilateralFilter.sci | 13 +
macros/binaryFeatures.bin | Bin 0 -> 4672 bytes
macros/binaryFeatures.sci | 34 +
macros/blobAnalysis.bin | Bin 0 -> 15592 bytes
macros/blobAnalysis.sci | 103 +
macros/blur.bin | Bin 0 -> 1088 bytes
macros/blur.sci | 9 +
macros/borderInterpolate.bin | Bin 0 -> 368 bytes
macros/borderInterpolate.sci | 6 +
macros/boundingRect.bin | Bin 0 -> 240 bytes
macros/boundingRect.sci | 3 +
macros/boxfilter.bin | Bin 0 -> 1208 bytes
macros/boxfilter.sci | 9 +
macros/buildmacros.sce | 2 +
macros/bundleAdjustment.bin | Bin 0 -> 4876 bytes
macros/bundleAdjustment.sci | 29 +
macros/bwlookup.bin | Bin 0 -> 904 bytes
macros/bwlookup.sci | 8 +
macros/bwulterode.bin | Bin 0 -> 864 bytes
macros/bwulterode.sci | 13 +
macros/cameraMatrix.bin | Bin 0 -> 4460 bytes
macros/cameraMatrix.sci | 28 +
macros/cameraParameters.bin | Bin 0 -> 39564 bytes
macros/cameraParameters.sci | 242 +
macros/canny.bin | Bin 0 -> 1088 bytes
macros/canny.sci | 9 +
macros/checkCCE.bin | Bin 0 -> 1348 bytes
macros/checkCCE.sci | 11 +
macros/checkCEE.bin | Bin 0 -> 3292 bytes
macros/checkCEE.sci | 22 +
macros/checkCIE.bin | Bin 0 -> 6136 bytes
macros/checkCIE.sci | 27 +
macros/checkSCE.bin | Bin 0 -> 4712 bytes
macros/checkSCE.sci | 29 +
macros/checkStereoParam.bin | Bin 0 -> 7584 bytes
macros/checkStereoParam.sci | 33 +
macros/circle.bin | Bin 0 -> 1388 bytes
macros/circle.sci | 9 +
macros/classifierToList.bin | Bin 0 -> 1092 bytes
macros/classifierToList.sci | 10 +
macros/clipline.bin | Bin 0 -> 540 bytes
macros/clipline.sci | 3 +
macros/contourarea.bin | Bin 0 -> 300 bytes
macros/contourarea.sci | 3 +
macros/convexhull.bin | Bin 0 -> 364 bytes
macros/convexhull.sci | 4 +
macros/convmtx2.bin | Bin 0 -> 984 bytes
macros/convmtx2.sci | 17 +
macros/convolver.bin | Bin 0 -> 1024 bytes
macros/convolver.sci | 8 +
macros/copymakeborder.bin | Bin 0 -> 1860 bytes
macros/copymakeborder.sci | 20 +
macros/corner.bin | Bin 0 -> 1832 bytes
macros/corner.sci | 26 +
macros/cornerEigenValsAndVecs.bin | Bin 0 -> 944 bytes
macros/cornerEigenValsAndVecs.sci | 7 +
macros/cornerHarris.bin | Bin 0 -> 1004 bytes
macros/cornerHarris.sci | 7 +
macros/cornerMinEigenVal.bin | Bin 0 -> 944 bytes
macros/cornerMinEigenVal.sci | 7 +
macros/crossCorrelator.bin | Bin 0 -> 7740 bytes
macros/crossCorrelator.sci | 48 +
macros/cvHoughLines.bin | Bin 0 -> 4008 bytes
macros/cvHoughLines.sci | 29 +
macros/cvMaximum.bin | Bin 0 -> 43224 bytes
macros/cvMaximum.sci | 295 ++
macros/cvMean.bin | Bin 0 -> 28476 bytes
macros/cvMean.sci | 217 +
macros/cvMedian.bin | Bin 0 -> 16868 bytes
macros/cvMedian.sci | 119 +
macros/cvMinimum.bin | Bin 0 -> 47824 bytes
macros/cvMinimum.sci | 311 ++
macros/cvStandardDeviation.bin | Bin 0 -> 29096 bytes
macros/cvStandardDeviation.sci | 217 +
macros/cvVariance.bin | Bin 0 -> 28672 bytes
macros/cvVariance.sci | 217 +
macros/cv_imread.bin | Bin 0 -> 724 bytes
macros/cv_imread.sci | 11 +
macros/cv_imread.sci~ | 11 +
macros/cvtColor.bin | Bin 0 -> 1476 bytes
macros/cvtColor.sci | 20 +
macros/dctmtx.bin | Bin 0 -> 244 bytes
macros/dctmtx.sci | 4 +
macros/decorrstretch.bin | Bin 0 -> 860 bytes
macros/decorrstretch.sci | 12 +
macros/demosaic.bin | Bin 0 -> 964 bytes
macros/demosaic.sci | 8 +
macros/detectBRISKFeatures.bin | Bin 0 -> 9856 bytes
macros/detectBRISKFeatures.sci | 47 +
macros/detectCheckerboardPoints.bin | Bin 0 -> 7168 bytes
macros/detectCheckerboardPoints.sci | 50 +
macros/detectFASTFeatures.bin | Bin 0 -> 9556 bytes
macros/detectFASTFeatures.sci | 53 +
macros/detectHarrisFeatures.bin | Bin 0 -> 8564 bytes
macros/detectHarrisFeatures.sci | 52 +
macros/detectMSERFeatures.bin | Bin 0 -> 12708 bytes
macros/detectMSERFeatures.sci | 57 +
macros/detectMinEigenFeatures.bin | Bin 0 -> 7692 bytes
macros/detectMinEigenFeatures.sci | 50 +
macros/detectSURFFeatures.bin | Bin 0 -> 12224 bytes
macros/detectSURFFeatures.sci | 45 +
macros/dilate.bin | Bin 0 -> 1084 bytes
macros/dilate.sci | 8 +
macros/displayErrors.bin | Bin 0 -> 38552 bytes
macros/displayErrors.sci | 249 ++
macros/ellipse.sce | 9 +
macros/ellipse2poly.bin | Bin 0 -> 660 bytes
macros/ellipse2poly.sci | 3 +
macros/erode.bin | Bin 0 -> 1088 bytes
macros/erode.sci | 9 +
macros/estimateFundamentalMatrix.bin | Bin 0 -> 7588 bytes
macros/estimateFundamentalMatrix.sci | 41 +
macros/estimateGeometricTransform.bin | Bin 0 -> 572 bytes
macros/estimateGeometricTransform.sci | 5 +
macros/estimateUncalibratedRectification.bin | Bin 0 -> 5644 bytes
macros/estimateUncalibratedRectification.sci | 35 +
macros/evaluate.bin | Bin 0 -> 3400 bytes
macros/evaluate.sci | 31 +
macros/evaluateImageRetrieval.bin | Bin 0 -> 13080 bytes
macros/evaluateImageRetrieval.sci | 104 +
macros/extractFeatures.bin | Bin 0 -> 28204 bytes
macros/extractFeatures.sci | 168 +
macros/extractHOGFeatures.bin | Bin 0 -> 3716 bytes
macros/extractHOGFeatures.sci | 24 +
macros/extractLBPFeatures.bin | Bin 0 -> 11004 bytes
macros/extractLBPFeatures.sci | 46 +
macros/fftshift.bin | Bin 0 -> 848 bytes
macros/fftshift.sci | 9 +
macros/fillconvexpoly.bin | Bin 0 -> 1264 bytes
macros/fillconvexpoly.sci | 8 +
macros/filter.bin | Bin 0 -> 1144 bytes
macros/filter.sci | 8 +
macros/findcontours.bin | Bin 0 -> 1004 bytes
macros/findcontours.sci | 7 +
macros/fitellipse.bin | Bin 0 -> 788 bytes
macros/fitellipse.sci | 4 +
macros/fsamp2.bin | Bin 0 -> 1928 bytes
macros/fsamp2.sci | 31 +
macros/ftrans2.bin | Bin 0 -> 1244 bytes
macros/ftrans2.sci | 25 +
macros/gabor.bin | Bin 0 -> 688 bytes
macros/gabor.sci | 6 +
macros/gaussianblur.bin | Bin 0 -> 1004 bytes
macros/gaussianblur.sci | 7 +
macros/genCheckerboardPoints.bin | Bin 0 -> 3332 bytes
macros/genCheckerboardPoints.sci | 26 +
macros/geometricshearer.bin | Bin 0 -> 3820 bytes
macros/geometricshearer.sci | 33 +
macros/getStructuringElement.bin | Bin 0 -> 488 bytes
macros/getStructuringElement.sci | 5 +
macros/getTextSize.bin | Bin 0 -> 472 bytes
macros/getTextSize.sci | 3 +
macros/getgaussiankernel.bin | Bin 0 -> 368 bytes
macros/getgaussiankernel.sci | 5 +
macros/getkerneltype.bin | Bin 0 -> 364 bytes
macros/getkerneltype.sci | 4 +
macros/getrectsubpix.bin | Bin 0 -> 1164 bytes
macros/getrectsubpix.sci | 13 +
macros/getrotationmatrix2d.bin | Bin 0 -> 360 bytes
macros/getrotationmatrix2d.sci | 3 +
macros/goodfeaturestotrack.bin | Bin 0 -> 748 bytes
macros/goodfeaturestotrack.sci | 7 +
macros/grayconnected.bin | Bin 0 -> 2352 bytes
macros/grayconnected.sci | 21 +
macros/graycoprops.bin | Bin 0 -> 1328 bytes
macros/graycoprops.sci | 19 +
macros/graydiffweight.bin | Bin 0 -> 908 bytes
macros/graydiffweight.sci | 9 +
macros/graydist.bin | Bin 0 -> 924 bytes
macros/graydist.sci | 13 +
macros/has_frame.bin | Bin 0 -> 2368 bytes
macros/has_frame.sci | 22 +
macros/histeq.bin | Bin 0 -> 848 bytes
macros/histeq.sci | 9 +
macros/houghcircles.bin | Bin 0 -> 1124 bytes
macros/houghcircles.sci | 7 +
macros/houghlines.bin | Bin 0 -> 676 bytes
macros/houghlines.sci | 4 +
macros/houghlinesp.bin | Bin 0 -> 688 bytes
macros/houghlinesp.sci | 7 +
macros/ifftshift.bin | Bin 0 -> 860 bytes
macros/ifftshift.sci | 12 +
macros/im2double.bin | Bin 0 -> 864 bytes
macros/im2double.sci | 13 +
macros/imadd.bin | Bin 0 -> 452 bytes
macros/imadd.sci | 7 +
macros/imageSet.bin | Bin 0 -> 6236 bytes
macros/imageSet.sci | 47 +
macros/imageSetToList.bin | Bin 0 -> 4456 bytes
macros/imageSetToList.sci | 30 +
macros/imboxfilt3.bin | Bin 0 -> 1688 bytes
macros/imboxfilt3.sci | 28 +
macros/imcomplement.bin | Bin 0 -> 864 bytes
macros/imcomplement.sci | 13 +
macros/imcontour.bin | Bin 0 -> 388 bytes
macros/imcontour.sci | 7 +
macros/imcontrast.bin | Bin 0 -> 508 bytes
macros/imcontrast.sci | 7 +
macros/imcrop.bin | Bin 0 -> 680 bytes
macros/imcrop.sci | 5 +
macros/imcrop.sci~ | 5 +
macros/imdivide.bin | Bin 0 -> 308 bytes
macros/imdivide.sci | 5 +
macros/imextendedmax.bin | Bin 0 -> 924 bytes
macros/imextendedmax.sci | 13 +
macros/imextendedmin.bin | Bin 0 -> 924 bytes
macros/imextendedmin.sci | 13 +
macros/imfill.bin | Bin 0 -> 1380 bytes
macros/imfill.sci | 20 +
macros/imfindcircles.bin | Bin 0 -> 1916 bytes
macros/imfindcircles.sci | 25 +
macros/imfuse.bin | Bin 0 -> 1176 bytes
macros/imfuse.sci | 13 +
macros/imgSetToList.bin | Bin 0 -> 10556 bytes
macros/imgSetToList.sci | 50 +
macros/imgaborfit.bin | Bin 0 -> 984 bytes
macros/imgaborfit.sci | 13 +
macros/imgaussfilt3.bin | Bin 0 -> 1004 bytes
macros/imgaussfilt3.sci | 7 +
macros/imguidedfilter.bin | Bin 0 -> 2072 bytes
macros/imguidedfilter.sci | 26 +
macros/imhistmatch.bin | Bin 0 -> 1896 bytes
macros/imhistmatch.sci | 17 +
macros/imhmin.bin | Bin 0 -> 1068 bytes
macros/imhmin.sci | 15 +
macros/imhmin.sci~ | 15 +
macros/imimposemin.bin | Bin 0 -> 784 bytes
macros/imimposemin.sci | 11 +
macros/immultiply.bin | Bin 0 -> 780 bytes
macros/immultiply.sci | 10 +
macros/impixel.bin | Bin 0 -> 500 bytes
macros/impixel.sci | 5 +
macros/imread.bin | Bin 0 -> 856 bytes
macros/imread.sci | 11 +
macros/imread.sci~ | 11 +
macros/imrect.bin | Bin 0 -> 964 bytes
macros/imrect.sci | 8 +
macros/imresize.bin | Bin 0 -> 964 bytes
macros/imresize.sci | 8 +
macros/imsharpen.bin | Bin 0 -> 1600 bytes
macros/imsharpen.sci | 18 +
macros/imsharpen.sci~ | 18 +
macros/imshow.bin | Bin 0 -> 4052 bytes
macros/imshow.sci | 26 +
macros/imshowpair.bin | Bin 0 -> 1080 bytes
macros/imshowpair.sci | 8 +
macros/imsubtract.bin | Bin 0 -> 308 bytes
macros/imsubtract.sci | 5 +
macros/imwarp.bin | Bin 0 -> 904 bytes
macros/imwarp.sci | 8 +
macros/imwrite.bin | Bin 0 -> 412 bytes
macros/imwrite.sci | 4 +
macros/ind2gray.bin | Bin 0 -> 904 bytes
macros/ind2gray.sci | 8 +
macros/indexImages.bin | Bin 0 -> 7548 bytes
macros/indexImages.sci | 54 +
macros/indexImages.sci~ | 53 +
macros/integralFilter.bin | Bin 0 -> 4016 bytes
macros/integralFilter.sci | 29 +
macros/integralImage.bin | Bin 0 -> 1380 bytes
macros/integralImage.sci | 20 +
macros/integralImage.sci~ | 20 +
macros/integralKernel.bin | Bin 0 -> 3580 bytes
macros/integralKernel.sci | 27 +
macros/invertedIndexImages.bin | Bin 0 -> 5144 bytes
macros/invertedIndexImages.sci | 32 +
macros/isEpipoleInImage.bin | Bin 0 -> 6340 bytes
macros/isEpipoleInImage.sci | 48 +
macros/lab2double.bin | Bin 0 -> 708 bytes
macros/lab2double.sci | 7 +
macros/lab2rgb.bin | Bin 0 -> 708 bytes
macros/lab2rgb.sci | 7 +
macros/lab2uint16.bin | Bin 0 -> 708 bytes
macros/lab2uint16.sci | 7 +
macros/lab2uint8.bin | Bin 0 -> 708 bytes
macros/lab2uint8.sci | 7 +
macros/lab2xyz.bin | Bin 0 -> 1912 bytes
macros/lab2xyz.sci | 20 +
macros/laplacian.bin | Bin 0 -> 1004 bytes
macros/laplacian.sci | 7 +
macros/lib | Bin 0 -> 5652 bytes
macros/line.bin | Bin 0 -> 1364 bytes
macros/line.sci | 7 +
macros/lineToBorderPoints.bin | Bin 0 -> 4464 bytes
macros/lineToBorderPoints.sci | 29 +
macros/localMaximaFinder.bin | Bin 0 -> 14332 bytes
macros/localMaximaFinder.sci | 118 +
macros/makecform.bin | Bin 0 -> 376 bytes
macros/makecform.sci | 4 +
macros/matchFeatures.bin | Bin 0 -> 13064 bytes
macros/matchFeatures.sci | 62 +
macros/mattolist.bin | Bin 0 -> 844 bytes
macros/mattolist.sci | 9 +
macros/mattolist.sci~ | 9 +
macros/mean.bin | Bin 0 -> 376 bytes
macros/mean.sci | 4 +
macros/medianblur.bin | Bin 0 -> 824 bytes
macros/medianblur.sci | 7 +
macros/minAreaRect.bin | Bin 0 -> 788 bytes
macros/minAreaRect.sci | 4 +
macros/minimumenclosingcirlce.bin | Bin 0 -> 608 bytes
macros/minimumenclosingcirlce.sci | 4 +
macros/montage.bin | Bin 0 -> 832 bytes
macros/montage.sci | 8 +
macros/morphologyEx.bin | Bin 0 -> 1232 bytes
macros/morphologyEx.sci | 15 +
macros/names | 219 +
macros/ntsc2rgb.bin | Bin 0 -> 828 bytes
macros/ntsc2rgb.sci | 7 +
macros/ocr.bin | Bin 0 -> 3076 bytes
macros/ocr.sci | 27 +
macros/opencv_imread.bin | Bin 0 -> 724 bytes
macros/opencv_imread.sci | 11 +
macros/opticalFlowFarneback.bin | Bin 0 -> 4788 bytes
macros/opticalFlowFarneback.sci | 21 +
macros/partition.bin | Bin 0 -> 7184 bytes
macros/partition.sci | 52 +
macros/peopleDetector.bin | Bin 0 -> 12088 bytes
macros/peopleDetector.sci | 79 +
macros/predict.bin | Bin 0 -> 3520 bytes
macros/predict.sci | 32 +
macros/puttext.bin | Bin 0 -> 3824 bytes
macros/puttext.sci | 31 +
macros/pyrDown.bin | Bin 0 -> 1028 bytes
macros/pyrDown.sci | 9 +
macros/pyrMeanShiftFiltering.bin | Bin 0 -> 888 bytes
macros/pyrMeanShiftFiltering.sci | 8 +
macros/pyrMeanShiftFiltering.sci~ | 8 +
macros/pyrUp.bin | Bin 0 -> 1028 bytes
macros/pyrUp.sci | 9 +
macros/pyramid.bin | Bin 0 -> 5268 bytes
macros/pyramid.sci | 35 +
macros/readForegroundMask.bin | Bin 0 -> 3796 bytes
macros/readForegroundMask.sci | 37 +
macros/readframe.bin | Bin 0 -> 2264 bytes
macros/readframe.sci | 23 +
macros/rectangle.bin | Bin 0 -> 1448 bytes
macros/rectangle.sci | 9 +
macros/rectifyStereoImages.bin | Bin 0 -> 8508 bytes
macros/rectifyStereoImages.sci | 59 +
macros/rectifyStereoImages.sci~ | 59 +
macros/regionfill.bin | Bin 0 -> 1576 bytes
macros/regionfill.sci | 18 +
macros/retrieveImages.bin | Bin 0 -> 12300 bytes
macros/retrieveImages.sci | 103 +
macros/rgb2lab.bin | Bin 0 -> 932 bytes
macros/rgb2lab.sci | 10 +
macros/rgb2ntsc.bin | Bin 0 -> 844 bytes
macros/rgb2ntsc.sci | 8 +
macros/rgb2xyz.bin | Bin 0 -> 844 bytes
macros/rgb2xyz.sci | 8 +
macros/roifill.bin | Bin 0 -> 2216 bytes
macros/roifill.sci | 28 +
macros/roipoly.bin | Bin 0 -> 984 bytes
macros/roipoly.sci | 13 +
macros/rotationVectorToMatrix.bin | Bin 0 -> 1860 bytes
macros/rotationVectorToMatrix.sci | 24 +
macros/scharr.bin | Bin 0 -> 1164 bytes
macros/scharr.sci | 13 +
macros/selectStrongestBbox.bin | Bin 0 -> 21820 bytes
macros/selectStrongestBbox.sci | 147 +
macros/sepFilter2D.bin | Bin 0 -> 1284 bytes
macros/sepFilter2D.sci | 13 +
macros/show.bin | Bin 0 -> 2540 bytes
macros/show.sci | 18 +
macros/showMatchedFeatures.bin | Bin 0 -> 1040 bytes
macros/showMatchedFeatures.sci | 10 +
macros/showReprojectionErrors.bin | Bin 0 -> 7672 bytes
macros/showReprojectionErrors.sci | 57 +
macros/sobel.bin | Bin 0 -> 1224 bytes
macros/sobel.sci | 13 +
macros/ssim.bin | Bin 0 -> 448 bytes
macros/ssim.sci | 7 +
macros/stereoParameters.bin | Bin 0 -> 10800 bytes
macros/stereoParameters.sci | 85 +
macros/threshold.bin | Bin 0 -> 996 bytes
macros/threshold.sci | 7 +
macros/trainCascadeObjectDetector.bin | Bin 0 -> 28504 bytes
macros/trainCascadeObjectDetector.sci | 163 +
macros/trainImageCategoryClassifier.bin | Bin 0 -> 4076 bytes
macros/trainImageCategoryClassifier.sci | 31 +
macros/triangulatePoints.bin | Bin 0 -> 5720 bytes
macros/triangulatePoints.sci | 40 +
macros/undistort.bin | Bin 0 -> 944 bytes
macros/undistort.sci | 7 +
macros/undistortImage.bin | Bin 0 -> 7684 bytes
macros/undistortImage.sci | 68 +
macros/undistortPoints.bin | Bin 0 -> 6684 bytes
macros/undistortPoints.sci | 37 +
macros/viscircle.bin | Bin 0 -> 3248 bytes
macros/viscircle.sci | 27 +
macros/warpaffine.bin | Bin 0 -> 1144 bytes
macros/warpaffine.sci | 8 +
macros/watershed.bin | Bin 0 -> 856 bytes
macros/watershed.sci | 11 +
macros/whitepoint.bin | Bin 0 -> 672 bytes
macros/whitepoint.sci | 10 +
macros/wiener2.bin | Bin 0 -> 884 bytes
macros/wiener2.sci | 7 +
macros/xyz2double.bin | Bin 0 -> 708 bytes
macros/xyz2double.sci | 7 +
macros/xyz2lab.bin | Bin 0 -> 1916 bytes
macros/xyz2lab.sci | 21 +
macros/xyz2rgb.bin | Bin 0 -> 844 bytes
macros/xyz2rgb.sci | 8 +
macros/xyz2uint16.bin | Bin 0 -> 708 bytes
macros/xyz2uint16.sci | 7 +
sci_gateway/builder_gateway.sce | 13 +
sci_gateway/cleaner_gateway.sce | 15 +
sci_gateway/cpp/builder_gateway_cpp.sce | 364 ++
sci_gateway/cpp/builder_gateway_cpp.sce~ | 364 ++
sci_gateway/cpp/cleaner.sce | 22 +
sci_gateway/cpp/common.cpp | 890 ++++
sci_gateway/cpp/common.cpp~ | 890 ++++
sci_gateway/cpp/common.h | 9 +
sci_gateway/cpp/dctmtx.cpp | 96 +
sci_gateway/cpp/lab2xyz.cpp | 271 ++
.../cpp/libFOSSEE_Image_Processing_Toolbox.c | 52 +
.../cpp/libFOSSEE_Image_Processing_Toolbox.so | Bin 0 -> 99569 bytes
sci_gateway/cpp/loader.sce | 32 +
sci_gateway/cpp/multithresh.cpp | 208 +
sci_gateway/cpp/opencv_adapthisteq.cpp | 201 +
sci_gateway/cpp/opencv_affine2d.cpp | 122 +
sci_gateway/cpp/opencv_applycform.cpp | 371 ++
sci_gateway/cpp/opencv_approxpolyDP.cpp | 151 +
sci_gateway/cpp/opencv_arclength.cpp | 130 +
sci_gateway/cpp/opencv_arrowedline.cpp | 221 +
sci_gateway/cpp/opencv_bilateralfilter.cpp | 112 +
sci_gateway/cpp/opencv_blur.cpp | 134 +
sci_gateway/cpp/opencv_borderInterpolate.cpp | 149 +
sci_gateway/cpp/opencv_boundingRect.cpp | 82 +
sci_gateway/cpp/opencv_boxfilter.cpp | 189 +
sci_gateway/cpp/opencv_bwconvhull.cpp | 129 +
sci_gateway/cpp/opencv_bwdistgeodesic.cpp | 88 +
sci_gateway/cpp/opencv_bwlookup.cpp | 180 +
sci_gateway/cpp/opencv_bwulterode.cpp | 92 +
sci_gateway/cpp/opencv_canny.cpp | 121 +
sci_gateway/cpp/opencv_circle.cpp | 203 +
sci_gateway/cpp/opencv_clipline.cpp | 149 +
sci_gateway/cpp/opencv_contourarea.cpp | 125 +
sci_gateway/cpp/opencv_convexhull.cpp | 140 +
sci_gateway/cpp/opencv_convmtx2.cpp | 129 +
sci_gateway/cpp/opencv_copymakeborder.cpp | 195 +
sci_gateway/cpp/opencv_corner.cpp | 166 +
sci_gateway/cpp/opencv_cornerEigenValsAndVecs.cpp | 127 +
sci_gateway/cpp/opencv_cornerHarris.cpp | 144 +
sci_gateway/cpp/opencv_cornerMinEigenVal.cpp | 125 +
sci_gateway/cpp/opencv_cvtColor.cpp | 183 +
sci_gateway/cpp/opencv_deconvlucy.cpp | 120 +
sci_gateway/cpp/opencv_decorrstretch.cpp | 102 +
sci_gateway/cpp/opencv_demosaic.cpp | 127 +
sci_gateway/cpp/opencv_demosaic.cpp~ | 127 +
sci_gateway/cpp/opencv_dilate.cpp | 119 +
sci_gateway/cpp/opencv_ellipse.cpp | 278 ++
sci_gateway/cpp/opencv_ellipse2poly.cpp | 171 +
sci_gateway/cpp/opencv_erode.cpp | 117 +
sci_gateway/cpp/opencv_fftshift.cpp | 55 +
sci_gateway/cpp/opencv_fillconvexpoly.cpp | 173 +
sci_gateway/cpp/opencv_filter2D.cpp | 184 +
sci_gateway/cpp/opencv_findContours.cpp | 199 +
sci_gateway/cpp/opencv_fitellipse.cpp | 125 +
sci_gateway/cpp/opencv_fsamp2.cpp | 157 +
sci_gateway/cpp/opencv_ftrans2.cpp | 199 +
sci_gateway/cpp/opencv_gabor.cpp | 129 +
sci_gateway/cpp/opencv_gaussianblur.cpp | 132 +
sci_gateway/cpp/opencv_getStructuringElement.cpp | 147 +
sci_gateway/cpp/opencv_getTextSize.cpp | 188 +
sci_gateway/cpp/opencv_getgaussiankernel.cpp | 142 +
sci_gateway/cpp/opencv_getkerneltype.cpp | 118 +
sci_gateway/cpp/opencv_getrectsubpix.cpp | 142 +
sci_gateway/cpp/opencv_getrotationmatrix2D.cpp | 121 +
sci_gateway/cpp/opencv_goodfeaturestotrack.cpp | 168 +
sci_gateway/cpp/opencv_grayconnected.cpp | 145 +
sci_gateway/cpp/opencv_graycoprops.cpp | 408 ++
sci_gateway/cpp/opencv_graydiffweight.cpp | 85 +
sci_gateway/cpp/opencv_graydist.cpp | 81 +
sci_gateway/cpp/opencv_histeq.cpp | 63 +
sci_gateway/cpp/opencv_houghcircles.cpp | 164 +
sci_gateway/cpp/opencv_houghlines.cpp | 133 +
sci_gateway/cpp/opencv_houghlinesp.cpp | 134 +
sci_gateway/cpp/opencv_ifftshift.cpp | 55 +
sci_gateway/cpp/opencv_im2double.cpp | 56 +
sci_gateway/cpp/opencv_imabsdiff.cpp | 51 +
sci_gateway/cpp/opencv_imadd.cpp | 71 +
sci_gateway/cpp/opencv_imattributes.cpp | 114 +
sci_gateway/cpp/opencv_imboxfilt3.cpp | 130 +
sci_gateway/cpp/opencv_imcomplement.cpp | 67 +
sci_gateway/cpp/opencv_imcontour.cpp | 62 +
sci_gateway/cpp/opencv_imcontrast.cpp | 100 +
sci_gateway/cpp/opencv_imcrop.cpp | 130 +
sci_gateway/cpp/opencv_imdivide.cpp | 71 +
sci_gateway/cpp/opencv_imextendedmax.cpp | 99 +
sci_gateway/cpp/opencv_imextendedmin.cpp | 100 +
sci_gateway/cpp/opencv_imfill.cpp | 192 +
sci_gateway/cpp/opencv_imfindcircles.cpp | 128 +
sci_gateway/cpp/opencv_imfindcircles.cpp~ | 148 +
sci_gateway/cpp/opencv_imfuse.cpp | 470 ++
sci_gateway/cpp/opencv_imgaborfilt.cpp | 159 +
sci_gateway/cpp/opencv_imgaussfilt3.cpp | 138 +
sci_gateway/cpp/opencv_imguidedfilter.cpp | 227 +
sci_gateway/cpp/opencv_imhistmatch.cpp | 296 ++
sci_gateway/cpp/opencv_imhmax.cpp | 111 +
sci_gateway/cpp/opencv_imhmin.cpp | 96 +
sci_gateway/cpp/opencv_imimposemin.cpp | 89 +
sci_gateway/cpp/opencv_imlincomb.cpp | 84 +
sci_gateway/cpp/opencv_immultiply.cpp | 71 +
sci_gateway/cpp/opencv_impixel.cpp | 122 +
sci_gateway/cpp/opencv_impyramid.cpp | 103 +
sci_gateway/cpp/opencv_imread.cpp | 99 +
sci_gateway/cpp/opencv_imrect.cpp | 110 +
sci_gateway/cpp/opencv_imresize.cpp | 94 +
sci_gateway/cpp/opencv_imrotate.cpp | 81 +
sci_gateway/cpp/opencv_imrotate.cpp~ | 81 +
sci_gateway/cpp/opencv_imsharpen.cpp | 59 +
sci_gateway/cpp/opencv_imshowpair.cpp | 474 ++
sci_gateway/cpp/opencv_imsubtract.cpp | 71 +
sci_gateway/cpp/opencv_imwarp.cpp | 104 +
sci_gateway/cpp/opencv_imwrite.cpp | 85 +
sci_gateway/cpp/opencv_ind2gray.cpp | 115 +
sci_gateway/cpp/opencv_ind2rgb.cpp | 146 +
sci_gateway/cpp/opencv_integralImage.cpp | 145 +
sci_gateway/cpp/opencv_lab2double.cpp | 130 +
sci_gateway/cpp/opencv_lab2rgb.cpp | 331 ++
sci_gateway/cpp/opencv_lab2uint16.cpp | 151 +
sci_gateway/cpp/opencv_lab2uint8.cpp | 174 +
sci_gateway/cpp/opencv_lab2xyz.cpp | 393 ++
sci_gateway/cpp/opencv_laplacian.cpp | 156 +
sci_gateway/cpp/opencv_line.cpp | 211 +
sci_gateway/cpp/opencv_makecform.cpp | 99 +
sci_gateway/cpp/opencv_mean1.cpp | 64 +
sci_gateway/cpp/opencv_medianblur.cpp | 81 +
sci_gateway/cpp/opencv_minAreaRect.cpp | 125 +
sci_gateway/cpp/opencv_minimumenclosingcirlce.cpp | 108 +
sci_gateway/cpp/opencv_montage.cpp | 216 +
sci_gateway/cpp/opencv_morphologyEx.cpp | 232 +
sci_gateway/cpp/opencv_ntsc2rgb.cpp | 192 +
sci_gateway/cpp/opencv_puttext.cpp | 311 ++
sci_gateway/cpp/opencv_pyrDown.cpp | 156 +
sci_gateway/cpp/opencv_pyrMeanShiftFiltering.cpp | 91 +
sci_gateway/cpp/opencv_pyrUp.cpp | 156 +
sci_gateway/cpp/opencv_rectangle.cpp | 207 +
sci_gateway/cpp/opencv_regionfill.cpp | 180 +
sci_gateway/cpp/opencv_rgb2lab.cpp | 244 +
sci_gateway/cpp/opencv_rgb2ntsc.cpp | 132 +
sci_gateway/cpp/opencv_rgb2xyz.cpp | 220 +
sci_gateway/cpp/opencv_roifill.cpp | 180 +
sci_gateway/cpp/opencv_roipoly.cpp | 145 +
sci_gateway/cpp/opencv_scharr.cpp | 155 +
sci_gateway/cpp/opencv_sepFilter2D.cpp | 261 ++
sci_gateway/cpp/opencv_sobel.cpp | 172 +
sci_gateway/cpp/opencv_ssim.cpp | 94 +
sci_gateway/cpp/opencv_threshold.cpp | 146 +
sci_gateway/cpp/opencv_undistort.cpp | 118 +
sci_gateway/cpp/opencv_viscircles.cpp | 209 +
sci_gateway/cpp/opencv_watershed.cpp | 105 +
sci_gateway/cpp/opencv_whitepoint.cpp | 108 +
sci_gateway/cpp/opencv_wiener2.cpp | 178 +
sci_gateway/cpp/opencv_xyz2double.cpp | 159 +
sci_gateway/cpp/opencv_xyz2lab.cpp | 423 ++
sci_gateway/cpp/opencv_xyz2rgb.cpp | 280 ++
sci_gateway/cpp/opencv_xyz2uint16.cpp | 146 +
sci_gateway/cpp/rgb2gray.cpp | 46 +
sci_gateway/cpp/rgb2gray.cpp~ | 46 +
sci_gateway/cpp/warpaffine.cpp | 214 +
sci_gateway/cpp/xyz2lab.cpp | 189 +
sci_gateway/loader_gateway.sce | 24 +
sci_gateway1/builder_gateway.sce | 18 +
sci_gateway1/cpp/builder_gateway_cpp.sce | 312 ++
sci_gateway1/cpp/builder_gateway_cpp.sce~ | 312 ++
sci_gateway1/cpp/cleaner.sce | 22 +
sci_gateway1/cpp/common.cpp | 890 ++++
sci_gateway1/cpp/common.cpp~ | 924 ++++
sci_gateway1/cpp/common.h | 9 +
sci_gateway1/cpp/common.h~ | 10 +
sci_gateway1/cpp/common1.cpp | 897 ++++
sci_gateway1/cpp/common2.cpp | 2527 +++++++++++
sci_gateway1/cpp/common3.cpp | 925 ++++
.../cpp/libFOSSEE_Image_Processing_Toolbox.c | 30 +
.../cpp/libFOSSEE_Image_Processing_Toolbox.so | Bin 0 -> 51031 bytes
sci_gateway1/cpp/libskeleton_imageprocessing.c | 38 +
sci_gateway1/cpp/libskeleton_imageprocessing.so | Bin 0 -> 67073 bytes
sci_gateway1/cpp/loader.sce | 25 +
sci_gateway1/cpp/opencv_BRISKPoints.cpp | 113 +
sci_gateway1/cpp/opencv_BlockMatcher.cpp | 606 +++
sci_gateway1/cpp/opencv_CascadeObjectDetector.cpp | 431 ++
sci_gateway1/cpp/opencv_DCT.cpp | 77 +
sci_gateway1/cpp/opencv_Deinterlacer.cpp | 201 +
sci_gateway1/cpp/opencv_FFT.cpp | 89 +
sci_gateway1/cpp/opencv_ForegroundDetector.cpp | 415 ++
sci_gateway1/cpp/opencv_GeometricShearer.cpp | 178 +
sci_gateway1/cpp/opencv_HistogramBasedTracker.cpp | 257 ++
sci_gateway1/cpp/opencv_IDCT.cpp | 72 +
sci_gateway1/cpp/opencv_IFFT.cpp | 69 +
sci_gateway1/cpp/opencv_KalmanFilter.cpp | 690 +++
sci_gateway1/cpp/opencv_SURFPoints.cpp | 123 +
sci_gateway1/cpp/opencv_TemplateMatcher.cpp | 146 +
sci_gateway1/cpp/opencv_VideoPlayer.cpp | 78 +
sci_gateway1/cpp/opencv_VideoReader.cpp | 389 ++
sci_gateway1/cpp/opencv_arrowedline.cpp | 221 +
sci_gateway1/cpp/opencv_bagOfFeatures.cpp | 550 +++
sci_gateway1/cpp/opencv_bbox2points.cpp | 117 +
sci_gateway1/cpp/opencv_bboxOverlapRatio.cpp | 275 ++
sci_gateway1/cpp/opencv_blobAnalysis.cpp | 381 ++
sci_gateway1/cpp/opencv_blur.cpp | 134 +
sci_gateway1/cpp/opencv_boundingRect.cpp | 82 +
sci_gateway1/cpp/opencv_bundleAdjustment.cpp | 382 ++
sci_gateway1/cpp/opencv_cameraMatrix.cpp | 186 +
sci_gateway1/cpp/opencv_canny.cpp | 121 +
sci_gateway1/cpp/opencv_circle.cpp | 203 +
sci_gateway1/cpp/opencv_clipline.cpp | 149 +
sci_gateway1/cpp/opencv_convexhull.cpp | 140 +
sci_gateway1/cpp/opencv_convolver.cpp | 243 +
sci_gateway1/cpp/opencv_copymakeborder.cpp | 195 +
sci_gateway1/cpp/opencv_corner.cpp | 469 ++
sci_gateway1/cpp/opencv_cornerEigenValsAndVecs.cpp | 127 +
sci_gateway1/cpp/opencv_cornerHarris.cpp | 144 +
sci_gateway1/cpp/opencv_cornerMinEigenVal.cpp | 125 +
sci_gateway1/cpp/opencv_cvtColor.cpp | 183 +
sci_gateway1/cpp/opencv_demosaic.cpp | 127 +
sci_gateway1/cpp/opencv_detectBRISKFeatures.cpp | 421 ++
.../cpp/opencv_detectCheckerboardPoints.cpp | 731 +++
sci_gateway1/cpp/opencv_detectFASTFeatures.cpp | 569 +++
sci_gateway1/cpp/opencv_detectHarrisFeatures.cpp | 402 ++
sci_gateway1/cpp/opencv_detectMSERFeatures.cpp | 451 ++
sci_gateway1/cpp/opencv_detectMinEigenFeatures.cpp | 366 ++
sci_gateway1/cpp/opencv_detectSURFFeatures.cpp | 432 ++
sci_gateway1/cpp/opencv_dilate.cpp | 119 +
sci_gateway1/cpp/opencv_ellipse.cpp | 278 ++
sci_gateway1/cpp/opencv_ellipse2poly.cpp | 171 +
sci_gateway1/cpp/opencv_epipolarlines.cpp | 321 ++
sci_gateway1/cpp/opencv_erode.cpp | 117 +
.../cpp/opencv_estimateFundamentalMatrix.cpp | 318 ++
.../cpp/opencv_estimateGeometricTransform.cpp | 164 +
.../opencv_estimateUncalibratedRectification.cpp | 201 +
sci_gateway1/cpp/opencv_evaluate.cpp | 417 ++
sci_gateway1/cpp/opencv_evaluateImageRetrieval.cpp | 566 +++
sci_gateway1/cpp/opencv_extractFeatures.cpp | 1706 +++++++
sci_gateway1/cpp/opencv_extractHOGFeatures.cpp | 399 ++
sci_gateway1/cpp/opencv_extractLBPFeatures.cpp | 515 +++
sci_gateway1/cpp/opencv_fillconvexpoly.cpp | 173 +
sci_gateway1/cpp/opencv_filter2D.cpp | 184 +
sci_gateway1/cpp/opencv_findContours.cpp | 199 +
sci_gateway1/cpp/opencv_gaussianblur.cpp | 132 +
.../cpp/opencv_generateCheckerboardPoints.cpp | 157 +
sci_gateway1/cpp/opencv_getStructuringElement.cpp | 147 +
sci_gateway1/cpp/opencv_getTextSize.cpp | 188 +
sci_gateway1/cpp/opencv_getgaussiankernel.cpp | 142 +
sci_gateway1/cpp/opencv_getrectsubpix.cpp | 142 +
sci_gateway1/cpp/opencv_getrotationmatrix2D.cpp | 121 +
sci_gateway1/cpp/opencv_goodfeaturestotrack.cpp | 168 +
sci_gateway1/cpp/opencv_houghcircles.cpp | 164 +
sci_gateway1/cpp/opencv_houghlines.cpp | 133 +
sci_gateway1/cpp/opencv_houghlinesp.cpp | 134 +
sci_gateway1/cpp/opencv_im2double.cpp | 56 +
sci_gateway1/cpp/opencv_imageSet.cpp | 294 ++
sci_gateway1/cpp/opencv_imcontrast.cpp | 100 +
sci_gateway1/cpp/opencv_imcrop.cpp | 130 +
sci_gateway1/cpp/opencv_imfindcircles.cpp | 128 +
sci_gateway1/cpp/opencv_imread.cpp | 99 +
sci_gateway1/cpp/opencv_imread.cpp~ | 99 +
sci_gateway1/cpp/opencv_imresize.cpp | 94 +
sci_gateway1/cpp/opencv_imsharpen.cpp | 59 +
sci_gateway1/cpp/opencv_imwrite.cpp | 85 +
sci_gateway1/cpp/opencv_indexImages.cpp | 663 +++
sci_gateway1/cpp/opencv_integralFilter.cpp | 250 ++
sci_gateway1/cpp/opencv_integralImage.cpp | 153 +
sci_gateway1/cpp/opencv_integralKernel.cpp | 251 ++
sci_gateway1/cpp/opencv_isEpipoleInImage.cpp | 164 +
sci_gateway1/cpp/opencv_isfilter.cpp | 237 +
sci_gateway1/cpp/opencv_laplacian.cpp | 156 +
sci_gateway1/cpp/opencv_line.cpp | 211 +
sci_gateway1/cpp/opencv_matchFeatures.cpp | 490 +++
sci_gateway1/cpp/opencv_medianblur.cpp | 81 +
sci_gateway1/cpp/opencv_montage.cpp | 216 +
sci_gateway1/cpp/opencv_morphologyEx.cpp | 232 +
sci_gateway1/cpp/opencv_ocr.cpp | 175 +
sci_gateway1/cpp/opencv_opticalFlowFarneback.cpp | 553 +++
sci_gateway1/cpp/opencv_partition.cpp | 488 ++
sci_gateway1/cpp/opencv_peopleDetector.cpp | 468 ++
sci_gateway1/cpp/opencv_predict.cpp | 222 +
sci_gateway1/cpp/opencv_projectPoints.cpp | 256 ++
sci_gateway1/cpp/opencv_puttext.cpp | 311 ++
sci_gateway1/cpp/opencv_pyrDown.cpp | 156 +
sci_gateway1/cpp/opencv_pyrUp.cpp | 156 +
sci_gateway1/cpp/opencv_pyramid.cpp | 134 +
sci_gateway1/cpp/opencv_rectangle.cpp | 207 +
sci_gateway1/cpp/opencv_rectifyStereoImages.cpp | 243 +
sci_gateway1/cpp/opencv_retrieveImages.cpp | 506 +++
sci_gateway1/cpp/opencv_rotationVectorToMatrix.cpp | 205 +
sci_gateway1/cpp/opencv_scharr.cpp | 155 +
sci_gateway1/cpp/opencv_sepFilter2D.cpp | 261 ++
sci_gateway1/cpp/opencv_showMatchedFeatures.cpp | 275 ++
sci_gateway1/cpp/opencv_sobel.cpp | 172 +
sci_gateway1/cpp/opencv_threshold.cpp | 146 +
.../cpp/opencv_trainImageCategoryClassifier.cpp | 349 ++
sci_gateway1/cpp/opencv_triangulatePoints.cpp | 166 +
sci_gateway1/cpp/opencv_undistort.cpp | 118 +
sci_gateway1/cpp/opencv_undistortImage.cpp | 271 ++
sci_gateway1/cpp/opencv_undistortPoints.cpp | 190 +
sci_gateway1/cpp/rotationMatrixToVector.cpp | 139 +
sci_gateway1/loader_gateway.sce | 24 +
thirdparty/linux/include/opencv/cv.h | 73 +
thirdparty/linux/include/opencv/cv.hpp | 60 +
thirdparty/linux/include/opencv/cvaux.h | 57 +
thirdparty/linux/include/opencv/cvaux.hpp | 52 +
thirdparty/linux/include/opencv/cvwimage.h | 46 +
thirdparty/linux/include/opencv/cxcore.h | 52 +
thirdparty/linux/include/opencv/cxcore.hpp | 53 +
thirdparty/linux/include/opencv/cxeigen.hpp | 48 +
thirdparty/linux/include/opencv/cxmisc.h | 8 +
thirdparty/linux/include/opencv/highgui.h | 48 +
thirdparty/linux/include/opencv/ml.h | 47 +
thirdparty/linux/include/opencv2/aruco.hpp | 541 +++
thirdparty/linux/include/opencv2/aruco/charuco.hpp | 341 ++
.../linux/include/opencv2/aruco/dictionary.hpp | 205 +
thirdparty/linux/include/opencv2/bgsegm.hpp | 194 +
thirdparty/linux/include/opencv2/bioinspired.hpp | 60 +
.../include/opencv2/bioinspired/bioinspired.hpp | 48 +
.../linux/include/opencv2/bioinspired/retina.hpp | 456 ++
.../opencv2/bioinspired/retinafasttonemapping.hpp | 138 +
.../transientareassegmentationmodule.hpp | 205 +
thirdparty/linux/include/opencv2/calib3d.hpp | 2134 +++++++++
.../linux/include/opencv2/calib3d/calib3d.hpp | 48 +
.../linux/include/opencv2/calib3d/calib3d_c.h | 426 ++
thirdparty/linux/include/opencv2/ccalib.hpp | 157 +
.../linux/include/opencv2/ccalib/multicalib.hpp | 212 +
.../linux/include/opencv2/ccalib/omnidir.hpp | 312 ++
.../linux/include/opencv2/ccalib/randpattern.hpp | 177 +
thirdparty/linux/include/opencv2/core.hpp | 3220 ++++++++++++++
thirdparty/linux/include/opencv2/core/affine.hpp | 517 +++
thirdparty/linux/include/opencv2/core/base.hpp | 691 +++
.../linux/include/opencv2/core/bufferpool.hpp | 31 +
thirdparty/linux/include/opencv2/core/core.hpp | 48 +
thirdparty/linux/include/opencv2/core/core_c.h | 3184 ++++++++++++++
thirdparty/linux/include/opencv2/core/cuda.hpp | 874 ++++
thirdparty/linux/include/opencv2/core/cuda.inl.hpp | 631 +++
.../linux/include/opencv2/core/cuda/block.hpp | 211 +
.../opencv2/core/cuda/border_interpolate.hpp | 722 +++
.../linux/include/opencv2/core/cuda/color.hpp | 309 ++
.../linux/include/opencv2/core/cuda/common.hpp | 109 +
.../include/opencv2/core/cuda/datamov_utils.hpp | 113 +
.../opencv2/core/cuda/detail/color_detail.hpp | 1980 +++++++++
.../include/opencv2/core/cuda/detail/reduce.hpp | 365 ++
.../opencv2/core/cuda/detail/reduce_key_val.hpp | 502 +++
.../opencv2/core/cuda/detail/transform_detail.hpp | 399 ++
.../core/cuda/detail/type_traits_detail.hpp | 191 +
.../core/cuda/detail/vec_distance_detail.hpp | 121 +
.../include/opencv2/core/cuda/dynamic_smem.hpp | 88 +
.../linux/include/opencv2/core/cuda/emulation.hpp | 269 ++
.../linux/include/opencv2/core/cuda/filters.hpp | 286 ++
.../linux/include/opencv2/core/cuda/funcattrib.hpp | 79 +
.../linux/include/opencv2/core/cuda/functional.hpp | 797 ++++
.../linux/include/opencv2/core/cuda/limits.hpp | 128 +
.../linux/include/opencv2/core/cuda/reduce.hpp | 209 +
.../include/opencv2/core/cuda/saturate_cast.hpp | 292 ++
.../linux/include/opencv2/core/cuda/scan.hpp | 258 ++
.../include/opencv2/core/cuda/simd_functions.hpp | 869 ++++
.../linux/include/opencv2/core/cuda/transform.hpp | 75 +
.../include/opencv2/core/cuda/type_traits.hpp | 90 +
.../linux/include/opencv2/core/cuda/utility.hpp | 230 +
.../include/opencv2/core/cuda/vec_distance.hpp | 232 +
.../linux/include/opencv2/core/cuda/vec_math.hpp | 930 ++++
.../linux/include/opencv2/core/cuda/vec_traits.hpp | 288 ++
.../linux/include/opencv2/core/cuda/warp.hpp | 139 +
.../include/opencv2/core/cuda/warp_reduce.hpp | 76 +
.../include/opencv2/core/cuda/warp_shuffle.hpp | 153 +
.../include/opencv2/core/cuda_stream_accessor.hpp | 86 +
.../linux/include/opencv2/core/cuda_types.hpp | 135 +
thirdparty/linux/include/opencv2/core/cvdef.h | 481 ++
thirdparty/linux/include/opencv2/core/cvstd.hpp | 1066 +++++
.../linux/include/opencv2/core/cvstd.inl.hpp | 267 ++
thirdparty/linux/include/opencv2/core/directx.hpp | 184 +
thirdparty/linux/include/opencv2/core/eigen.hpp | 280 ++
.../linux/include/opencv2/core/fast_math.hpp | 303 ++
thirdparty/linux/include/opencv2/core/hal/hal.hpp | 250 ++
.../linux/include/opencv2/core/hal/interface.h | 178 +
.../linux/include/opencv2/core/hal/intrin.hpp | 414 ++
.../linux/include/opencv2/core/hal/intrin_cpp.hpp | 1790 ++++++++
.../linux/include/opencv2/core/hal/intrin_neon.hpp | 1234 ++++++
.../linux/include/opencv2/core/hal/intrin_sse.hpp | 1744 ++++++++
thirdparty/linux/include/opencv2/core/ippasync.hpp | 195 +
thirdparty/linux/include/opencv2/core/mat.hpp | 3520 +++++++++++++++
thirdparty/linux/include/opencv2/core/mat.inl.hpp | 3733 ++++++++++++++++
thirdparty/linux/include/opencv2/core/matx.hpp | 1407 ++++++
.../linux/include/opencv2/core/neon_utils.hpp | 128 +
thirdparty/linux/include/opencv2/core/ocl.hpp | 757 ++++
.../linux/include/opencv2/core/ocl_genbase.hpp | 64 +
thirdparty/linux/include/opencv2/core/opengl.hpp | 729 +++
.../linux/include/opencv2/core/operations.hpp | 530 +++
thirdparty/linux/include/opencv2/core/optim.hpp | 302 ++
thirdparty/linux/include/opencv2/core/ovx.hpp | 28 +
.../linux/include/opencv2/core/persistence.hpp | 1274 ++++++
.../linux/include/opencv2/core/private.cuda.hpp | 172 +
thirdparty/linux/include/opencv2/core/private.hpp | 585 +++
thirdparty/linux/include/opencv2/core/ptr.inl.hpp | 379 ++
thirdparty/linux/include/opencv2/core/saturate.hpp | 150 +
.../linux/include/opencv2/core/sse_utils.hpp | 652 +++
thirdparty/linux/include/opencv2/core/traits.hpp | 326 ++
thirdparty/linux/include/opencv2/core/types.hpp | 2264 ++++++++++
thirdparty/linux/include/opencv2/core/types_c.h | 1837 ++++++++
thirdparty/linux/include/opencv2/core/utility.hpp | 1171 +++++
thirdparty/linux/include/opencv2/core/va_intel.hpp | 77 +
thirdparty/linux/include/opencv2/core/version.hpp | 71 +
thirdparty/linux/include/opencv2/core/wimage.hpp | 603 +++
thirdparty/linux/include/opencv2/cvconfig.h | 208 +
.../linux/include/opencv2/datasets/ar_hmdb.hpp | 80 +
.../linux/include/opencv2/datasets/ar_sports.hpp | 79 +
.../linux/include/opencv2/datasets/dataset.hpp | 545 +++
.../linux/include/opencv2/datasets/fr_adience.hpp | 98 +
.../linux/include/opencv2/datasets/fr_lfw.hpp | 79 +
.../linux/include/opencv2/datasets/gr_chalearn.hpp | 96 +
.../linux/include/opencv2/datasets/gr_skig.hpp | 118 +
.../include/opencv2/datasets/hpe_humaneva.hpp | 90 +
.../linux/include/opencv2/datasets/hpe_parse.hpp | 78 +
.../linux/include/opencv2/datasets/ir_affine.hpp | 80 +
.../linux/include/opencv2/datasets/ir_robot.hpp | 89 +
.../linux/include/opencv2/datasets/is_bsds.hpp | 78 +
.../linux/include/opencv2/datasets/is_weizmann.hpp | 81 +
.../linux/include/opencv2/datasets/msm_epfl.hpp | 90 +
.../include/opencv2/datasets/msm_middlebury.hpp | 81 +
.../linux/include/opencv2/datasets/or_imagenet.hpp | 79 +
.../linux/include/opencv2/datasets/or_mnist.hpp | 79 +
.../linux/include/opencv2/datasets/or_pascal.hpp | 102 +
.../linux/include/opencv2/datasets/or_sun.hpp | 81 +
.../linux/include/opencv2/datasets/pd_caltech.hpp | 89 +
.../linux/include/opencv2/datasets/pd_inria.hpp | 96 +
.../linux/include/opencv2/datasets/slam_kitti.hpp | 87 +
.../include/opencv2/datasets/slam_tumindoor.hpp | 87 +
.../linux/include/opencv2/datasets/tr_chars.hpp | 79 +
.../linux/include/opencv2/datasets/tr_icdar.hpp | 87 +
.../linux/include/opencv2/datasets/tr_svt.hpp | 86 +
.../linux/include/opencv2/datasets/track_alov.hpp | 107 +
.../linux/include/opencv2/datasets/track_vot.hpp | 96 +
thirdparty/linux/include/opencv2/datasets/util.hpp | 74 +
thirdparty/linux/include/opencv2/dnn.hpp | 64 +
.../linux/include/opencv2/dnn/all_layers.hpp | 423 ++
thirdparty/linux/include/opencv2/dnn/blob.hpp | 341 ++
thirdparty/linux/include/opencv2/dnn/blob.inl.hpp | 533 +++
thirdparty/linux/include/opencv2/dnn/dict.hpp | 143 +
thirdparty/linux/include/opencv2/dnn/dnn.hpp | 350 ++
thirdparty/linux/include/opencv2/dnn/dnn.inl.hpp | 351 ++
thirdparty/linux/include/opencv2/dnn/layer.hpp | 148 +
.../linux/include/opencv2/dnn/shape_utils.hpp | 137 +
thirdparty/linux/include/opencv2/dpm.hpp | 148 +
thirdparty/linux/include/opencv2/face.hpp | 375 ++
thirdparty/linux/include/opencv2/face/bif.hpp | 83 +
thirdparty/linux/include/opencv2/face/facerec.hpp | 166 +
.../include/opencv2/face/predict_collector.hpp | 127 +
thirdparty/linux/include/opencv2/features2d.hpp | 1365 ++++++
.../include/opencv2/features2d/features2d.hpp | 48 +
thirdparty/linux/include/opencv2/flann.hpp | 531 +++
.../linux/include/opencv2/flann/all_indices.h | 155 +
thirdparty/linux/include/opencv2/flann/allocator.h | 188 +
thirdparty/linux/include/opencv2/flann/any.h | 324 ++
.../linux/include/opencv2/flann/autotuned_index.h | 588 +++
.../linux/include/opencv2/flann/composite_index.h | 194 +
thirdparty/linux/include/opencv2/flann/config.h | 38 +
thirdparty/linux/include/opencv2/flann/defines.h | 177 +
thirdparty/linux/include/opencv2/flann/dist.h | 905 ++++
thirdparty/linux/include/opencv2/flann/dummy.h | 16 +
.../linux/include/opencv2/flann/dynamic_bitset.h | 159 +
thirdparty/linux/include/opencv2/flann/flann.hpp | 48 +
.../linux/include/opencv2/flann/flann_base.hpp | 290 ++
thirdparty/linux/include/opencv2/flann/general.h | 50 +
.../linux/include/opencv2/flann/ground_truth.h | 94 +
thirdparty/linux/include/opencv2/flann/hdf5.h | 231 +
thirdparty/linux/include/opencv2/flann/heap.h | 165 +
.../opencv2/flann/hierarchical_clustering_index.h | 848 ++++
.../linux/include/opencv2/flann/index_testing.h | 318 ++
.../linux/include/opencv2/flann/kdtree_index.h | 621 +++
.../include/opencv2/flann/kdtree_single_index.h | 634 +++
.../linux/include/opencv2/flann/kmeans_index.h | 1171 +++++
.../linux/include/opencv2/flann/linear_index.h | 132 +
thirdparty/linux/include/opencv2/flann/logger.h | 130 +
thirdparty/linux/include/opencv2/flann/lsh_index.h | 392 ++
thirdparty/linux/include/opencv2/flann/lsh_table.h | 492 +++
thirdparty/linux/include/opencv2/flann/matrix.h | 116 +
.../linux/include/opencv2/flann/miniflann.hpp | 158 +
thirdparty/linux/include/opencv2/flann/nn_index.h | 177 +
.../linux/include/opencv2/flann/object_factory.h | 91 +
thirdparty/linux/include/opencv2/flann/params.h | 99 +
thirdparty/linux/include/opencv2/flann/random.h | 133 +
.../linux/include/opencv2/flann/result_set.h | 543 +++
thirdparty/linux/include/opencv2/flann/sampling.h | 81 +
thirdparty/linux/include/opencv2/flann/saving.h | 187 +
.../linux/include/opencv2/flann/simplex_downhill.h | 186 +
thirdparty/linux/include/opencv2/flann/timer.h | 94 +
thirdparty/linux/include/opencv2/freetype.hpp | 190 +
thirdparty/linux/include/opencv2/fuzzy.hpp | 66 +
.../linux/include/opencv2/fuzzy/fuzzy_F0_math.hpp | 128 +
.../linux/include/opencv2/fuzzy/fuzzy_image.hpp | 109 +
thirdparty/linux/include/opencv2/fuzzy/types.hpp | 70 +
thirdparty/linux/include/opencv2/hdf.hpp | 54 +
thirdparty/linux/include/opencv2/hdf/hdf5.hpp | 707 +++
thirdparty/linux/include/opencv2/highgui.hpp | 790 ++++
.../linux/include/opencv2/highgui/highgui.hpp | 48 +
.../linux/include/opencv2/highgui/highgui_c.h | 257 ++
thirdparty/linux/include/opencv2/imgcodecs.hpp | 281 ++
.../linux/include/opencv2/imgcodecs/imgcodecs.hpp | 48 +
.../linux/include/opencv2/imgcodecs/imgcodecs_c.h | 148 +
thirdparty/linux/include/opencv2/imgcodecs/ios.h | 57 +
thirdparty/linux/include/opencv2/imgproc.hpp | 4650 ++++++++++++++++++++
.../opencv2/imgproc/detail/distortion_model.hpp | 123 +
.../linux/include/opencv2/imgproc/hal/hal.hpp | 189 +
.../linux/include/opencv2/imgproc/hal/interface.h | 26 +
.../linux/include/opencv2/imgproc/imgproc.hpp | 48 +
.../linux/include/opencv2/imgproc/imgproc_c.h | 1210 +++++
thirdparty/linux/include/opencv2/imgproc/types_c.h | 626 +++
.../linux/include/opencv2/line_descriptor.hpp | 119 +
.../include/opencv2/line_descriptor/descriptor.hpp | 1369 ++++++
thirdparty/linux/include/opencv2/ml.hpp | 1690 +++++++
thirdparty/linux/include/opencv2/ml/ml.hpp | 48 +
thirdparty/linux/include/opencv2/objdetect.hpp | 466 ++
.../opencv2/objdetect/detection_based_tracker.hpp | 225 +
.../linux/include/opencv2/objdetect/objdetect.hpp | 48 +
.../linux/include/opencv2/objdetect/objdetect_c.h | 165 +
thirdparty/linux/include/opencv2/opencv.hpp | 136 +
.../linux/include/opencv2/opencv_modules.hpp | 58 +
thirdparty/linux/include/opencv2/optflow.hpp | 364 ++
.../linux/include/opencv2/optflow/motempl.hpp | 147 +
.../linux/include/opencv2/optflow/pcaflow.hpp | 149 +
.../opencv2/optflow/sparse_matching_gpc.hpp | 380 ++
.../linux/include/opencv2/phase_unwrapping.hpp | 61 +
.../phase_unwrapping/histogramphaseunwrapping.hpp | 107 +
.../opencv2/phase_unwrapping/phase_unwrapping.hpp | 74 +
thirdparty/linux/include/opencv2/photo.hpp | 870 ++++
thirdparty/linux/include/opencv2/photo/cuda.hpp | 132 +
thirdparty/linux/include/opencv2/photo/photo.hpp | 48 +
thirdparty/linux/include/opencv2/photo/photo_c.h | 74 +
thirdparty/linux/include/opencv2/plot.hpp | 109 +
thirdparty/linux/include/opencv2/reg/map.hpp | 175 +
thirdparty/linux/include/opencv2/reg/mapaffine.hpp | 105 +
thirdparty/linux/include/opencv2/reg/mapper.hpp | 113 +
.../linux/include/opencv2/reg/mappergradaffine.hpp | 67 +
.../linux/include/opencv2/reg/mappergradeuclid.hpp | 67 +
.../linux/include/opencv2/reg/mappergradproj.hpp | 67 +
.../linux/include/opencv2/reg/mappergradshift.hpp | 67 +
.../include/opencv2/reg/mappergradsimilar.hpp | 67 +
.../linux/include/opencv2/reg/mapperpyramid.hpp | 78 +
thirdparty/linux/include/opencv2/reg/mapprojec.hpp | 105 +
thirdparty/linux/include/opencv2/reg/mapshift.hpp | 96 +
thirdparty/linux/include/opencv2/rgbd.hpp | 1049 +++++
thirdparty/linux/include/opencv2/rgbd/linemod.hpp | 458 ++
thirdparty/linux/include/opencv2/saliency.hpp | 83 +
.../opencv2/saliency/saliencyBaseClasses.hpp | 144 +
.../saliency/saliencySpecializedClasses.hpp | 493 +++
thirdparty/linux/include/opencv2/shape.hpp | 57 +
thirdparty/linux/include/opencv2/shape/emdL1.hpp | 72 +
.../linux/include/opencv2/shape/hist_cost.hpp | 111 +
thirdparty/linux/include/opencv2/shape/shape.hpp | 48 +
.../linux/include/opencv2/shape/shape_distance.hpp | 224 +
.../include/opencv2/shape/shape_transformer.hpp | 132 +
thirdparty/linux/include/opencv2/stereo.hpp | 280 ++
.../linux/include/opencv2/stereo/descriptor.hpp | 452 ++
.../linux/include/opencv2/stereo/matching.hpp | 624 +++
thirdparty/linux/include/opencv2/stereo/stereo.hpp | 49 +
thirdparty/linux/include/opencv2/stitching.hpp | 320 ++
.../include/opencv2/stitching/detail/autocalib.hpp | 86 +
.../include/opencv2/stitching/detail/blenders.hpp | 167 +
.../include/opencv2/stitching/detail/camera.hpp | 78 +
.../stitching/detail/exposure_compensate.hpp | 136 +
.../include/opencv2/stitching/detail/matchers.hpp | 355 ++
.../opencv2/stitching/detail/motion_estimators.hpp | 357 ++
.../opencv2/stitching/detail/seam_finders.hpp | 285 ++
.../opencv2/stitching/detail/timelapsers.hpp | 91 +
.../include/opencv2/stitching/detail/util.hpp | 121 +
.../include/opencv2/stitching/detail/util_inl.hpp | 131 +
.../include/opencv2/stitching/detail/warpers.hpp | 616 +++
.../opencv2/stitching/detail/warpers_inl.hpp | 774 ++++
.../linux/include/opencv2/stitching/warpers.hpp | 192 +
.../linux/include/opencv2/structured_light.hpp | 68 +
.../opencv2/structured_light/graycodepattern.hpp | 149 +
.../opencv2/structured_light/sinusoidalpattern.hpp | 151 +
.../opencv2/structured_light/structured_light.hpp | 91 +
thirdparty/linux/include/opencv2/superres.hpp | 207 +
.../include/opencv2/superres/optical_flow.hpp | 203 +
.../linux/include/opencv2/surface_matching.hpp | 402 ++
.../linux/include/opencv2/surface_matching/icp.hpp | 170 +
.../include/opencv2/surface_matching/pose_3d.hpp | 188 +
.../opencv2/surface_matching/ppf_helpers.hpp | 164 +
.../opencv2/surface_matching/ppf_match_3d.hpp | 179 +
.../opencv2/surface_matching/t_hash_int.hpp | 113 +
thirdparty/linux/include/opencv2/text.hpp | 101 +
thirdparty/linux/include/opencv2/text/erfilter.hpp | 360 ++
thirdparty/linux/include/opencv2/text/ocr.hpp | 470 ++
thirdparty/linux/include/opencv2/tracking.hpp | 307 ++
.../linux/include/opencv2/tracking/feature.hpp | 415 ++
.../include/opencv2/tracking/kalman_filters.hpp | 228 +
.../include/opencv2/tracking/onlineBoosting.hpp | 288 ++
.../linux/include/opencv2/tracking/onlineMIL.hpp | 118 +
.../linux/include/opencv2/tracking/tldDataset.hpp | 56 +
.../linux/include/opencv2/tracking/tracker.hpp | 1485 +++++++
.../linux/include/opencv2/tracking/tracking.hpp | 46 +
thirdparty/linux/include/opencv2/video.hpp | 63 +
.../include/opencv2/video/background_segm.hpp | 306 ++
.../linux/include/opencv2/video/tracking.hpp | 626 +++
.../linux/include/opencv2/video/tracking_c.h | 232 +
thirdparty/linux/include/opencv2/video/video.hpp | 48 +
thirdparty/linux/include/opencv2/videoio.hpp | 935 ++++
thirdparty/linux/include/opencv2/videoio/cap_ios.h | 150 +
.../linux/include/opencv2/videoio/videoio.hpp | 48 +
.../linux/include/opencv2/videoio/videoio_c.h | 587 +++
thirdparty/linux/include/opencv2/videostab.hpp | 81 +
.../linux/include/opencv2/videostab/deblurring.hpp | 116 +
.../include/opencv2/videostab/fast_marching.hpp | 121 +
.../opencv2/videostab/fast_marching_inl.hpp | 165 +
.../include/opencv2/videostab/frame_source.hpp | 94 +
.../include/opencv2/videostab/global_motion.hpp | 299 ++
.../linux/include/opencv2/videostab/inpainting.hpp | 212 +
thirdparty/linux/include/opencv2/videostab/log.hpp | 80 +
.../include/opencv2/videostab/motion_core.hpp | 129 +
.../opencv2/videostab/motion_stabilizing.hpp | 174 +
.../include/opencv2/videostab/optical_flow.hpp | 150 +
.../opencv2/videostab/outlier_rejection.hpp | 101 +
.../include/opencv2/videostab/ring_buffer.hpp | 72 +
.../linux/include/opencv2/videostab/stabilizer.hpp | 200 +
.../opencv2/videostab/wobble_suppression.hpp | 140 +
thirdparty/linux/include/opencv2/viz.hpp | 84 +
thirdparty/linux/include/opencv2/viz/types.hpp | 329 ++
thirdparty/linux/include/opencv2/viz/viz3d.hpp | 351 ++
thirdparty/linux/include/opencv2/viz/vizcore.hpp | 176 +
.../linux/include/opencv2/viz/widget_accessor.hpp | 89 +
thirdparty/linux/include/opencv2/viz/widgets.hpp | 850 ++++
thirdparty/linux/include/opencv2/xfeatures2d.hpp | 842 ++++
.../linux/include/opencv2/xfeatures2d/cuda.hpp | 166 +
.../linux/include/opencv2/xfeatures2d/nonfree.hpp | 156 +
thirdparty/linux/include/opencv2/ximgproc.hpp | 131 +
.../include/opencv2/ximgproc/deriche_filter.hpp | 77 +
.../include/opencv2/ximgproc/disparity_filter.hpp | 210 +
.../linux/include/opencv2/ximgproc/edge_filter.hpp | 454 ++
.../opencv2/ximgproc/estimated_covariance.hpp | 82 +
.../opencv2/ximgproc/fast_hough_transform.hpp | 164 +
.../opencv2/ximgproc/fast_line_detector.hpp | 81 +
thirdparty/linux/include/opencv2/ximgproc/lsc.hpp | 157 +
.../include/opencv2/ximgproc/paillou_filter.hpp | 67 +
.../linux/include/opencv2/ximgproc/seeds.hpp | 183 +
.../include/opencv2/ximgproc/segmentation.hpp | 252 ++
thirdparty/linux/include/opencv2/ximgproc/slic.hpp | 168 +
.../opencv2/ximgproc/sparse_match_interpolator.hpp | 132 +
.../opencv2/ximgproc/structured_edge_detection.hpp | 128 +
.../opencv2/ximgproc/weighted_median_filter.hpp | 95 +
thirdparty/linux/include/opencv2/xobjdetect.hpp | 105 +
thirdparty/linux/include/opencv2/xphoto.hpp | 53 +
.../opencv2/xphoto/bm3d_image_denoising.hpp | 186 +
.../include/opencv2/xphoto/dct_image_denoising.hpp | 79 +
.../linux/include/opencv2/xphoto/inpainting.hpp | 90 +
.../linux/include/opencv2/xphoto/white_balance.hpp | 230 +
thirdparty/linux/lib/x64/libopencv_aruco.so | 1 +
thirdparty/linux/lib/x64/libopencv_aruco.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_aruco.so.3.2.0 | Bin 0 -> 365683 bytes
thirdparty/linux/lib/x64/libopencv_bgsegm.so | 1 +
thirdparty/linux/lib/x64/libopencv_bgsegm.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_bgsegm.so.3.2.0 | Bin 0 -> 74456 bytes
thirdparty/linux/lib/x64/libopencv_bioinspired.so | 1 +
.../linux/lib/x64/libopencv_bioinspired.so.3.2 | 1 +
.../linux/lib/x64/libopencv_bioinspired.so.3.2.0 | Bin 0 -> 368064 bytes
thirdparty/linux/lib/x64/libopencv_calib3d.so | 1 +
thirdparty/linux/lib/x64/libopencv_calib3d.so.3.2 | 1 +
.../linux/lib/x64/libopencv_calib3d.so.3.2.0 | Bin 0 -> 1718621 bytes
thirdparty/linux/lib/x64/libopencv_ccalib.so | 1 +
thirdparty/linux/lib/x64/libopencv_ccalib.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_ccalib.so.3.2.0 | Bin 0 -> 510896 bytes
thirdparty/linux/lib/x64/libopencv_core.so | 1 +
thirdparty/linux/lib/x64/libopencv_core.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_core.so.3.2.0 | Bin 0 -> 3364047 bytes
thirdparty/linux/lib/x64/libopencv_datasets.so | 1 +
thirdparty/linux/lib/x64/libopencv_datasets.so.3.2 | 1 +
.../linux/lib/x64/libopencv_datasets.so.3.2.0 | Bin 0 -> 680235 bytes
thirdparty/linux/lib/x64/libopencv_dnn.so | 1 +
thirdparty/linux/lib/x64/libopencv_dnn.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_dnn.so.3.2.0 | Bin 0 -> 3991547 bytes
thirdparty/linux/lib/x64/libopencv_dpm.so | 1 +
thirdparty/linux/lib/x64/libopencv_dpm.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_dpm.so.3.2.0 | Bin 0 -> 162599 bytes
thirdparty/linux/lib/x64/libopencv_face.so | 1 +
thirdparty/linux/lib/x64/libopencv_face.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_face.so.3.2.0 | Bin 0 -> 215676 bytes
thirdparty/linux/lib/x64/libopencv_features2d.so | 1 +
.../linux/lib/x64/libopencv_features2d.so.3.2 | 1 +
.../linux/lib/x64/libopencv_features2d.so.3.2.0 | Bin 0 -> 947471 bytes
thirdparty/linux/lib/x64/libopencv_flann.so | 1 +
thirdparty/linux/lib/x64/libopencv_flann.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_flann.so.3.2.0 | Bin 0 -> 484888 bytes
thirdparty/linux/lib/x64/libopencv_freetype.so | 1 +
thirdparty/linux/lib/x64/libopencv_freetype.so.3.2 | 1 +
.../linux/lib/x64/libopencv_freetype.so.3.2.0 | Bin 0 -> 40229 bytes
thirdparty/linux/lib/x64/libopencv_fuzzy.so | 1 +
thirdparty/linux/lib/x64/libopencv_fuzzy.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_fuzzy.so.3.2.0 | Bin 0 -> 66570 bytes
thirdparty/linux/lib/x64/libopencv_hdf.so | 1 +
thirdparty/linux/lib/x64/libopencv_hdf.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_hdf.so.3.2.0 | Bin 0 -> 54559 bytes
thirdparty/linux/lib/x64/libopencv_highgui.so | 1 +
thirdparty/linux/lib/x64/libopencv_highgui.so.3.2 | 1 +
.../linux/lib/x64/libopencv_highgui.so.3.2.0 | Bin 0 -> 30075 bytes
thirdparty/linux/lib/x64/libopencv_imgcodecs.so | 1 +
.../linux/lib/x64/libopencv_imgcodecs.so.3.2 | 1 +
.../linux/lib/x64/libopencv_imgcodecs.so.3.2.0 | Bin 0 -> 326902 bytes
thirdparty/linux/lib/x64/libopencv_imgproc.so | 1 +
thirdparty/linux/lib/x64/libopencv_imgproc.so.3.2 | 1 +
.../linux/lib/x64/libopencv_imgproc.so.3.2.0 | Bin 0 -> 3859364 bytes
.../linux/lib/x64/libopencv_line_descriptor.so | 1 +
.../linux/lib/x64/libopencv_line_descriptor.so.3.2 | 1 +
.../lib/x64/libopencv_line_descriptor.so.3.2.0 | Bin 0 -> 239807 bytes
thirdparty/linux/lib/x64/libopencv_ml.so | 1 +
thirdparty/linux/lib/x64/libopencv_ml.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_ml.so.3.2.0 | Bin 0 -> 899800 bytes
thirdparty/linux/lib/x64/libopencv_objdetect.so | 1 +
.../linux/lib/x64/libopencv_objdetect.so.3.2 | 1 +
.../linux/lib/x64/libopencv_objdetect.so.3.2.0 | Bin 0 -> 463986 bytes
thirdparty/linux/lib/x64/libopencv_optflow.so | 1 +
thirdparty/linux/lib/x64/libopencv_optflow.so.3.2 | 1 +
.../linux/lib/x64/libopencv_optflow.so.3.2.0 | Bin 0 -> 429880 bytes
.../linux/lib/x64/libopencv_phase_unwrapping.so | 1 +
.../lib/x64/libopencv_phase_unwrapping.so.3.2 | 1 +
.../lib/x64/libopencv_phase_unwrapping.so.3.2.0 | Bin 0 -> 57090 bytes
thirdparty/linux/lib/x64/libopencv_photo.so | 1 +
thirdparty/linux/lib/x64/libopencv_photo.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_photo.so.3.2.0 | Bin 0 -> 999650 bytes
thirdparty/linux/lib/x64/libopencv_plot.so | 1 +
thirdparty/linux/lib/x64/libopencv_plot.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_plot.so.3.2.0 | Bin 0 -> 51256 bytes
thirdparty/linux/lib/x64/libopencv_reg.so | 1 +
thirdparty/linux/lib/x64/libopencv_reg.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_reg.so.3.2.0 | Bin 0 -> 167784 bytes
thirdparty/linux/lib/x64/libopencv_rgbd.so | 1 +
thirdparty/linux/lib/x64/libopencv_rgbd.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_rgbd.so.3.2.0 | Bin 0 -> 628660 bytes
thirdparty/linux/lib/x64/libopencv_saliency.so | 1 +
thirdparty/linux/lib/x64/libopencv_saliency.so.3.2 | 1 +
.../linux/lib/x64/libopencv_saliency.so.3.2.0 | Bin 0 -> 236684 bytes
thirdparty/linux/lib/x64/libopencv_shape.so | 1 +
thirdparty/linux/lib/x64/libopencv_shape.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_shape.so.3.2.0 | Bin 0 -> 265244 bytes
thirdparty/linux/lib/x64/libopencv_stereo.so | 1 +
thirdparty/linux/lib/x64/libopencv_stereo.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_stereo.so.3.2.0 | Bin 0 -> 180362 bytes
thirdparty/linux/lib/x64/libopencv_stitching.so | 1 +
.../linux/lib/x64/libopencv_stitching.so.3.2 | 1 +
.../linux/lib/x64/libopencv_stitching.so.3.2.0 | Bin 0 -> 644997 bytes
.../linux/lib/x64/libopencv_structured_light.so | 1 +
.../lib/x64/libopencv_structured_light.so.3.2 | 1 +
.../lib/x64/libopencv_structured_light.so.3.2.0 | Bin 0 -> 140225 bytes
thirdparty/linux/lib/x64/libopencv_superres.so | 1 +
thirdparty/linux/lib/x64/libopencv_superres.so.3.2 | 1 +
.../linux/lib/x64/libopencv_superres.so.3.2.0 | Bin 0 -> 216109 bytes
.../linux/lib/x64/libopencv_surface_matching.so | 1 +
.../lib/x64/libopencv_surface_matching.so.3.2 | 1 +
.../lib/x64/libopencv_surface_matching.so.3.2.0 | Bin 0 -> 388261 bytes
thirdparty/linux/lib/x64/libopencv_text.so | 1 +
thirdparty/linux/lib/x64/libopencv_text.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_text.so.3.2.0 | Bin 0 -> 460845 bytes
thirdparty/linux/lib/x64/libopencv_tracking.so | 1 +
thirdparty/linux/lib/x64/libopencv_tracking.so.3.2 | 1 +
.../linux/lib/x64/libopencv_tracking.so.3.2.0 | Bin 0 -> 3578478 bytes
thirdparty/linux/lib/x64/libopencv_video.so | 1 +
thirdparty/linux/lib/x64/libopencv_video.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_video.so.3.2.0 | Bin 0 -> 485509 bytes
thirdparty/linux/lib/x64/libopencv_videoio.so | 1 +
thirdparty/linux/lib/x64/libopencv_videoio.so.3.2 | 1 +
.../linux/lib/x64/libopencv_videoio.so.3.2.0 | Bin 0 -> 261110 bytes
thirdparty/linux/lib/x64/libopencv_videostab.so | 1 +
.../linux/lib/x64/libopencv_videostab.so.3.2 | 1 +
.../linux/lib/x64/libopencv_videostab.so.3.2.0 | Bin 0 -> 404525 bytes
thirdparty/linux/lib/x64/libopencv_viz.so | 1 +
thirdparty/linux/lib/x64/libopencv_viz.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_viz.so.3.2.0 | Bin 0 -> 470285 bytes
thirdparty/linux/lib/x64/libopencv_xfeatures2d.so | 1 +
.../linux/lib/x64/libopencv_xfeatures2d.so.3.2 | 1 +
.../linux/lib/x64/libopencv_xfeatures2d.so.3.2.0 | Bin 0 -> 2932735 bytes
thirdparty/linux/lib/x64/libopencv_ximgproc.so | 1 +
thirdparty/linux/lib/x64/libopencv_ximgproc.so.3.2 | 1 +
.../linux/lib/x64/libopencv_ximgproc.so.3.2.0 | Bin 0 -> 1342985 bytes
thirdparty/linux/lib/x64/libopencv_xobjdetect.so | 1 +
.../linux/lib/x64/libopencv_xobjdetect.so.3.2 | 1 +
.../linux/lib/x64/libopencv_xobjdetect.so.3.2.0 | Bin 0 -> 120464 bytes
thirdparty/linux/lib/x64/libopencv_xphoto.so | 1 +
thirdparty/linux/lib/x64/libopencv_xphoto.so.3.2 | 1 +
thirdparty/linux/lib/x64/libopencv_xphoto.so.3.2.0 | Bin 0 -> 528140 bytes
thirdparty/linux/lib/x64/pkgconfig/opencv.pc | 14 +
.../linux/lib/x64/python2.7/dist-packages/cv2.so | Bin 0 -> 3858804 bytes
.../x64/python3.4/dist-packages/cv2.cpython-34m.so | Bin 0 -> 3858951 bytes
thirdparty1/linux/include/opencv/cv.h | 73 +
thirdparty1/linux/include/opencv/cv.hpp | 60 +
thirdparty1/linux/include/opencv/cvaux.h | 57 +
thirdparty1/linux/include/opencv/cvaux.hpp | 52 +
thirdparty1/linux/include/opencv/cvwimage.h | 46 +
thirdparty1/linux/include/opencv/cxcore.h | 52 +
thirdparty1/linux/include/opencv/cxcore.hpp | 53 +
thirdparty1/linux/include/opencv/cxeigen.hpp | 48 +
thirdparty1/linux/include/opencv/cxmisc.h | 8 +
thirdparty1/linux/include/opencv/highgui.h | 48 +
thirdparty1/linux/include/opencv/ml.h | 47 +
thirdparty1/linux/include/opencv2/aruco.hpp | 541 +++
.../linux/include/opencv2/aruco/charuco.hpp | 341 ++
.../linux/include/opencv2/aruco/dictionary.hpp | 205 +
thirdparty1/linux/include/opencv2/bgsegm.hpp | 194 +
thirdparty1/linux/include/opencv2/bioinspired.hpp | 60 +
.../include/opencv2/bioinspired/bioinspired.hpp | 48 +
.../linux/include/opencv2/bioinspired/retina.hpp | 456 ++
.../opencv2/bioinspired/retinafasttonemapping.hpp | 138 +
.../transientareassegmentationmodule.hpp | 205 +
thirdparty1/linux/include/opencv2/calib3d.hpp | 2134 +++++++++
.../linux/include/opencv2/calib3d/calib3d.hpp | 48 +
.../linux/include/opencv2/calib3d/calib3d_c.h | 426 ++
thirdparty1/linux/include/opencv2/ccalib.hpp | 157 +
.../linux/include/opencv2/ccalib/multicalib.hpp | 212 +
.../linux/include/opencv2/ccalib/omnidir.hpp | 312 ++
.../linux/include/opencv2/ccalib/randpattern.hpp | 177 +
thirdparty1/linux/include/opencv2/core.hpp | 3220 ++++++++++++++
thirdparty1/linux/include/opencv2/core/affine.hpp | 517 +++
thirdparty1/linux/include/opencv2/core/base.hpp | 691 +++
.../linux/include/opencv2/core/bufferpool.hpp | 31 +
thirdparty1/linux/include/opencv2/core/core.hpp | 48 +
thirdparty1/linux/include/opencv2/core/core_c.h | 3184 ++++++++++++++
thirdparty1/linux/include/opencv2/core/cuda.hpp | 874 ++++
.../linux/include/opencv2/core/cuda.inl.hpp | 631 +++
.../linux/include/opencv2/core/cuda/block.hpp | 211 +
.../opencv2/core/cuda/border_interpolate.hpp | 722 +++
.../linux/include/opencv2/core/cuda/color.hpp | 309 ++
.../linux/include/opencv2/core/cuda/common.hpp | 109 +
.../include/opencv2/core/cuda/datamov_utils.hpp | 113 +
.../opencv2/core/cuda/detail/color_detail.hpp | 1980 +++++++++
.../include/opencv2/core/cuda/detail/reduce.hpp | 365 ++
.../opencv2/core/cuda/detail/reduce_key_val.hpp | 502 +++
.../opencv2/core/cuda/detail/transform_detail.hpp | 399 ++
.../core/cuda/detail/type_traits_detail.hpp | 191 +
.../core/cuda/detail/vec_distance_detail.hpp | 121 +
.../include/opencv2/core/cuda/dynamic_smem.hpp | 88 +
.../linux/include/opencv2/core/cuda/emulation.hpp | 269 ++
.../linux/include/opencv2/core/cuda/filters.hpp | 286 ++
.../linux/include/opencv2/core/cuda/funcattrib.hpp | 79 +
.../linux/include/opencv2/core/cuda/functional.hpp | 797 ++++
.../linux/include/opencv2/core/cuda/limits.hpp | 128 +
.../linux/include/opencv2/core/cuda/reduce.hpp | 209 +
.../include/opencv2/core/cuda/saturate_cast.hpp | 292 ++
.../linux/include/opencv2/core/cuda/scan.hpp | 258 ++
.../include/opencv2/core/cuda/simd_functions.hpp | 869 ++++
.../linux/include/opencv2/core/cuda/transform.hpp | 75 +
.../include/opencv2/core/cuda/type_traits.hpp | 90 +
.../linux/include/opencv2/core/cuda/utility.hpp | 230 +
.../include/opencv2/core/cuda/vec_distance.hpp | 232 +
.../linux/include/opencv2/core/cuda/vec_math.hpp | 930 ++++
.../linux/include/opencv2/core/cuda/vec_traits.hpp | 288 ++
.../linux/include/opencv2/core/cuda/warp.hpp | 139 +
.../include/opencv2/core/cuda/warp_reduce.hpp | 76 +
.../include/opencv2/core/cuda/warp_shuffle.hpp | 153 +
.../include/opencv2/core/cuda_stream_accessor.hpp | 86 +
.../linux/include/opencv2/core/cuda_types.hpp | 135 +
thirdparty1/linux/include/opencv2/core/cvdef.h | 481 ++
thirdparty1/linux/include/opencv2/core/cvstd.hpp | 1066 +++++
.../linux/include/opencv2/core/cvstd.inl.hpp | 267 ++
thirdparty1/linux/include/opencv2/core/directx.hpp | 184 +
thirdparty1/linux/include/opencv2/core/eigen.hpp | 280 ++
.../linux/include/opencv2/core/fast_math.hpp | 303 ++
thirdparty1/linux/include/opencv2/core/hal/hal.hpp | 250 ++
.../linux/include/opencv2/core/hal/interface.h | 178 +
.../linux/include/opencv2/core/hal/intrin.hpp | 414 ++
.../linux/include/opencv2/core/hal/intrin_cpp.hpp | 1790 ++++++++
.../linux/include/opencv2/core/hal/intrin_neon.hpp | 1234 ++++++
.../linux/include/opencv2/core/hal/intrin_sse.hpp | 1744 ++++++++
.../linux/include/opencv2/core/ippasync.hpp | 195 +
thirdparty1/linux/include/opencv2/core/mat.hpp | 3520 +++++++++++++++
thirdparty1/linux/include/opencv2/core/mat.inl.hpp | 3733 ++++++++++++++++
thirdparty1/linux/include/opencv2/core/matx.hpp | 1407 ++++++
.../linux/include/opencv2/core/neon_utils.hpp | 128 +
thirdparty1/linux/include/opencv2/core/ocl.hpp | 757 ++++
.../linux/include/opencv2/core/ocl_genbase.hpp | 64 +
thirdparty1/linux/include/opencv2/core/opengl.hpp | 729 +++
.../linux/include/opencv2/core/operations.hpp | 530 +++
thirdparty1/linux/include/opencv2/core/optim.hpp | 302 ++
thirdparty1/linux/include/opencv2/core/ovx.hpp | 28 +
.../linux/include/opencv2/core/persistence.hpp | 1274 ++++++
.../linux/include/opencv2/core/private.cuda.hpp | 172 +
thirdparty1/linux/include/opencv2/core/private.hpp | 585 +++
thirdparty1/linux/include/opencv2/core/ptr.inl.hpp | 379 ++
.../linux/include/opencv2/core/saturate.hpp | 150 +
.../linux/include/opencv2/core/sse_utils.hpp | 652 +++
thirdparty1/linux/include/opencv2/core/traits.hpp | 326 ++
thirdparty1/linux/include/opencv2/core/types.hpp | 2264 ++++++++++
thirdparty1/linux/include/opencv2/core/types_c.h | 1837 ++++++++
thirdparty1/linux/include/opencv2/core/utility.hpp | 1171 +++++
.../linux/include/opencv2/core/va_intel.hpp | 77 +
thirdparty1/linux/include/opencv2/core/version.hpp | 71 +
thirdparty1/linux/include/opencv2/core/wimage.hpp | 603 +++
thirdparty1/linux/include/opencv2/cvconfig.h | 208 +
.../linux/include/opencv2/datasets/ar_hmdb.hpp | 80 +
.../linux/include/opencv2/datasets/ar_sports.hpp | 79 +
.../linux/include/opencv2/datasets/dataset.hpp | 545 +++
.../linux/include/opencv2/datasets/fr_adience.hpp | 98 +
.../linux/include/opencv2/datasets/fr_lfw.hpp | 79 +
.../linux/include/opencv2/datasets/gr_chalearn.hpp | 96 +
.../linux/include/opencv2/datasets/gr_skig.hpp | 118 +
.../include/opencv2/datasets/hpe_humaneva.hpp | 90 +
.../linux/include/opencv2/datasets/hpe_parse.hpp | 78 +
.../linux/include/opencv2/datasets/ir_affine.hpp | 80 +
.../linux/include/opencv2/datasets/ir_robot.hpp | 89 +
.../linux/include/opencv2/datasets/is_bsds.hpp | 78 +
.../linux/include/opencv2/datasets/is_weizmann.hpp | 81 +
.../linux/include/opencv2/datasets/msm_epfl.hpp | 90 +
.../include/opencv2/datasets/msm_middlebury.hpp | 81 +
.../linux/include/opencv2/datasets/or_imagenet.hpp | 79 +
.../linux/include/opencv2/datasets/or_mnist.hpp | 79 +
.../linux/include/opencv2/datasets/or_pascal.hpp | 102 +
.../linux/include/opencv2/datasets/or_sun.hpp | 81 +
.../linux/include/opencv2/datasets/pd_caltech.hpp | 89 +
.../linux/include/opencv2/datasets/pd_inria.hpp | 96 +
.../linux/include/opencv2/datasets/slam_kitti.hpp | 87 +
.../include/opencv2/datasets/slam_tumindoor.hpp | 87 +
.../linux/include/opencv2/datasets/tr_chars.hpp | 79 +
.../linux/include/opencv2/datasets/tr_icdar.hpp | 87 +
.../linux/include/opencv2/datasets/tr_svt.hpp | 86 +
.../linux/include/opencv2/datasets/track_alov.hpp | 107 +
.../linux/include/opencv2/datasets/track_vot.hpp | 96 +
.../linux/include/opencv2/datasets/util.hpp | 74 +
thirdparty1/linux/include/opencv2/dnn.hpp | 64 +
.../linux/include/opencv2/dnn/all_layers.hpp | 423 ++
thirdparty1/linux/include/opencv2/dnn/blob.hpp | 341 ++
thirdparty1/linux/include/opencv2/dnn/blob.inl.hpp | 533 +++
thirdparty1/linux/include/opencv2/dnn/dict.hpp | 143 +
thirdparty1/linux/include/opencv2/dnn/dnn.hpp | 350 ++
thirdparty1/linux/include/opencv2/dnn/dnn.inl.hpp | 351 ++
thirdparty1/linux/include/opencv2/dnn/layer.hpp | 148 +
.../linux/include/opencv2/dnn/shape_utils.hpp | 137 +
thirdparty1/linux/include/opencv2/dpm.hpp | 148 +
thirdparty1/linux/include/opencv2/face.hpp | 375 ++
thirdparty1/linux/include/opencv2/face/bif.hpp | 83 +
thirdparty1/linux/include/opencv2/face/facerec.hpp | 166 +
.../include/opencv2/face/predict_collector.hpp | 127 +
thirdparty1/linux/include/opencv2/features2d.hpp | 1365 ++++++
.../include/opencv2/features2d/features2d.hpp | 48 +
thirdparty1/linux/include/opencv2/flann.hpp | 531 +++
.../linux/include/opencv2/flann/all_indices.h | 155 +
.../linux/include/opencv2/flann/allocator.h | 188 +
thirdparty1/linux/include/opencv2/flann/any.h | 324 ++
.../linux/include/opencv2/flann/autotuned_index.h | 588 +++
.../linux/include/opencv2/flann/composite_index.h | 194 +
thirdparty1/linux/include/opencv2/flann/config.h | 38 +
thirdparty1/linux/include/opencv2/flann/defines.h | 177 +
thirdparty1/linux/include/opencv2/flann/dist.h | 905 ++++
thirdparty1/linux/include/opencv2/flann/dummy.h | 16 +
.../linux/include/opencv2/flann/dynamic_bitset.h | 159 +
thirdparty1/linux/include/opencv2/flann/flann.hpp | 48 +
.../linux/include/opencv2/flann/flann_base.hpp | 290 ++
thirdparty1/linux/include/opencv2/flann/general.h | 50 +
.../linux/include/opencv2/flann/ground_truth.h | 94 +
thirdparty1/linux/include/opencv2/flann/hdf5.h | 231 +
thirdparty1/linux/include/opencv2/flann/heap.h | 165 +
.../opencv2/flann/hierarchical_clustering_index.h | 848 ++++
.../linux/include/opencv2/flann/index_testing.h | 318 ++
.../linux/include/opencv2/flann/kdtree_index.h | 621 +++
.../include/opencv2/flann/kdtree_single_index.h | 634 +++
.../linux/include/opencv2/flann/kmeans_index.h | 1171 +++++
.../linux/include/opencv2/flann/linear_index.h | 132 +
thirdparty1/linux/include/opencv2/flann/logger.h | 130 +
.../linux/include/opencv2/flann/lsh_index.h | 392 ++
.../linux/include/opencv2/flann/lsh_table.h | 492 +++
thirdparty1/linux/include/opencv2/flann/matrix.h | 116 +
.../linux/include/opencv2/flann/miniflann.hpp | 158 +
thirdparty1/linux/include/opencv2/flann/nn_index.h | 177 +
.../linux/include/opencv2/flann/object_factory.h | 91 +
thirdparty1/linux/include/opencv2/flann/params.h | 99 +
thirdparty1/linux/include/opencv2/flann/random.h | 133 +
.../linux/include/opencv2/flann/result_set.h | 543 +++
thirdparty1/linux/include/opencv2/flann/sampling.h | 81 +
thirdparty1/linux/include/opencv2/flann/saving.h | 187 +
.../linux/include/opencv2/flann/simplex_downhill.h | 186 +
thirdparty1/linux/include/opencv2/flann/timer.h | 94 +
thirdparty1/linux/include/opencv2/freetype.hpp | 190 +
thirdparty1/linux/include/opencv2/fuzzy.hpp | 66 +
.../linux/include/opencv2/fuzzy/fuzzy_F0_math.hpp | 128 +
.../linux/include/opencv2/fuzzy/fuzzy_image.hpp | 109 +
thirdparty1/linux/include/opencv2/fuzzy/types.hpp | 70 +
thirdparty1/linux/include/opencv2/hdf.hpp | 54 +
thirdparty1/linux/include/opencv2/hdf/hdf5.hpp | 707 +++
thirdparty1/linux/include/opencv2/highgui.hpp | 790 ++++
.../linux/include/opencv2/highgui/highgui.hpp | 48 +
.../linux/include/opencv2/highgui/highgui_c.h | 257 ++
thirdparty1/linux/include/opencv2/imgcodecs.hpp | 281 ++
.../linux/include/opencv2/imgcodecs/imgcodecs.hpp | 48 +
.../linux/include/opencv2/imgcodecs/imgcodecs_c.h | 148 +
thirdparty1/linux/include/opencv2/imgcodecs/ios.h | 57 +
thirdparty1/linux/include/opencv2/imgproc.hpp | 4650 ++++++++++++++++++++
.../opencv2/imgproc/detail/distortion_model.hpp | 123 +
.../linux/include/opencv2/imgproc/hal/hal.hpp | 189 +
.../linux/include/opencv2/imgproc/hal/interface.h | 26 +
.../linux/include/opencv2/imgproc/imgproc.hpp | 48 +
.../linux/include/opencv2/imgproc/imgproc_c.h | 1210 +++++
.../linux/include/opencv2/imgproc/types_c.h | 626 +++
.../linux/include/opencv2/line_descriptor.hpp | 119 +
.../include/opencv2/line_descriptor/descriptor.hpp | 1369 ++++++
thirdparty1/linux/include/opencv2/ml.hpp | 1690 +++++++
thirdparty1/linux/include/opencv2/ml/ml.hpp | 48 +
thirdparty1/linux/include/opencv2/objdetect.hpp | 466 ++
.../opencv2/objdetect/detection_based_tracker.hpp | 225 +
.../linux/include/opencv2/objdetect/objdetect.hpp | 48 +
.../linux/include/opencv2/objdetect/objdetect_c.h | 165 +
thirdparty1/linux/include/opencv2/opencv.hpp | 136 +
.../linux/include/opencv2/opencv_modules.hpp | 58 +
thirdparty1/linux/include/opencv2/optflow.hpp | 364 ++
.../linux/include/opencv2/optflow/motempl.hpp | 147 +
.../linux/include/opencv2/optflow/pcaflow.hpp | 149 +
.../opencv2/optflow/sparse_matching_gpc.hpp | 380 ++
.../linux/include/opencv2/phase_unwrapping.hpp | 61 +
.../phase_unwrapping/histogramphaseunwrapping.hpp | 107 +
.../opencv2/phase_unwrapping/phase_unwrapping.hpp | 74 +
thirdparty1/linux/include/opencv2/photo.hpp | 870 ++++
thirdparty1/linux/include/opencv2/photo/cuda.hpp | 132 +
thirdparty1/linux/include/opencv2/photo/photo.hpp | 48 +
thirdparty1/linux/include/opencv2/photo/photo_c.h | 74 +
thirdparty1/linux/include/opencv2/plot.hpp | 109 +
thirdparty1/linux/include/opencv2/reg/map.hpp | 175 +
.../linux/include/opencv2/reg/mapaffine.hpp | 105 +
thirdparty1/linux/include/opencv2/reg/mapper.hpp | 113 +
.../linux/include/opencv2/reg/mappergradaffine.hpp | 67 +
.../linux/include/opencv2/reg/mappergradeuclid.hpp | 67 +
.../linux/include/opencv2/reg/mappergradproj.hpp | 67 +
.../linux/include/opencv2/reg/mappergradshift.hpp | 67 +
.../include/opencv2/reg/mappergradsimilar.hpp | 67 +
.../linux/include/opencv2/reg/mapperpyramid.hpp | 78 +
.../linux/include/opencv2/reg/mapprojec.hpp | 105 +
thirdparty1/linux/include/opencv2/reg/mapshift.hpp | 96 +
thirdparty1/linux/include/opencv2/rgbd.hpp | 1049 +++++
thirdparty1/linux/include/opencv2/rgbd/linemod.hpp | 458 ++
thirdparty1/linux/include/opencv2/saliency.hpp | 83 +
.../opencv2/saliency/saliencyBaseClasses.hpp | 144 +
.../saliency/saliencySpecializedClasses.hpp | 493 +++
thirdparty1/linux/include/opencv2/shape.hpp | 57 +
thirdparty1/linux/include/opencv2/shape/emdL1.hpp | 72 +
.../linux/include/opencv2/shape/hist_cost.hpp | 111 +
thirdparty1/linux/include/opencv2/shape/shape.hpp | 48 +
.../linux/include/opencv2/shape/shape_distance.hpp | 224 +
.../include/opencv2/shape/shape_transformer.hpp | 132 +
thirdparty1/linux/include/opencv2/stereo.hpp | 280 ++
.../linux/include/opencv2/stereo/descriptor.hpp | 452 ++
.../linux/include/opencv2/stereo/matching.hpp | 624 +++
.../linux/include/opencv2/stereo/stereo.hpp | 49 +
thirdparty1/linux/include/opencv2/stitching.hpp | 320 ++
.../include/opencv2/stitching/detail/autocalib.hpp | 86 +
.../include/opencv2/stitching/detail/blenders.hpp | 167 +
.../include/opencv2/stitching/detail/camera.hpp | 78 +
.../stitching/detail/exposure_compensate.hpp | 136 +
.../include/opencv2/stitching/detail/matchers.hpp | 355 ++
.../opencv2/stitching/detail/motion_estimators.hpp | 357 ++
.../opencv2/stitching/detail/seam_finders.hpp | 285 ++
.../opencv2/stitching/detail/timelapsers.hpp | 91 +
.../include/opencv2/stitching/detail/util.hpp | 121 +
.../include/opencv2/stitching/detail/util_inl.hpp | 131 +
.../include/opencv2/stitching/detail/warpers.hpp | 616 +++
.../opencv2/stitching/detail/warpers_inl.hpp | 774 ++++
.../linux/include/opencv2/stitching/warpers.hpp | 192 +
.../linux/include/opencv2/structured_light.hpp | 68 +
.../opencv2/structured_light/graycodepattern.hpp | 149 +
.../opencv2/structured_light/sinusoidalpattern.hpp | 151 +
.../opencv2/structured_light/structured_light.hpp | 91 +
thirdparty1/linux/include/opencv2/superres.hpp | 207 +
.../include/opencv2/superres/optical_flow.hpp | 203 +
.../linux/include/opencv2/surface_matching.hpp | 402 ++
.../linux/include/opencv2/surface_matching/icp.hpp | 170 +
.../include/opencv2/surface_matching/pose_3d.hpp | 188 +
.../opencv2/surface_matching/ppf_helpers.hpp | 164 +
.../opencv2/surface_matching/ppf_match_3d.hpp | 179 +
.../opencv2/surface_matching/t_hash_int.hpp | 113 +
thirdparty1/linux/include/opencv2/text.hpp | 101 +
.../linux/include/opencv2/text/erfilter.hpp | 360 ++
thirdparty1/linux/include/opencv2/text/ocr.hpp | 470 ++
thirdparty1/linux/include/opencv2/tracking.hpp | 307 ++
.../linux/include/opencv2/tracking/feature.hpp | 415 ++
.../include/opencv2/tracking/kalman_filters.hpp | 228 +
.../include/opencv2/tracking/onlineBoosting.hpp | 288 ++
.../linux/include/opencv2/tracking/onlineMIL.hpp | 118 +
.../linux/include/opencv2/tracking/tldDataset.hpp | 56 +
.../linux/include/opencv2/tracking/tracker.hpp | 1485 +++++++
.../linux/include/opencv2/tracking/tracking.hpp | 46 +
thirdparty1/linux/include/opencv2/video.hpp | 63 +
.../include/opencv2/video/background_segm.hpp | 306 ++
.../linux/include/opencv2/video/tracking.hpp | 626 +++
.../linux/include/opencv2/video/tracking_c.h | 232 +
thirdparty1/linux/include/opencv2/video/video.hpp | 48 +
thirdparty1/linux/include/opencv2/videoio.hpp | 935 ++++
.../linux/include/opencv2/videoio/cap_ios.h | 150 +
.../linux/include/opencv2/videoio/videoio.hpp | 48 +
.../linux/include/opencv2/videoio/videoio_c.h | 587 +++
thirdparty1/linux/include/opencv2/videostab.hpp | 81 +
.../linux/include/opencv2/videostab/deblurring.hpp | 116 +
.../include/opencv2/videostab/fast_marching.hpp | 121 +
.../opencv2/videostab/fast_marching_inl.hpp | 165 +
.../include/opencv2/videostab/frame_source.hpp | 94 +
.../include/opencv2/videostab/global_motion.hpp | 299 ++
.../linux/include/opencv2/videostab/inpainting.hpp | 212 +
.../linux/include/opencv2/videostab/log.hpp | 80 +
.../include/opencv2/videostab/motion_core.hpp | 129 +
.../opencv2/videostab/motion_stabilizing.hpp | 174 +
.../include/opencv2/videostab/optical_flow.hpp | 150 +
.../opencv2/videostab/outlier_rejection.hpp | 101 +
.../include/opencv2/videostab/ring_buffer.hpp | 72 +
.../linux/include/opencv2/videostab/stabilizer.hpp | 200 +
.../opencv2/videostab/wobble_suppression.hpp | 140 +
thirdparty1/linux/include/opencv2/viz.hpp | 84 +
thirdparty1/linux/include/opencv2/viz/types.hpp | 329 ++
thirdparty1/linux/include/opencv2/viz/viz3d.hpp | 351 ++
thirdparty1/linux/include/opencv2/viz/vizcore.hpp | 176 +
.../linux/include/opencv2/viz/widget_accessor.hpp | 89 +
thirdparty1/linux/include/opencv2/viz/widgets.hpp | 850 ++++
thirdparty1/linux/include/opencv2/xfeatures2d.hpp | 842 ++++
.../linux/include/opencv2/xfeatures2d/cuda.hpp | 166 +
.../linux/include/opencv2/xfeatures2d/nonfree.hpp | 156 +
thirdparty1/linux/include/opencv2/ximgproc.hpp | 131 +
.../include/opencv2/ximgproc/deriche_filter.hpp | 77 +
.../include/opencv2/ximgproc/disparity_filter.hpp | 210 +
.../linux/include/opencv2/ximgproc/edge_filter.hpp | 454 ++
.../opencv2/ximgproc/estimated_covariance.hpp | 82 +
.../opencv2/ximgproc/fast_hough_transform.hpp | 164 +
.../opencv2/ximgproc/fast_line_detector.hpp | 81 +
thirdparty1/linux/include/opencv2/ximgproc/lsc.hpp | 157 +
.../include/opencv2/ximgproc/paillou_filter.hpp | 67 +
.../linux/include/opencv2/ximgproc/seeds.hpp | 183 +
.../include/opencv2/ximgproc/segmentation.hpp | 252 ++
.../linux/include/opencv2/ximgproc/slic.hpp | 168 +
.../opencv2/ximgproc/sparse_match_interpolator.hpp | 132 +
.../opencv2/ximgproc/structured_edge_detection.hpp | 128 +
.../opencv2/ximgproc/weighted_median_filter.hpp | 95 +
thirdparty1/linux/include/opencv2/xobjdetect.hpp | 105 +
thirdparty1/linux/include/opencv2/xphoto.hpp | 53 +
.../opencv2/xphoto/bm3d_image_denoising.hpp | 186 +
.../include/opencv2/xphoto/dct_image_denoising.hpp | 79 +
.../linux/include/opencv2/xphoto/inpainting.hpp | 90 +
.../linux/include/opencv2/xphoto/white_balance.hpp | 230 +
thirdparty1/linux/lib/x64/libopencv_aruco.so | 1 +
thirdparty1/linux/lib/x64/libopencv_aruco.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_aruco.so.3.2.0 | Bin 0 -> 365683 bytes
thirdparty1/linux/lib/x64/libopencv_bgsegm.so | 1 +
thirdparty1/linux/lib/x64/libopencv_bgsegm.so.3.2 | 1 +
.../linux/lib/x64/libopencv_bgsegm.so.3.2.0 | Bin 0 -> 74456 bytes
thirdparty1/linux/lib/x64/libopencv_bioinspired.so | 1 +
.../linux/lib/x64/libopencv_bioinspired.so.3.2 | 1 +
.../linux/lib/x64/libopencv_bioinspired.so.3.2.0 | Bin 0 -> 368064 bytes
thirdparty1/linux/lib/x64/libopencv_calib3d.so | 1 +
thirdparty1/linux/lib/x64/libopencv_calib3d.so.3.2 | 1 +
.../linux/lib/x64/libopencv_calib3d.so.3.2.0 | Bin 0 -> 1722717 bytes
thirdparty1/linux/lib/x64/libopencv_ccalib.so | 1 +
thirdparty1/linux/lib/x64/libopencv_ccalib.so.3.2 | 1 +
.../linux/lib/x64/libopencv_ccalib.so.3.2.0 | Bin 0 -> 510896 bytes
thirdparty1/linux/lib/x64/libopencv_core.so | 1 +
thirdparty1/linux/lib/x64/libopencv_core.so.2.4 | 1 +
thirdparty1/linux/lib/x64/libopencv_core.so.2.4.9 | Bin 0 -> 2953515 bytes
thirdparty1/linux/lib/x64/libopencv_core.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_core.so.3.2.0 | Bin 0 -> 3364047 bytes
thirdparty1/linux/lib/x64/libopencv_datasets.so | 1 +
.../linux/lib/x64/libopencv_datasets.so.3.2 | 1 +
.../linux/lib/x64/libopencv_datasets.so.3.2.0 | Bin 0 -> 680235 bytes
thirdparty1/linux/lib/x64/libopencv_dnn.so | 1 +
thirdparty1/linux/lib/x64/libopencv_dnn.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_dnn.so.3.2.0 | Bin 0 -> 3991547 bytes
thirdparty1/linux/lib/x64/libopencv_dpm.so | 1 +
thirdparty1/linux/lib/x64/libopencv_dpm.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_dpm.so.3.2.0 | Bin 0 -> 162599 bytes
thirdparty1/linux/lib/x64/libopencv_face.so | 1 +
thirdparty1/linux/lib/x64/libopencv_face.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_face.so.3.2.0 | Bin 0 -> 215676 bytes
thirdparty1/linux/lib/x64/libopencv_features2d.so | 1 +
.../linux/lib/x64/libopencv_features2d.so.3.2 | 1 +
.../linux/lib/x64/libopencv_features2d.so.3.2.0 | Bin 0 -> 947471 bytes
thirdparty1/linux/lib/x64/libopencv_flann.so | 1 +
thirdparty1/linux/lib/x64/libopencv_flann.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_flann.so.3.2.0 | Bin 0 -> 484888 bytes
thirdparty1/linux/lib/x64/libopencv_freetype.so | 1 +
.../linux/lib/x64/libopencv_freetype.so.3.2 | 1 +
.../linux/lib/x64/libopencv_freetype.so.3.2.0 | Bin 0 -> 40229 bytes
thirdparty1/linux/lib/x64/libopencv_fuzzy.so | 1 +
thirdparty1/linux/lib/x64/libopencv_fuzzy.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_fuzzy.so.3.2.0 | Bin 0 -> 66570 bytes
thirdparty1/linux/lib/x64/libopencv_hdf.so | 1 +
thirdparty1/linux/lib/x64/libopencv_hdf.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_hdf.so.3.2.0 | Bin 0 -> 54559 bytes
thirdparty1/linux/lib/x64/libopencv_highgui.so | 1 +
thirdparty1/linux/lib/x64/libopencv_highgui.so.2.4 | 1 +
.../linux/lib/x64/libopencv_highgui.so.2.4.9 | Bin 0 -> 733938 bytes
thirdparty1/linux/lib/x64/libopencv_highgui.so.3.2 | 1 +
.../linux/lib/x64/libopencv_highgui.so.3.2.0 | Bin 0 -> 30075 bytes
thirdparty1/linux/lib/x64/libopencv_imgcodecs.so | 1 +
.../linux/lib/x64/libopencv_imgcodecs.so.3.2 | 1 +
.../linux/lib/x64/libopencv_imgcodecs.so.3.2.0 | Bin 0 -> 326902 bytes
thirdparty1/linux/lib/x64/libopencv_imgproc.so | 1 +
thirdparty1/linux/lib/x64/libopencv_imgproc.so.2.4 | 1 +
.../linux/lib/x64/libopencv_imgproc.so.2.4.9 | Bin 0 -> 2681811 bytes
thirdparty1/linux/lib/x64/libopencv_imgproc.so.3.2 | 1 +
.../linux/lib/x64/libopencv_imgproc.so.3.2.0 | Bin 0 -> 3859364 bytes
.../linux/lib/x64/libopencv_line_descriptor.so | 1 +
.../linux/lib/x64/libopencv_line_descriptor.so.3.2 | 1 +
.../lib/x64/libopencv_line_descriptor.so.3.2.0 | Bin 0 -> 239807 bytes
thirdparty1/linux/lib/x64/libopencv_ml.so | 1 +
thirdparty1/linux/lib/x64/libopencv_ml.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_ml.so.3.2.0 | Bin 0 -> 899800 bytes
thirdparty1/linux/lib/x64/libopencv_objdetect.so | 1 +
.../linux/lib/x64/libopencv_objdetect.so.3.2 | 1 +
.../linux/lib/x64/libopencv_objdetect.so.3.2.0 | Bin 0 -> 463986 bytes
thirdparty1/linux/lib/x64/libopencv_optflow.so | 1 +
thirdparty1/linux/lib/x64/libopencv_optflow.so.3.2 | 1 +
.../linux/lib/x64/libopencv_optflow.so.3.2.0 | Bin 0 -> 429880 bytes
.../linux/lib/x64/libopencv_phase_unwrapping.so | 1 +
.../lib/x64/libopencv_phase_unwrapping.so.3.2 | 1 +
.../lib/x64/libopencv_phase_unwrapping.so.3.2.0 | Bin 0 -> 57090 bytes
thirdparty1/linux/lib/x64/libopencv_photo.so | 1 +
thirdparty1/linux/lib/x64/libopencv_photo.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_photo.so.3.2.0 | Bin 0 -> 999650 bytes
thirdparty1/linux/lib/x64/libopencv_plot.so | 1 +
thirdparty1/linux/lib/x64/libopencv_plot.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_plot.so.3.2.0 | Bin 0 -> 51256 bytes
thirdparty1/linux/lib/x64/libopencv_reg.so | 1 +
thirdparty1/linux/lib/x64/libopencv_reg.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_reg.so.3.2.0 | Bin 0 -> 167784 bytes
thirdparty1/linux/lib/x64/libopencv_rgbd.so | 1 +
thirdparty1/linux/lib/x64/libopencv_rgbd.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_rgbd.so.3.2.0 | Bin 0 -> 628660 bytes
thirdparty1/linux/lib/x64/libopencv_saliency.so | 1 +
.../linux/lib/x64/libopencv_saliency.so.3.2 | 1 +
.../linux/lib/x64/libopencv_saliency.so.3.2.0 | Bin 0 -> 236684 bytes
thirdparty1/linux/lib/x64/libopencv_shape.so | 1 +
thirdparty1/linux/lib/x64/libopencv_shape.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_shape.so.3.2.0 | Bin 0 -> 265244 bytes
thirdparty1/linux/lib/x64/libopencv_stereo.so | 1 +
thirdparty1/linux/lib/x64/libopencv_stereo.so.3.2 | 1 +
.../linux/lib/x64/libopencv_stereo.so.3.2.0 | Bin 0 -> 180362 bytes
thirdparty1/linux/lib/x64/libopencv_stitching.so | 1 +
.../linux/lib/x64/libopencv_stitching.so.3.2 | 1 +
.../linux/lib/x64/libopencv_stitching.so.3.2.0 | Bin 0 -> 644997 bytes
.../linux/lib/x64/libopencv_structured_light.so | 1 +
.../lib/x64/libopencv_structured_light.so.3.2 | 1 +
.../lib/x64/libopencv_structured_light.so.3.2.0 | Bin 0 -> 140225 bytes
thirdparty1/linux/lib/x64/libopencv_superres.so | 1 +
.../linux/lib/x64/libopencv_superres.so.3.2 | 1 +
.../linux/lib/x64/libopencv_superres.so.3.2.0 | Bin 0 -> 216109 bytes
.../linux/lib/x64/libopencv_surface_matching.so | 1 +
.../lib/x64/libopencv_surface_matching.so.3.2 | 1 +
.../lib/x64/libopencv_surface_matching.so.3.2.0 | Bin 0 -> 388261 bytes
thirdparty1/linux/lib/x64/libopencv_text.so | 1 +
thirdparty1/linux/lib/x64/libopencv_text.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_text.so.3.2.0 | Bin 0 -> 460845 bytes
thirdparty1/linux/lib/x64/libopencv_tracking.so | 1 +
.../linux/lib/x64/libopencv_tracking.so.3.2 | 1 +
.../linux/lib/x64/libopencv_tracking.so.3.2.0 | Bin 0 -> 3578478 bytes
thirdparty1/linux/lib/x64/libopencv_video.so | 1 +
thirdparty1/linux/lib/x64/libopencv_video.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_video.so.3.2.0 | Bin 0 -> 485509 bytes
thirdparty1/linux/lib/x64/libopencv_videoio.so | 1 +
thirdparty1/linux/lib/x64/libopencv_videoio.so.3.2 | 1 +
.../linux/lib/x64/libopencv_videoio.so.3.2.0 | Bin 0 -> 261110 bytes
thirdparty1/linux/lib/x64/libopencv_videostab.so | 1 +
.../linux/lib/x64/libopencv_videostab.so.3.2 | 1 +
.../linux/lib/x64/libopencv_videostab.so.3.2.0 | Bin 0 -> 404525 bytes
thirdparty1/linux/lib/x64/libopencv_viz.so | 1 +
thirdparty1/linux/lib/x64/libopencv_viz.so.3.2 | 1 +
thirdparty1/linux/lib/x64/libopencv_viz.so.3.2.0 | Bin 0 -> 470285 bytes
thirdparty1/linux/lib/x64/libopencv_xfeatures2d.so | 1 +
.../linux/lib/x64/libopencv_xfeatures2d.so.3.2 | 1 +
.../linux/lib/x64/libopencv_xfeatures2d.so.3.2.0 | Bin 0 -> 2932735 bytes
thirdparty1/linux/lib/x64/libopencv_ximgproc.so | 1 +
.../linux/lib/x64/libopencv_ximgproc.so.3.2 | 1 +
.../linux/lib/x64/libopencv_ximgproc.so.3.2.0 | Bin 0 -> 1342985 bytes
thirdparty1/linux/lib/x64/libopencv_xobjdetect.so | 1 +
.../linux/lib/x64/libopencv_xobjdetect.so.3.2 | 1 +
.../linux/lib/x64/libopencv_xobjdetect.so.3.2.0 | Bin 0 -> 120464 bytes
thirdparty1/linux/lib/x64/libopencv_xphoto.so | 1 +
thirdparty1/linux/lib/x64/libopencv_xphoto.so.3.2 | 1 +
.../linux/lib/x64/libopencv_xphoto.so.3.2.0 | Bin 0 -> 528140 bytes
thirdparty1/linux/lib/x64/pkgconfig/opencv.pc | 14 +
.../linux/lib/x64/python2.7/dist-packages/cv2.so | Bin 0 -> 3858804 bytes
.../x64/python3.4/dist-packages/cv2.cpython-34m.so | Bin 0 -> 3858951 bytes
unloader.sce | 14 +
1754 files changed, 304639 insertions(+)
create mode 100644 builder.sce
create mode 100644 builder.sce~
create mode 100644 cleaner.sce
create mode 100644 etc/FOSSEE_Image_Processing_Toolbox.quit
create mode 100644 etc/FOSSEE_Image_Processing_Toolbox.quit~
create mode 100644 etc/FOSSEE_Image_Processing_Toolbox.start
create mode 100644 etc/FOSSEE_Image_Processing_Toolbox.start~
create mode 100644 etc/FOSSEE_Optimization_Toolbox.quit~
create mode 100644 etc/FOSSEE_Optimization_Toolbox.start~
create mode 100644 help/builder_help.sce
create mode 100644 help/builder_help.sce~
create mode 100644 help/en_US/build_help.sce
create mode 100644 help/en_US/build_help.sce~
create mode 100644 help/en_US/master_help.xml
create mode 100644 help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
create mode 100644 help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
create mode 100644 help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
create mode 100644 help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
create mode 100644 help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
create mode 100644 help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
create mode 100644 help/en_US/scilab_en_US_help/ScilabCaution.png
create mode 100644 help/en_US/scilab_en_US_help/ScilabEdit.png
create mode 100644 help/en_US/scilab_en_US_help/ScilabExecute.png
create mode 100644 help/en_US/scilab_en_US_help/ScilabImportant.png
create mode 100644 help/en_US/scilab_en_US_help/ScilabNote.png
create mode 100644 help/en_US/scilab_en_US_help/ScilabTip.png
create mode 100644 help/en_US/scilab_en_US_help/ScilabWarning.png
create mode 100644 help/en_US/scilab_en_US_help/c_code.css
create mode 100644 help/en_US/scilab_en_US_help/index.html
create mode 100644 help/en_US/scilab_en_US_help/jhelpidx.xml
create mode 100644 help/en_US/scilab_en_US_help/jhelpmap.jhm
create mode 100644 help/en_US/scilab_en_US_help/jhelpset.hs
create mode 100644 help/en_US/scilab_en_US_help/jhelptoc.xml
create mode 100644 help/en_US/scilab_en_US_help/scilab_code.css
create mode 100644 help/en_US/scilab_en_US_help/style.css
create mode 100644 help/en_US/scilab_en_US_help/xml_code.css
create mode 100644 jar/scilab_en_US_help.jar
create mode 100644 lena.jpeg
create mode 100644 loader.sce
create mode 100644 macros/BRISKPoints.bin
create mode 100644 macros/BRISKPoints.sci
create mode 100644 macros/CascadeObjectDetector.bin
create mode 100644 macros/CascadeObjectDetector.sci
create mode 100644 macros/DCT.bin
create mode 100644 macros/DCT.sci
create mode 100644 macros/Deinterlacer.bin
create mode 100644 macros/Deinterlacer.sci
create mode 100644 macros/FFT.bin
create mode 100644 macros/FFT.sci
create mode 100644 macros/ForegroundDetector.bin
create mode 100644 macros/ForegroundDetector.sci
create mode 100644 macros/IDCT.bin
create mode 100644 macros/IDCT.sci
create mode 100644 macros/IFFT.bin
create mode 100644 macros/IFFT.sci
create mode 100644 macros/KalmanFilter.bin
create mode 100644 macros/KalmanFilter.sci
create mode 100644 macros/SURFPoints.bin
create mode 100644 macros/SURFPoints.sci
create mode 100644 macros/TemplateMatcher.bin
create mode 100644 macros/TemplateMatcher.sci
create mode 100644 macros/VideoReader.bin
create mode 100644 macros/VideoReader.sci
create mode 100644 macros/adapthisteq.bin
create mode 100644 macros/adapthisteq.sci
create mode 100644 macros/affine2d.bin
create mode 100644 macros/affine2d.sci
create mode 100644 macros/approxpolyDP.bin
create mode 100644 macros/approxpolyDP.sci
create mode 100644 macros/arclength.bin
create mode 100644 macros/arclength.sci
create mode 100644 macros/arrowedline.bin
create mode 100644 macros/arrowedline.sci
create mode 100644 macros/autoCorrelator.bin
create mode 100644 macros/autoCorrelator.sci
create mode 100644 macros/bagOfFeatures.bin
create mode 100644 macros/bagOfFeatures.sci
create mode 100644 macros/bagStructToList.bin
create mode 100644 macros/bagStructToList.sci
create mode 100644 macros/bbox2points.bin
create mode 100644 macros/bbox2points.sci
create mode 100644 macros/bboxOverlapRatio.bin
create mode 100644 macros/bboxOverlapRatio.sci
create mode 100644 macros/bilateralFilter.bin
create mode 100644 macros/bilateralFilter.sci
create mode 100644 macros/binaryFeatures.bin
create mode 100644 macros/binaryFeatures.sci
create mode 100644 macros/blobAnalysis.bin
create mode 100644 macros/blobAnalysis.sci
create mode 100644 macros/blur.bin
create mode 100644 macros/blur.sci
create mode 100644 macros/borderInterpolate.bin
create mode 100644 macros/borderInterpolate.sci
create mode 100644 macros/boundingRect.bin
create mode 100644 macros/boundingRect.sci
create mode 100644 macros/boxfilter.bin
create mode 100644 macros/boxfilter.sci
create mode 100644 macros/buildmacros.sce
create mode 100644 macros/bundleAdjustment.bin
create mode 100644 macros/bundleAdjustment.sci
create mode 100644 macros/bwlookup.bin
create mode 100644 macros/bwlookup.sci
create mode 100644 macros/bwulterode.bin
create mode 100644 macros/bwulterode.sci
create mode 100644 macros/cameraMatrix.bin
create mode 100644 macros/cameraMatrix.sci
create mode 100644 macros/cameraParameters.bin
create mode 100644 macros/cameraParameters.sci
create mode 100644 macros/canny.bin
create mode 100644 macros/canny.sci
create mode 100644 macros/checkCCE.bin
create mode 100644 macros/checkCCE.sci
create mode 100644 macros/checkCEE.bin
create mode 100644 macros/checkCEE.sci
create mode 100644 macros/checkCIE.bin
create mode 100644 macros/checkCIE.sci
create mode 100644 macros/checkSCE.bin
create mode 100644 macros/checkSCE.sci
create mode 100644 macros/checkStereoParam.bin
create mode 100644 macros/checkStereoParam.sci
create mode 100644 macros/circle.bin
create mode 100644 macros/circle.sci
create mode 100644 macros/classifierToList.bin
create mode 100644 macros/classifierToList.sci
create mode 100644 macros/clipline.bin
create mode 100644 macros/clipline.sci
create mode 100644 macros/contourarea.bin
create mode 100644 macros/contourarea.sci
create mode 100644 macros/convexhull.bin
create mode 100644 macros/convexhull.sci
create mode 100644 macros/convmtx2.bin
create mode 100644 macros/convmtx2.sci
create mode 100644 macros/convolver.bin
create mode 100644 macros/convolver.sci
create mode 100644 macros/copymakeborder.bin
create mode 100644 macros/copymakeborder.sci
create mode 100644 macros/corner.bin
create mode 100644 macros/corner.sci
create mode 100644 macros/cornerEigenValsAndVecs.bin
create mode 100644 macros/cornerEigenValsAndVecs.sci
create mode 100644 macros/cornerHarris.bin
create mode 100644 macros/cornerHarris.sci
create mode 100644 macros/cornerMinEigenVal.bin
create mode 100644 macros/cornerMinEigenVal.sci
create mode 100644 macros/crossCorrelator.bin
create mode 100644 macros/crossCorrelator.sci
create mode 100644 macros/cvHoughLines.bin
create mode 100644 macros/cvHoughLines.sci
create mode 100644 macros/cvMaximum.bin
create mode 100644 macros/cvMaximum.sci
create mode 100644 macros/cvMean.bin
create mode 100644 macros/cvMean.sci
create mode 100644 macros/cvMedian.bin
create mode 100644 macros/cvMedian.sci
create mode 100644 macros/cvMinimum.bin
create mode 100644 macros/cvMinimum.sci
create mode 100644 macros/cvStandardDeviation.bin
create mode 100644 macros/cvStandardDeviation.sci
create mode 100644 macros/cvVariance.bin
create mode 100644 macros/cvVariance.sci
create mode 100644 macros/cv_imread.bin
create mode 100644 macros/cv_imread.sci
create mode 100644 macros/cv_imread.sci~
create mode 100644 macros/cvtColor.bin
create mode 100644 macros/cvtColor.sci
create mode 100644 macros/dctmtx.bin
create mode 100644 macros/dctmtx.sci
create mode 100644 macros/decorrstretch.bin
create mode 100644 macros/decorrstretch.sci
create mode 100644 macros/demosaic.bin
create mode 100644 macros/demosaic.sci
create mode 100644 macros/detectBRISKFeatures.bin
create mode 100644 macros/detectBRISKFeatures.sci
create mode 100644 macros/detectCheckerboardPoints.bin
create mode 100644 macros/detectCheckerboardPoints.sci
create mode 100644 macros/detectFASTFeatures.bin
create mode 100644 macros/detectFASTFeatures.sci
create mode 100644 macros/detectHarrisFeatures.bin
create mode 100644 macros/detectHarrisFeatures.sci
create mode 100644 macros/detectMSERFeatures.bin
create mode 100644 macros/detectMSERFeatures.sci
create mode 100644 macros/detectMinEigenFeatures.bin
create mode 100644 macros/detectMinEigenFeatures.sci
create mode 100644 macros/detectSURFFeatures.bin
create mode 100644 macros/detectSURFFeatures.sci
create mode 100644 macros/dilate.bin
create mode 100644 macros/dilate.sci
create mode 100644 macros/displayErrors.bin
create mode 100644 macros/displayErrors.sci
create mode 100644 macros/ellipse.sce
create mode 100644 macros/ellipse2poly.bin
create mode 100644 macros/ellipse2poly.sci
create mode 100644 macros/erode.bin
create mode 100644 macros/erode.sci
create mode 100644 macros/estimateFundamentalMatrix.bin
create mode 100644 macros/estimateFundamentalMatrix.sci
create mode 100644 macros/estimateGeometricTransform.bin
create mode 100644 macros/estimateGeometricTransform.sci
create mode 100644 macros/estimateUncalibratedRectification.bin
create mode 100644 macros/estimateUncalibratedRectification.sci
create mode 100644 macros/evaluate.bin
create mode 100644 macros/evaluate.sci
create mode 100644 macros/evaluateImageRetrieval.bin
create mode 100644 macros/evaluateImageRetrieval.sci
create mode 100644 macros/extractFeatures.bin
create mode 100644 macros/extractFeatures.sci
create mode 100644 macros/extractHOGFeatures.bin
create mode 100644 macros/extractHOGFeatures.sci
create mode 100644 macros/extractLBPFeatures.bin
create mode 100644 macros/extractLBPFeatures.sci
create mode 100644 macros/fftshift.bin
create mode 100644 macros/fftshift.sci
create mode 100644 macros/fillconvexpoly.bin
create mode 100644 macros/fillconvexpoly.sci
create mode 100644 macros/filter.bin
create mode 100644 macros/filter.sci
create mode 100644 macros/findcontours.bin
create mode 100644 macros/findcontours.sci
create mode 100644 macros/fitellipse.bin
create mode 100644 macros/fitellipse.sci
create mode 100644 macros/fsamp2.bin
create mode 100644 macros/fsamp2.sci
create mode 100644 macros/ftrans2.bin
create mode 100644 macros/ftrans2.sci
create mode 100644 macros/gabor.bin
create mode 100644 macros/gabor.sci
create mode 100644 macros/gaussianblur.bin
create mode 100644 macros/gaussianblur.sci
create mode 100644 macros/genCheckerboardPoints.bin
create mode 100644 macros/genCheckerboardPoints.sci
create mode 100644 macros/geometricshearer.bin
create mode 100644 macros/geometricshearer.sci
create mode 100644 macros/getStructuringElement.bin
create mode 100644 macros/getStructuringElement.sci
create mode 100644 macros/getTextSize.bin
create mode 100644 macros/getTextSize.sci
create mode 100644 macros/getgaussiankernel.bin
create mode 100644 macros/getgaussiankernel.sci
create mode 100644 macros/getkerneltype.bin
create mode 100644 macros/getkerneltype.sci
create mode 100644 macros/getrectsubpix.bin
create mode 100644 macros/getrectsubpix.sci
create mode 100644 macros/getrotationmatrix2d.bin
create mode 100644 macros/getrotationmatrix2d.sci
create mode 100644 macros/goodfeaturestotrack.bin
create mode 100644 macros/goodfeaturestotrack.sci
create mode 100644 macros/grayconnected.bin
create mode 100644 macros/grayconnected.sci
create mode 100644 macros/graycoprops.bin
create mode 100644 macros/graycoprops.sci
create mode 100644 macros/graydiffweight.bin
create mode 100644 macros/graydiffweight.sci
create mode 100644 macros/graydist.bin
create mode 100644 macros/graydist.sci
create mode 100644 macros/has_frame.bin
create mode 100644 macros/has_frame.sci
create mode 100644 macros/histeq.bin
create mode 100644 macros/histeq.sci
create mode 100644 macros/houghcircles.bin
create mode 100644 macros/houghcircles.sci
create mode 100644 macros/houghlines.bin
create mode 100644 macros/houghlines.sci
create mode 100644 macros/houghlinesp.bin
create mode 100644 macros/houghlinesp.sci
create mode 100644 macros/ifftshift.bin
create mode 100644 macros/ifftshift.sci
create mode 100644 macros/im2double.bin
create mode 100644 macros/im2double.sci
create mode 100644 macros/imadd.bin
create mode 100644 macros/imadd.sci
create mode 100644 macros/imageSet.bin
create mode 100644 macros/imageSet.sci
create mode 100644 macros/imageSetToList.bin
create mode 100644 macros/imageSetToList.sci
create mode 100644 macros/imboxfilt3.bin
create mode 100644 macros/imboxfilt3.sci
create mode 100644 macros/imcomplement.bin
create mode 100644 macros/imcomplement.sci
create mode 100644 macros/imcontour.bin
create mode 100644 macros/imcontour.sci
create mode 100644 macros/imcontrast.bin
create mode 100644 macros/imcontrast.sci
create mode 100644 macros/imcrop.bin
create mode 100644 macros/imcrop.sci
create mode 100644 macros/imcrop.sci~
create mode 100644 macros/imdivide.bin
create mode 100644 macros/imdivide.sci
create mode 100644 macros/imextendedmax.bin
create mode 100644 macros/imextendedmax.sci
create mode 100644 macros/imextendedmin.bin
create mode 100644 macros/imextendedmin.sci
create mode 100644 macros/imfill.bin
create mode 100644 macros/imfill.sci
create mode 100644 macros/imfindcircles.bin
create mode 100644 macros/imfindcircles.sci
create mode 100644 macros/imfuse.bin
create mode 100644 macros/imfuse.sci
create mode 100644 macros/imgSetToList.bin
create mode 100644 macros/imgSetToList.sci
create mode 100644 macros/imgaborfit.bin
create mode 100644 macros/imgaborfit.sci
create mode 100644 macros/imgaussfilt3.bin
create mode 100644 macros/imgaussfilt3.sci
create mode 100644 macros/imguidedfilter.bin
create mode 100644 macros/imguidedfilter.sci
create mode 100644 macros/imhistmatch.bin
create mode 100644 macros/imhistmatch.sci
create mode 100644 macros/imhmin.bin
create mode 100644 macros/imhmin.sci
create mode 100644 macros/imhmin.sci~
create mode 100644 macros/imimposemin.bin
create mode 100644 macros/imimposemin.sci
create mode 100644 macros/immultiply.bin
create mode 100644 macros/immultiply.sci
create mode 100644 macros/impixel.bin
create mode 100644 macros/impixel.sci
create mode 100644 macros/imread.bin
create mode 100644 macros/imread.sci
create mode 100644 macros/imread.sci~
create mode 100644 macros/imrect.bin
create mode 100644 macros/imrect.sci
create mode 100644 macros/imresize.bin
create mode 100644 macros/imresize.sci
create mode 100644 macros/imsharpen.bin
create mode 100644 macros/imsharpen.sci
create mode 100644 macros/imsharpen.sci~
create mode 100644 macros/imshow.bin
create mode 100644 macros/imshow.sci
create mode 100644 macros/imshowpair.bin
create mode 100644 macros/imshowpair.sci
create mode 100644 macros/imsubtract.bin
create mode 100644 macros/imsubtract.sci
create mode 100644 macros/imwarp.bin
create mode 100644 macros/imwarp.sci
create mode 100644 macros/imwrite.bin
create mode 100644 macros/imwrite.sci
create mode 100644 macros/ind2gray.bin
create mode 100644 macros/ind2gray.sci
create mode 100644 macros/indexImages.bin
create mode 100644 macros/indexImages.sci
create mode 100644 macros/indexImages.sci~
create mode 100644 macros/integralFilter.bin
create mode 100644 macros/integralFilter.sci
create mode 100644 macros/integralImage.bin
create mode 100644 macros/integralImage.sci
create mode 100644 macros/integralImage.sci~
create mode 100644 macros/integralKernel.bin
create mode 100644 macros/integralKernel.sci
create mode 100644 macros/invertedIndexImages.bin
create mode 100644 macros/invertedIndexImages.sci
create mode 100644 macros/isEpipoleInImage.bin
create mode 100644 macros/isEpipoleInImage.sci
create mode 100644 macros/lab2double.bin
create mode 100644 macros/lab2double.sci
create mode 100644 macros/lab2rgb.bin
create mode 100644 macros/lab2rgb.sci
create mode 100644 macros/lab2uint16.bin
create mode 100644 macros/lab2uint16.sci
create mode 100644 macros/lab2uint8.bin
create mode 100644 macros/lab2uint8.sci
create mode 100644 macros/lab2xyz.bin
create mode 100644 macros/lab2xyz.sci
create mode 100644 macros/laplacian.bin
create mode 100644 macros/laplacian.sci
create mode 100644 macros/lib
create mode 100644 macros/line.bin
create mode 100644 macros/line.sci
create mode 100644 macros/lineToBorderPoints.bin
create mode 100644 macros/lineToBorderPoints.sci
create mode 100644 macros/localMaximaFinder.bin
create mode 100644 macros/localMaximaFinder.sci
create mode 100644 macros/makecform.bin
create mode 100644 macros/makecform.sci
create mode 100644 macros/matchFeatures.bin
create mode 100644 macros/matchFeatures.sci
create mode 100644 macros/mattolist.bin
create mode 100644 macros/mattolist.sci
create mode 100644 macros/mattolist.sci~
create mode 100644 macros/mean.bin
create mode 100644 macros/mean.sci
create mode 100644 macros/medianblur.bin
create mode 100644 macros/medianblur.sci
create mode 100644 macros/minAreaRect.bin
create mode 100644 macros/minAreaRect.sci
create mode 100644 macros/minimumenclosingcirlce.bin
create mode 100644 macros/minimumenclosingcirlce.sci
create mode 100644 macros/montage.bin
create mode 100644 macros/montage.sci
create mode 100644 macros/morphologyEx.bin
create mode 100644 macros/morphologyEx.sci
create mode 100644 macros/names
create mode 100644 macros/ntsc2rgb.bin
create mode 100644 macros/ntsc2rgb.sci
create mode 100644 macros/ocr.bin
create mode 100644 macros/ocr.sci
create mode 100644 macros/opencv_imread.bin
create mode 100644 macros/opencv_imread.sci
create mode 100644 macros/opticalFlowFarneback.bin
create mode 100644 macros/opticalFlowFarneback.sci
create mode 100644 macros/partition.bin
create mode 100644 macros/partition.sci
create mode 100644 macros/peopleDetector.bin
create mode 100644 macros/peopleDetector.sci
create mode 100644 macros/predict.bin
create mode 100644 macros/predict.sci
create mode 100644 macros/puttext.bin
create mode 100644 macros/puttext.sci
create mode 100644 macros/pyrDown.bin
create mode 100644 macros/pyrDown.sci
create mode 100644 macros/pyrMeanShiftFiltering.bin
create mode 100644 macros/pyrMeanShiftFiltering.sci
create mode 100644 macros/pyrMeanShiftFiltering.sci~
create mode 100644 macros/pyrUp.bin
create mode 100644 macros/pyrUp.sci
create mode 100644 macros/pyramid.bin
create mode 100644 macros/pyramid.sci
create mode 100644 macros/readForegroundMask.bin
create mode 100644 macros/readForegroundMask.sci
create mode 100644 macros/readframe.bin
create mode 100644 macros/readframe.sci
create mode 100644 macros/rectangle.bin
create mode 100644 macros/rectangle.sci
create mode 100644 macros/rectifyStereoImages.bin
create mode 100644 macros/rectifyStereoImages.sci
create mode 100644 macros/rectifyStereoImages.sci~
create mode 100644 macros/regionfill.bin
create mode 100644 macros/regionfill.sci
create mode 100644 macros/retrieveImages.bin
create mode 100644 macros/retrieveImages.sci
create mode 100644 macros/rgb2lab.bin
create mode 100644 macros/rgb2lab.sci
create mode 100644 macros/rgb2ntsc.bin
create mode 100644 macros/rgb2ntsc.sci
create mode 100644 macros/rgb2xyz.bin
create mode 100644 macros/rgb2xyz.sci
create mode 100644 macros/roifill.bin
create mode 100644 macros/roifill.sci
create mode 100644 macros/roipoly.bin
create mode 100644 macros/roipoly.sci
create mode 100644 macros/rotationVectorToMatrix.bin
create mode 100644 macros/rotationVectorToMatrix.sci
create mode 100644 macros/scharr.bin
create mode 100644 macros/scharr.sci
create mode 100644 macros/selectStrongestBbox.bin
create mode 100644 macros/selectStrongestBbox.sci
create mode 100644 macros/sepFilter2D.bin
create mode 100644 macros/sepFilter2D.sci
create mode 100644 macros/show.bin
create mode 100644 macros/show.sci
create mode 100644 macros/showMatchedFeatures.bin
create mode 100644 macros/showMatchedFeatures.sci
create mode 100644 macros/showReprojectionErrors.bin
create mode 100644 macros/showReprojectionErrors.sci
create mode 100644 macros/sobel.bin
create mode 100644 macros/sobel.sci
create mode 100644 macros/ssim.bin
create mode 100644 macros/ssim.sci
create mode 100644 macros/stereoParameters.bin
create mode 100644 macros/stereoParameters.sci
create mode 100644 macros/threshold.bin
create mode 100644 macros/threshold.sci
create mode 100644 macros/trainCascadeObjectDetector.bin
create mode 100644 macros/trainCascadeObjectDetector.sci
create mode 100644 macros/trainImageCategoryClassifier.bin
create mode 100644 macros/trainImageCategoryClassifier.sci
create mode 100644 macros/triangulatePoints.bin
create mode 100644 macros/triangulatePoints.sci
create mode 100644 macros/undistort.bin
create mode 100644 macros/undistort.sci
create mode 100644 macros/undistortImage.bin
create mode 100644 macros/undistortImage.sci
create mode 100644 macros/undistortPoints.bin
create mode 100644 macros/undistortPoints.sci
create mode 100644 macros/viscircle.bin
create mode 100644 macros/viscircle.sci
create mode 100644 macros/warpaffine.bin
create mode 100644 macros/warpaffine.sci
create mode 100644 macros/watershed.bin
create mode 100644 macros/watershed.sci
create mode 100644 macros/whitepoint.bin
create mode 100644 macros/whitepoint.sci
create mode 100644 macros/wiener2.bin
create mode 100644 macros/wiener2.sci
create mode 100644 macros/xyz2double.bin
create mode 100644 macros/xyz2double.sci
create mode 100644 macros/xyz2lab.bin
create mode 100644 macros/xyz2lab.sci
create mode 100644 macros/xyz2rgb.bin
create mode 100644 macros/xyz2rgb.sci
create mode 100644 macros/xyz2uint16.bin
create mode 100644 macros/xyz2uint16.sci
create mode 100644 sci_gateway/builder_gateway.sce
create mode 100644 sci_gateway/cleaner_gateway.sce
create mode 100644 sci_gateway/cpp/builder_gateway_cpp.sce
create mode 100644 sci_gateway/cpp/builder_gateway_cpp.sce~
create mode 100644 sci_gateway/cpp/cleaner.sce
create mode 100644 sci_gateway/cpp/common.cpp
create mode 100644 sci_gateway/cpp/common.cpp~
create mode 100644 sci_gateway/cpp/common.h
create mode 100644 sci_gateway/cpp/dctmtx.cpp
create mode 100644 sci_gateway/cpp/lab2xyz.cpp
create mode 100644 sci_gateway/cpp/libFOSSEE_Image_Processing_Toolbox.c
create mode 100755 sci_gateway/cpp/libFOSSEE_Image_Processing_Toolbox.so
create mode 100644 sci_gateway/cpp/loader.sce
create mode 100644 sci_gateway/cpp/multithresh.cpp
create mode 100644 sci_gateway/cpp/opencv_adapthisteq.cpp
create mode 100644 sci_gateway/cpp/opencv_affine2d.cpp
create mode 100644 sci_gateway/cpp/opencv_applycform.cpp
create mode 100644 sci_gateway/cpp/opencv_approxpolyDP.cpp
create mode 100644 sci_gateway/cpp/opencv_arclength.cpp
create mode 100644 sci_gateway/cpp/opencv_arrowedline.cpp
create mode 100644 sci_gateway/cpp/opencv_bilateralfilter.cpp
create mode 100644 sci_gateway/cpp/opencv_blur.cpp
create mode 100644 sci_gateway/cpp/opencv_borderInterpolate.cpp
create mode 100644 sci_gateway/cpp/opencv_boundingRect.cpp
create mode 100644 sci_gateway/cpp/opencv_boxfilter.cpp
create mode 100644 sci_gateway/cpp/opencv_bwconvhull.cpp
create mode 100644 sci_gateway/cpp/opencv_bwdistgeodesic.cpp
create mode 100644 sci_gateway/cpp/opencv_bwlookup.cpp
create mode 100644 sci_gateway/cpp/opencv_bwulterode.cpp
create mode 100644 sci_gateway/cpp/opencv_canny.cpp
create mode 100644 sci_gateway/cpp/opencv_circle.cpp
create mode 100644 sci_gateway/cpp/opencv_clipline.cpp
create mode 100644 sci_gateway/cpp/opencv_contourarea.cpp
create mode 100644 sci_gateway/cpp/opencv_convexhull.cpp
create mode 100644 sci_gateway/cpp/opencv_convmtx2.cpp
create mode 100644 sci_gateway/cpp/opencv_copymakeborder.cpp
create mode 100644 sci_gateway/cpp/opencv_corner.cpp
create mode 100644 sci_gateway/cpp/opencv_cornerEigenValsAndVecs.cpp
create mode 100644 sci_gateway/cpp/opencv_cornerHarris.cpp
create mode 100644 sci_gateway/cpp/opencv_cornerMinEigenVal.cpp
create mode 100644 sci_gateway/cpp/opencv_cvtColor.cpp
create mode 100644 sci_gateway/cpp/opencv_deconvlucy.cpp
create mode 100644 sci_gateway/cpp/opencv_decorrstretch.cpp
create mode 100644 sci_gateway/cpp/opencv_demosaic.cpp
create mode 100644 sci_gateway/cpp/opencv_demosaic.cpp~
create mode 100644 sci_gateway/cpp/opencv_dilate.cpp
create mode 100644 sci_gateway/cpp/opencv_ellipse.cpp
create mode 100644 sci_gateway/cpp/opencv_ellipse2poly.cpp
create mode 100644 sci_gateway/cpp/opencv_erode.cpp
create mode 100644 sci_gateway/cpp/opencv_fftshift.cpp
create mode 100644 sci_gateway/cpp/opencv_fillconvexpoly.cpp
create mode 100644 sci_gateway/cpp/opencv_filter2D.cpp
create mode 100644 sci_gateway/cpp/opencv_findContours.cpp
create mode 100644 sci_gateway/cpp/opencv_fitellipse.cpp
create mode 100644 sci_gateway/cpp/opencv_fsamp2.cpp
create mode 100644 sci_gateway/cpp/opencv_ftrans2.cpp
create mode 100644 sci_gateway/cpp/opencv_gabor.cpp
create mode 100644 sci_gateway/cpp/opencv_gaussianblur.cpp
create mode 100644 sci_gateway/cpp/opencv_getStructuringElement.cpp
create mode 100644 sci_gateway/cpp/opencv_getTextSize.cpp
create mode 100644 sci_gateway/cpp/opencv_getgaussiankernel.cpp
create mode 100644 sci_gateway/cpp/opencv_getkerneltype.cpp
create mode 100644 sci_gateway/cpp/opencv_getrectsubpix.cpp
create mode 100644 sci_gateway/cpp/opencv_getrotationmatrix2D.cpp
create mode 100644 sci_gateway/cpp/opencv_goodfeaturestotrack.cpp
create mode 100644 sci_gateway/cpp/opencv_grayconnected.cpp
create mode 100644 sci_gateway/cpp/opencv_graycoprops.cpp
create mode 100644 sci_gateway/cpp/opencv_graydiffweight.cpp
create mode 100644 sci_gateway/cpp/opencv_graydist.cpp
create mode 100644 sci_gateway/cpp/opencv_histeq.cpp
create mode 100644 sci_gateway/cpp/opencv_houghcircles.cpp
create mode 100644 sci_gateway/cpp/opencv_houghlines.cpp
create mode 100644 sci_gateway/cpp/opencv_houghlinesp.cpp
create mode 100644 sci_gateway/cpp/opencv_ifftshift.cpp
create mode 100644 sci_gateway/cpp/opencv_im2double.cpp
create mode 100644 sci_gateway/cpp/opencv_imabsdiff.cpp
create mode 100644 sci_gateway/cpp/opencv_imadd.cpp
create mode 100644 sci_gateway/cpp/opencv_imattributes.cpp
create mode 100644 sci_gateway/cpp/opencv_imboxfilt3.cpp
create mode 100644 sci_gateway/cpp/opencv_imcomplement.cpp
create mode 100644 sci_gateway/cpp/opencv_imcontour.cpp
create mode 100644 sci_gateway/cpp/opencv_imcontrast.cpp
create mode 100644 sci_gateway/cpp/opencv_imcrop.cpp
create mode 100644 sci_gateway/cpp/opencv_imdivide.cpp
create mode 100644 sci_gateway/cpp/opencv_imextendedmax.cpp
create mode 100644 sci_gateway/cpp/opencv_imextendedmin.cpp
create mode 100644 sci_gateway/cpp/opencv_imfill.cpp
create mode 100644 sci_gateway/cpp/opencv_imfindcircles.cpp
create mode 100644 sci_gateway/cpp/opencv_imfindcircles.cpp~
create mode 100644 sci_gateway/cpp/opencv_imfuse.cpp
create mode 100644 sci_gateway/cpp/opencv_imgaborfilt.cpp
create mode 100644 sci_gateway/cpp/opencv_imgaussfilt3.cpp
create mode 100644 sci_gateway/cpp/opencv_imguidedfilter.cpp
create mode 100644 sci_gateway/cpp/opencv_imhistmatch.cpp
create mode 100644 sci_gateway/cpp/opencv_imhmax.cpp
create mode 100644 sci_gateway/cpp/opencv_imhmin.cpp
create mode 100644 sci_gateway/cpp/opencv_imimposemin.cpp
create mode 100644 sci_gateway/cpp/opencv_imlincomb.cpp
create mode 100644 sci_gateway/cpp/opencv_immultiply.cpp
create mode 100644 sci_gateway/cpp/opencv_impixel.cpp
create mode 100644 sci_gateway/cpp/opencv_impyramid.cpp
create mode 100644 sci_gateway/cpp/opencv_imread.cpp
create mode 100644 sci_gateway/cpp/opencv_imrect.cpp
create mode 100644 sci_gateway/cpp/opencv_imresize.cpp
create mode 100644 sci_gateway/cpp/opencv_imrotate.cpp
create mode 100644 sci_gateway/cpp/opencv_imrotate.cpp~
create mode 100644 sci_gateway/cpp/opencv_imsharpen.cpp
create mode 100644 sci_gateway/cpp/opencv_imshowpair.cpp
create mode 100644 sci_gateway/cpp/opencv_imsubtract.cpp
create mode 100644 sci_gateway/cpp/opencv_imwarp.cpp
create mode 100644 sci_gateway/cpp/opencv_imwrite.cpp
create mode 100644 sci_gateway/cpp/opencv_ind2gray.cpp
create mode 100644 sci_gateway/cpp/opencv_ind2rgb.cpp
create mode 100644 sci_gateway/cpp/opencv_integralImage.cpp
create mode 100644 sci_gateway/cpp/opencv_lab2double.cpp
create mode 100644 sci_gateway/cpp/opencv_lab2rgb.cpp
create mode 100644 sci_gateway/cpp/opencv_lab2uint16.cpp
create mode 100644 sci_gateway/cpp/opencv_lab2uint8.cpp
create mode 100644 sci_gateway/cpp/opencv_lab2xyz.cpp
create mode 100644 sci_gateway/cpp/opencv_laplacian.cpp
create mode 100644 sci_gateway/cpp/opencv_line.cpp
create mode 100644 sci_gateway/cpp/opencv_makecform.cpp
create mode 100644 sci_gateway/cpp/opencv_mean1.cpp
create mode 100644 sci_gateway/cpp/opencv_medianblur.cpp
create mode 100644 sci_gateway/cpp/opencv_minAreaRect.cpp
create mode 100644 sci_gateway/cpp/opencv_minimumenclosingcirlce.cpp
create mode 100644 sci_gateway/cpp/opencv_montage.cpp
create mode 100644 sci_gateway/cpp/opencv_morphologyEx.cpp
create mode 100644 sci_gateway/cpp/opencv_ntsc2rgb.cpp
create mode 100644 sci_gateway/cpp/opencv_puttext.cpp
create mode 100644 sci_gateway/cpp/opencv_pyrDown.cpp
create mode 100644 sci_gateway/cpp/opencv_pyrMeanShiftFiltering.cpp
create mode 100644 sci_gateway/cpp/opencv_pyrUp.cpp
create mode 100644 sci_gateway/cpp/opencv_rectangle.cpp
create mode 100644 sci_gateway/cpp/opencv_regionfill.cpp
create mode 100644 sci_gateway/cpp/opencv_rgb2lab.cpp
create mode 100644 sci_gateway/cpp/opencv_rgb2ntsc.cpp
create mode 100644 sci_gateway/cpp/opencv_rgb2xyz.cpp
create mode 100644 sci_gateway/cpp/opencv_roifill.cpp
create mode 100644 sci_gateway/cpp/opencv_roipoly.cpp
create mode 100644 sci_gateway/cpp/opencv_scharr.cpp
create mode 100644 sci_gateway/cpp/opencv_sepFilter2D.cpp
create mode 100644 sci_gateway/cpp/opencv_sobel.cpp
create mode 100644 sci_gateway/cpp/opencv_ssim.cpp
create mode 100644 sci_gateway/cpp/opencv_threshold.cpp
create mode 100644 sci_gateway/cpp/opencv_undistort.cpp
create mode 100644 sci_gateway/cpp/opencv_viscircles.cpp
create mode 100644 sci_gateway/cpp/opencv_watershed.cpp
create mode 100644 sci_gateway/cpp/opencv_whitepoint.cpp
create mode 100644 sci_gateway/cpp/opencv_wiener2.cpp
create mode 100644 sci_gateway/cpp/opencv_xyz2double.cpp
create mode 100644 sci_gateway/cpp/opencv_xyz2lab.cpp
create mode 100644 sci_gateway/cpp/opencv_xyz2rgb.cpp
create mode 100644 sci_gateway/cpp/opencv_xyz2uint16.cpp
create mode 100644 sci_gateway/cpp/rgb2gray.cpp
create mode 100644 sci_gateway/cpp/rgb2gray.cpp~
create mode 100644 sci_gateway/cpp/warpaffine.cpp
create mode 100644 sci_gateway/cpp/xyz2lab.cpp
create mode 100644 sci_gateway/loader_gateway.sce
create mode 100644 sci_gateway1/builder_gateway.sce
create mode 100644 sci_gateway1/cpp/builder_gateway_cpp.sce
create mode 100644 sci_gateway1/cpp/builder_gateway_cpp.sce~
create mode 100644 sci_gateway1/cpp/cleaner.sce
create mode 100644 sci_gateway1/cpp/common.cpp
create mode 100644 sci_gateway1/cpp/common.cpp~
create mode 100644 sci_gateway1/cpp/common.h
create mode 100644 sci_gateway1/cpp/common.h~
create mode 100644 sci_gateway1/cpp/common1.cpp
create mode 100644 sci_gateway1/cpp/common2.cpp
create mode 100644 sci_gateway1/cpp/common3.cpp
create mode 100644 sci_gateway1/cpp/libFOSSEE_Image_Processing_Toolbox.c
create mode 100755 sci_gateway1/cpp/libFOSSEE_Image_Processing_Toolbox.so
create mode 100644 sci_gateway1/cpp/libskeleton_imageprocessing.c
create mode 100755 sci_gateway1/cpp/libskeleton_imageprocessing.so
create mode 100644 sci_gateway1/cpp/loader.sce
create mode 100644 sci_gateway1/cpp/opencv_BRISKPoints.cpp
create mode 100644 sci_gateway1/cpp/opencv_BlockMatcher.cpp
create mode 100644 sci_gateway1/cpp/opencv_CascadeObjectDetector.cpp
create mode 100644 sci_gateway1/cpp/opencv_DCT.cpp
create mode 100644 sci_gateway1/cpp/opencv_Deinterlacer.cpp
create mode 100644 sci_gateway1/cpp/opencv_FFT.cpp
create mode 100644 sci_gateway1/cpp/opencv_ForegroundDetector.cpp
create mode 100644 sci_gateway1/cpp/opencv_GeometricShearer.cpp
create mode 100644 sci_gateway1/cpp/opencv_HistogramBasedTracker.cpp
create mode 100644 sci_gateway1/cpp/opencv_IDCT.cpp
create mode 100644 sci_gateway1/cpp/opencv_IFFT.cpp
create mode 100644 sci_gateway1/cpp/opencv_KalmanFilter.cpp
create mode 100644 sci_gateway1/cpp/opencv_SURFPoints.cpp
create mode 100644 sci_gateway1/cpp/opencv_TemplateMatcher.cpp
create mode 100644 sci_gateway1/cpp/opencv_VideoPlayer.cpp
create mode 100644 sci_gateway1/cpp/opencv_VideoReader.cpp
create mode 100644 sci_gateway1/cpp/opencv_arrowedline.cpp
create mode 100644 sci_gateway1/cpp/opencv_bagOfFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_bbox2points.cpp
create mode 100644 sci_gateway1/cpp/opencv_bboxOverlapRatio.cpp
create mode 100644 sci_gateway1/cpp/opencv_blobAnalysis.cpp
create mode 100644 sci_gateway1/cpp/opencv_blur.cpp
create mode 100644 sci_gateway1/cpp/opencv_boundingRect.cpp
create mode 100644 sci_gateway1/cpp/opencv_bundleAdjustment.cpp
create mode 100644 sci_gateway1/cpp/opencv_cameraMatrix.cpp
create mode 100644 sci_gateway1/cpp/opencv_canny.cpp
create mode 100644 sci_gateway1/cpp/opencv_circle.cpp
create mode 100644 sci_gateway1/cpp/opencv_clipline.cpp
create mode 100644 sci_gateway1/cpp/opencv_convexhull.cpp
create mode 100644 sci_gateway1/cpp/opencv_convolver.cpp
create mode 100644 sci_gateway1/cpp/opencv_copymakeborder.cpp
create mode 100644 sci_gateway1/cpp/opencv_corner.cpp
create mode 100644 sci_gateway1/cpp/opencv_cornerEigenValsAndVecs.cpp
create mode 100644 sci_gateway1/cpp/opencv_cornerHarris.cpp
create mode 100644 sci_gateway1/cpp/opencv_cornerMinEigenVal.cpp
create mode 100644 sci_gateway1/cpp/opencv_cvtColor.cpp
create mode 100644 sci_gateway1/cpp/opencv_demosaic.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectBRISKFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectCheckerboardPoints.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectFASTFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectHarrisFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectMSERFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectMinEigenFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_detectSURFFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_dilate.cpp
create mode 100644 sci_gateway1/cpp/opencv_ellipse.cpp
create mode 100644 sci_gateway1/cpp/opencv_ellipse2poly.cpp
create mode 100644 sci_gateway1/cpp/opencv_epipolarlines.cpp
create mode 100644 sci_gateway1/cpp/opencv_erode.cpp
create mode 100644 sci_gateway1/cpp/opencv_estimateFundamentalMatrix.cpp
create mode 100644 sci_gateway1/cpp/opencv_estimateGeometricTransform.cpp
create mode 100644 sci_gateway1/cpp/opencv_estimateUncalibratedRectification.cpp
create mode 100644 sci_gateway1/cpp/opencv_evaluate.cpp
create mode 100644 sci_gateway1/cpp/opencv_evaluateImageRetrieval.cpp
create mode 100644 sci_gateway1/cpp/opencv_extractFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_extractHOGFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_extractLBPFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_fillconvexpoly.cpp
create mode 100644 sci_gateway1/cpp/opencv_filter2D.cpp
create mode 100644 sci_gateway1/cpp/opencv_findContours.cpp
create mode 100644 sci_gateway1/cpp/opencv_gaussianblur.cpp
create mode 100644 sci_gateway1/cpp/opencv_generateCheckerboardPoints.cpp
create mode 100644 sci_gateway1/cpp/opencv_getStructuringElement.cpp
create mode 100644 sci_gateway1/cpp/opencv_getTextSize.cpp
create mode 100644 sci_gateway1/cpp/opencv_getgaussiankernel.cpp
create mode 100644 sci_gateway1/cpp/opencv_getrectsubpix.cpp
create mode 100644 sci_gateway1/cpp/opencv_getrotationmatrix2D.cpp
create mode 100644 sci_gateway1/cpp/opencv_goodfeaturestotrack.cpp
create mode 100644 sci_gateway1/cpp/opencv_houghcircles.cpp
create mode 100644 sci_gateway1/cpp/opencv_houghlines.cpp
create mode 100644 sci_gateway1/cpp/opencv_houghlinesp.cpp
create mode 100644 sci_gateway1/cpp/opencv_im2double.cpp
create mode 100644 sci_gateway1/cpp/opencv_imageSet.cpp
create mode 100644 sci_gateway1/cpp/opencv_imcontrast.cpp
create mode 100644 sci_gateway1/cpp/opencv_imcrop.cpp
create mode 100644 sci_gateway1/cpp/opencv_imfindcircles.cpp
create mode 100644 sci_gateway1/cpp/opencv_imread.cpp
create mode 100644 sci_gateway1/cpp/opencv_imread.cpp~
create mode 100644 sci_gateway1/cpp/opencv_imresize.cpp
create mode 100644 sci_gateway1/cpp/opencv_imsharpen.cpp
create mode 100644 sci_gateway1/cpp/opencv_imwrite.cpp
create mode 100644 sci_gateway1/cpp/opencv_indexImages.cpp
create mode 100644 sci_gateway1/cpp/opencv_integralFilter.cpp
create mode 100644 sci_gateway1/cpp/opencv_integralImage.cpp
create mode 100644 sci_gateway1/cpp/opencv_integralKernel.cpp
create mode 100644 sci_gateway1/cpp/opencv_isEpipoleInImage.cpp
create mode 100644 sci_gateway1/cpp/opencv_isfilter.cpp
create mode 100644 sci_gateway1/cpp/opencv_laplacian.cpp
create mode 100644 sci_gateway1/cpp/opencv_line.cpp
create mode 100644 sci_gateway1/cpp/opencv_matchFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_medianblur.cpp
create mode 100644 sci_gateway1/cpp/opencv_montage.cpp
create mode 100644 sci_gateway1/cpp/opencv_morphologyEx.cpp
create mode 100644 sci_gateway1/cpp/opencv_ocr.cpp
create mode 100644 sci_gateway1/cpp/opencv_opticalFlowFarneback.cpp
create mode 100644 sci_gateway1/cpp/opencv_partition.cpp
create mode 100644 sci_gateway1/cpp/opencv_peopleDetector.cpp
create mode 100644 sci_gateway1/cpp/opencv_predict.cpp
create mode 100644 sci_gateway1/cpp/opencv_projectPoints.cpp
create mode 100644 sci_gateway1/cpp/opencv_puttext.cpp
create mode 100644 sci_gateway1/cpp/opencv_pyrDown.cpp
create mode 100644 sci_gateway1/cpp/opencv_pyrUp.cpp
create mode 100644 sci_gateway1/cpp/opencv_pyramid.cpp
create mode 100644 sci_gateway1/cpp/opencv_rectangle.cpp
create mode 100644 sci_gateway1/cpp/opencv_rectifyStereoImages.cpp
create mode 100644 sci_gateway1/cpp/opencv_retrieveImages.cpp
create mode 100644 sci_gateway1/cpp/opencv_rotationVectorToMatrix.cpp
create mode 100644 sci_gateway1/cpp/opencv_scharr.cpp
create mode 100644 sci_gateway1/cpp/opencv_sepFilter2D.cpp
create mode 100644 sci_gateway1/cpp/opencv_showMatchedFeatures.cpp
create mode 100644 sci_gateway1/cpp/opencv_sobel.cpp
create mode 100644 sci_gateway1/cpp/opencv_threshold.cpp
create mode 100644 sci_gateway1/cpp/opencv_trainImageCategoryClassifier.cpp
create mode 100644 sci_gateway1/cpp/opencv_triangulatePoints.cpp
create mode 100644 sci_gateway1/cpp/opencv_undistort.cpp
create mode 100644 sci_gateway1/cpp/opencv_undistortImage.cpp
create mode 100644 sci_gateway1/cpp/opencv_undistortPoints.cpp
create mode 100644 sci_gateway1/cpp/rotationMatrixToVector.cpp
create mode 100644 sci_gateway1/loader_gateway.sce
create mode 100644 thirdparty/linux/include/opencv/cv.h
create mode 100644 thirdparty/linux/include/opencv/cv.hpp
create mode 100644 thirdparty/linux/include/opencv/cvaux.h
create mode 100644 thirdparty/linux/include/opencv/cvaux.hpp
create mode 100644 thirdparty/linux/include/opencv/cvwimage.h
create mode 100644 thirdparty/linux/include/opencv/cxcore.h
create mode 100644 thirdparty/linux/include/opencv/cxcore.hpp
create mode 100644 thirdparty/linux/include/opencv/cxeigen.hpp
create mode 100644 thirdparty/linux/include/opencv/cxmisc.h
create mode 100644 thirdparty/linux/include/opencv/highgui.h
create mode 100644 thirdparty/linux/include/opencv/ml.h
create mode 100644 thirdparty/linux/include/opencv2/aruco.hpp
create mode 100644 thirdparty/linux/include/opencv2/aruco/charuco.hpp
create mode 100644 thirdparty/linux/include/opencv2/aruco/dictionary.hpp
create mode 100644 thirdparty/linux/include/opencv2/bgsegm.hpp
create mode 100644 thirdparty/linux/include/opencv2/bioinspired.hpp
create mode 100644 thirdparty/linux/include/opencv2/bioinspired/bioinspired.hpp
create mode 100644 thirdparty/linux/include/opencv2/bioinspired/retina.hpp
create mode 100644 thirdparty/linux/include/opencv2/bioinspired/retinafasttonemapping.hpp
create mode 100644 thirdparty/linux/include/opencv2/bioinspired/transientareassegmentationmodule.hpp
create mode 100644 thirdparty/linux/include/opencv2/calib3d.hpp
create mode 100644 thirdparty/linux/include/opencv2/calib3d/calib3d.hpp
create mode 100644 thirdparty/linux/include/opencv2/calib3d/calib3d_c.h
create mode 100644 thirdparty/linux/include/opencv2/ccalib.hpp
create mode 100644 thirdparty/linux/include/opencv2/ccalib/multicalib.hpp
create mode 100644 thirdparty/linux/include/opencv2/ccalib/omnidir.hpp
create mode 100644 thirdparty/linux/include/opencv2/ccalib/randpattern.hpp
create mode 100644 thirdparty/linux/include/opencv2/core.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/affine.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/base.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/bufferpool.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/core.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/core_c.h
create mode 100644 thirdparty/linux/include/opencv2/core/cuda.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda.inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/block.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/border_interpolate.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/color.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/common.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/datamov_utils.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/detail/color_detail.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/detail/reduce.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/detail/reduce_key_val.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/detail/transform_detail.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/detail/type_traits_detail.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/dynamic_smem.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/emulation.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/filters.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/funcattrib.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/functional.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/limits.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/reduce.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/saturate_cast.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/scan.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/simd_functions.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/transform.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/type_traits.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/utility.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/vec_distance.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/vec_math.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/vec_traits.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/warp.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/warp_reduce.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda/warp_shuffle.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda_stream_accessor.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cuda_types.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cvdef.h
create mode 100644 thirdparty/linux/include/opencv2/core/cvstd.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/cvstd.inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/directx.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/eigen.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/fast_math.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/hal/hal.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/hal/interface.h
create mode 100644 thirdparty/linux/include/opencv2/core/hal/intrin.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/hal/intrin_cpp.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/hal/intrin_neon.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/hal/intrin_sse.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/ippasync.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/mat.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/mat.inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/matx.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/neon_utils.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/ocl.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/ocl_genbase.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/opengl.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/operations.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/optim.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/ovx.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/persistence.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/private.cuda.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/private.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/ptr.inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/saturate.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/sse_utils.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/traits.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/types.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/types_c.h
create mode 100644 thirdparty/linux/include/opencv2/core/utility.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/va_intel.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/version.hpp
create mode 100644 thirdparty/linux/include/opencv2/core/wimage.hpp
create mode 100644 thirdparty/linux/include/opencv2/cvconfig.h
create mode 100644 thirdparty/linux/include/opencv2/datasets/ar_hmdb.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/ar_sports.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/dataset.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/fr_adience.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/fr_lfw.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/gr_chalearn.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/gr_skig.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/hpe_humaneva.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/hpe_parse.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/ir_affine.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/ir_robot.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/is_bsds.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/is_weizmann.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/msm_epfl.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/msm_middlebury.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/or_imagenet.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/or_mnist.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/or_pascal.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/or_sun.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/pd_caltech.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/pd_inria.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/slam_kitti.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/slam_tumindoor.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/tr_chars.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/tr_icdar.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/tr_svt.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/track_alov.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/track_vot.hpp
create mode 100644 thirdparty/linux/include/opencv2/datasets/util.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/all_layers.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/blob.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/blob.inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/dict.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/dnn.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/dnn.inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/layer.hpp
create mode 100644 thirdparty/linux/include/opencv2/dnn/shape_utils.hpp
create mode 100644 thirdparty/linux/include/opencv2/dpm.hpp
create mode 100644 thirdparty/linux/include/opencv2/face.hpp
create mode 100644 thirdparty/linux/include/opencv2/face/bif.hpp
create mode 100644 thirdparty/linux/include/opencv2/face/facerec.hpp
create mode 100644 thirdparty/linux/include/opencv2/face/predict_collector.hpp
create mode 100644 thirdparty/linux/include/opencv2/features2d.hpp
create mode 100644 thirdparty/linux/include/opencv2/features2d/features2d.hpp
create mode 100644 thirdparty/linux/include/opencv2/flann.hpp
create mode 100644 thirdparty/linux/include/opencv2/flann/all_indices.h
create mode 100644 thirdparty/linux/include/opencv2/flann/allocator.h
create mode 100644 thirdparty/linux/include/opencv2/flann/any.h
create mode 100644 thirdparty/linux/include/opencv2/flann/autotuned_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/composite_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/config.h
create mode 100644 thirdparty/linux/include/opencv2/flann/defines.h
create mode 100644 thirdparty/linux/include/opencv2/flann/dist.h
create mode 100644 thirdparty/linux/include/opencv2/flann/dummy.h
create mode 100644 thirdparty/linux/include/opencv2/flann/dynamic_bitset.h
create mode 100644 thirdparty/linux/include/opencv2/flann/flann.hpp
create mode 100644 thirdparty/linux/include/opencv2/flann/flann_base.hpp
create mode 100644 thirdparty/linux/include/opencv2/flann/general.h
create mode 100644 thirdparty/linux/include/opencv2/flann/ground_truth.h
create mode 100644 thirdparty/linux/include/opencv2/flann/hdf5.h
create mode 100644 thirdparty/linux/include/opencv2/flann/heap.h
create mode 100644 thirdparty/linux/include/opencv2/flann/hierarchical_clustering_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/index_testing.h
create mode 100644 thirdparty/linux/include/opencv2/flann/kdtree_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/kdtree_single_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/kmeans_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/linear_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/logger.h
create mode 100644 thirdparty/linux/include/opencv2/flann/lsh_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/lsh_table.h
create mode 100644 thirdparty/linux/include/opencv2/flann/matrix.h
create mode 100644 thirdparty/linux/include/opencv2/flann/miniflann.hpp
create mode 100644 thirdparty/linux/include/opencv2/flann/nn_index.h
create mode 100644 thirdparty/linux/include/opencv2/flann/object_factory.h
create mode 100644 thirdparty/linux/include/opencv2/flann/params.h
create mode 100644 thirdparty/linux/include/opencv2/flann/random.h
create mode 100644 thirdparty/linux/include/opencv2/flann/result_set.h
create mode 100644 thirdparty/linux/include/opencv2/flann/sampling.h
create mode 100644 thirdparty/linux/include/opencv2/flann/saving.h
create mode 100644 thirdparty/linux/include/opencv2/flann/simplex_downhill.h
create mode 100644 thirdparty/linux/include/opencv2/flann/timer.h
create mode 100644 thirdparty/linux/include/opencv2/freetype.hpp
create mode 100644 thirdparty/linux/include/opencv2/fuzzy.hpp
create mode 100644 thirdparty/linux/include/opencv2/fuzzy/fuzzy_F0_math.hpp
create mode 100644 thirdparty/linux/include/opencv2/fuzzy/fuzzy_image.hpp
create mode 100644 thirdparty/linux/include/opencv2/fuzzy/types.hpp
create mode 100644 thirdparty/linux/include/opencv2/hdf.hpp
create mode 100644 thirdparty/linux/include/opencv2/hdf/hdf5.hpp
create mode 100644 thirdparty/linux/include/opencv2/highgui.hpp
create mode 100644 thirdparty/linux/include/opencv2/highgui/highgui.hpp
create mode 100644 thirdparty/linux/include/opencv2/highgui/highgui_c.h
create mode 100644 thirdparty/linux/include/opencv2/imgcodecs.hpp
create mode 100644 thirdparty/linux/include/opencv2/imgcodecs/imgcodecs.hpp
create mode 100644 thirdparty/linux/include/opencv2/imgcodecs/imgcodecs_c.h
create mode 100644 thirdparty/linux/include/opencv2/imgcodecs/ios.h
create mode 100644 thirdparty/linux/include/opencv2/imgproc.hpp
create mode 100644 thirdparty/linux/include/opencv2/imgproc/detail/distortion_model.hpp
create mode 100644 thirdparty/linux/include/opencv2/imgproc/hal/hal.hpp
create mode 100644 thirdparty/linux/include/opencv2/imgproc/hal/interface.h
create mode 100644 thirdparty/linux/include/opencv2/imgproc/imgproc.hpp
create mode 100644 thirdparty/linux/include/opencv2/imgproc/imgproc_c.h
create mode 100644 thirdparty/linux/include/opencv2/imgproc/types_c.h
create mode 100644 thirdparty/linux/include/opencv2/line_descriptor.hpp
create mode 100644 thirdparty/linux/include/opencv2/line_descriptor/descriptor.hpp
create mode 100644 thirdparty/linux/include/opencv2/ml.hpp
create mode 100644 thirdparty/linux/include/opencv2/ml/ml.hpp
create mode 100644 thirdparty/linux/include/opencv2/objdetect.hpp
create mode 100644 thirdparty/linux/include/opencv2/objdetect/detection_based_tracker.hpp
create mode 100644 thirdparty/linux/include/opencv2/objdetect/objdetect.hpp
create mode 100644 thirdparty/linux/include/opencv2/objdetect/objdetect_c.h
create mode 100644 thirdparty/linux/include/opencv2/opencv.hpp
create mode 100644 thirdparty/linux/include/opencv2/opencv_modules.hpp
create mode 100644 thirdparty/linux/include/opencv2/optflow.hpp
create mode 100644 thirdparty/linux/include/opencv2/optflow/motempl.hpp
create mode 100644 thirdparty/linux/include/opencv2/optflow/pcaflow.hpp
create mode 100644 thirdparty/linux/include/opencv2/optflow/sparse_matching_gpc.hpp
create mode 100644 thirdparty/linux/include/opencv2/phase_unwrapping.hpp
create mode 100644 thirdparty/linux/include/opencv2/phase_unwrapping/histogramphaseunwrapping.hpp
create mode 100644 thirdparty/linux/include/opencv2/phase_unwrapping/phase_unwrapping.hpp
create mode 100644 thirdparty/linux/include/opencv2/photo.hpp
create mode 100644 thirdparty/linux/include/opencv2/photo/cuda.hpp
create mode 100644 thirdparty/linux/include/opencv2/photo/photo.hpp
create mode 100644 thirdparty/linux/include/opencv2/photo/photo_c.h
create mode 100644 thirdparty/linux/include/opencv2/plot.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/map.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mapaffine.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mapper.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mappergradaffine.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mappergradeuclid.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mappergradproj.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mappergradshift.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mappergradsimilar.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mapperpyramid.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mapprojec.hpp
create mode 100644 thirdparty/linux/include/opencv2/reg/mapshift.hpp
create mode 100644 thirdparty/linux/include/opencv2/rgbd.hpp
create mode 100644 thirdparty/linux/include/opencv2/rgbd/linemod.hpp
create mode 100644 thirdparty/linux/include/opencv2/saliency.hpp
create mode 100644 thirdparty/linux/include/opencv2/saliency/saliencyBaseClasses.hpp
create mode 100644 thirdparty/linux/include/opencv2/saliency/saliencySpecializedClasses.hpp
create mode 100644 thirdparty/linux/include/opencv2/shape.hpp
create mode 100644 thirdparty/linux/include/opencv2/shape/emdL1.hpp
create mode 100644 thirdparty/linux/include/opencv2/shape/hist_cost.hpp
create mode 100644 thirdparty/linux/include/opencv2/shape/shape.hpp
create mode 100644 thirdparty/linux/include/opencv2/shape/shape_distance.hpp
create mode 100644 thirdparty/linux/include/opencv2/shape/shape_transformer.hpp
create mode 100644 thirdparty/linux/include/opencv2/stereo.hpp
create mode 100644 thirdparty/linux/include/opencv2/stereo/descriptor.hpp
create mode 100644 thirdparty/linux/include/opencv2/stereo/matching.hpp
create mode 100644 thirdparty/linux/include/opencv2/stereo/stereo.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/autocalib.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/blenders.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/camera.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/exposure_compensate.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/matchers.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/motion_estimators.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/seam_finders.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/timelapsers.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/util.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/util_inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/warpers.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/detail/warpers_inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/stitching/warpers.hpp
create mode 100644 thirdparty/linux/include/opencv2/structured_light.hpp
create mode 100644 thirdparty/linux/include/opencv2/structured_light/graycodepattern.hpp
create mode 100644 thirdparty/linux/include/opencv2/structured_light/sinusoidalpattern.hpp
create mode 100644 thirdparty/linux/include/opencv2/structured_light/structured_light.hpp
create mode 100644 thirdparty/linux/include/opencv2/superres.hpp
create mode 100644 thirdparty/linux/include/opencv2/superres/optical_flow.hpp
create mode 100644 thirdparty/linux/include/opencv2/surface_matching.hpp
create mode 100644 thirdparty/linux/include/opencv2/surface_matching/icp.hpp
create mode 100644 thirdparty/linux/include/opencv2/surface_matching/pose_3d.hpp
create mode 100644 thirdparty/linux/include/opencv2/surface_matching/ppf_helpers.hpp
create mode 100644 thirdparty/linux/include/opencv2/surface_matching/ppf_match_3d.hpp
create mode 100644 thirdparty/linux/include/opencv2/surface_matching/t_hash_int.hpp
create mode 100644 thirdparty/linux/include/opencv2/text.hpp
create mode 100644 thirdparty/linux/include/opencv2/text/erfilter.hpp
create mode 100644 thirdparty/linux/include/opencv2/text/ocr.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/feature.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/kalman_filters.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/onlineBoosting.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/onlineMIL.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/tldDataset.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/tracker.hpp
create mode 100644 thirdparty/linux/include/opencv2/tracking/tracking.hpp
create mode 100644 thirdparty/linux/include/opencv2/video.hpp
create mode 100644 thirdparty/linux/include/opencv2/video/background_segm.hpp
create mode 100644 thirdparty/linux/include/opencv2/video/tracking.hpp
create mode 100644 thirdparty/linux/include/opencv2/video/tracking_c.h
create mode 100644 thirdparty/linux/include/opencv2/video/video.hpp
create mode 100644 thirdparty/linux/include/opencv2/videoio.hpp
create mode 100644 thirdparty/linux/include/opencv2/videoio/cap_ios.h
create mode 100644 thirdparty/linux/include/opencv2/videoio/videoio.hpp
create mode 100644 thirdparty/linux/include/opencv2/videoio/videoio_c.h
create mode 100644 thirdparty/linux/include/opencv2/videostab.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/deblurring.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/fast_marching.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/fast_marching_inl.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/frame_source.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/global_motion.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/inpainting.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/log.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/motion_core.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/motion_stabilizing.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/optical_flow.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/outlier_rejection.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/ring_buffer.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/stabilizer.hpp
create mode 100644 thirdparty/linux/include/opencv2/videostab/wobble_suppression.hpp
create mode 100644 thirdparty/linux/include/opencv2/viz.hpp
create mode 100644 thirdparty/linux/include/opencv2/viz/types.hpp
create mode 100644 thirdparty/linux/include/opencv2/viz/viz3d.hpp
create mode 100644 thirdparty/linux/include/opencv2/viz/vizcore.hpp
create mode 100644 thirdparty/linux/include/opencv2/viz/widget_accessor.hpp
create mode 100644 thirdparty/linux/include/opencv2/viz/widgets.hpp
create mode 100644 thirdparty/linux/include/opencv2/xfeatures2d.hpp
create mode 100644 thirdparty/linux/include/opencv2/xfeatures2d/cuda.hpp
create mode 100644 thirdparty/linux/include/opencv2/xfeatures2d/nonfree.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/deriche_filter.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/disparity_filter.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/edge_filter.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/estimated_covariance.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/fast_hough_transform.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/fast_line_detector.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/lsc.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/paillou_filter.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/seeds.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/segmentation.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/slic.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/sparse_match_interpolator.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/structured_edge_detection.hpp
create mode 100644 thirdparty/linux/include/opencv2/ximgproc/weighted_median_filter.hpp
create mode 100644 thirdparty/linux/include/opencv2/xobjdetect.hpp
create mode 100644 thirdparty/linux/include/opencv2/xphoto.hpp
create mode 100644 thirdparty/linux/include/opencv2/xphoto/bm3d_image_denoising.hpp
create mode 100644 thirdparty/linux/include/opencv2/xphoto/dct_image_denoising.hpp
create mode 100644 thirdparty/linux/include/opencv2/xphoto/inpainting.hpp
create mode 100644 thirdparty/linux/include/opencv2/xphoto/white_balance.hpp
create mode 120000 thirdparty/linux/lib/x64/libopencv_aruco.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_aruco.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_aruco.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_bgsegm.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_bgsegm.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_bgsegm.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_bioinspired.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_bioinspired.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_bioinspired.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_calib3d.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_calib3d.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_calib3d.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_ccalib.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_ccalib.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_ccalib.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_core.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_core.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_core.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_datasets.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_datasets.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_datasets.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_dnn.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_dnn.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_dnn.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_dpm.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_dpm.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_dpm.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_face.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_face.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_face.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_features2d.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_features2d.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_features2d.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_flann.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_flann.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_flann.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_freetype.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_freetype.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_freetype.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_fuzzy.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_fuzzy.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_fuzzy.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_hdf.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_hdf.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_hdf.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_highgui.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_highgui.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_highgui.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_imgcodecs.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_imgcodecs.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_imgcodecs.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_imgproc.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_imgproc.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_imgproc.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_line_descriptor.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_line_descriptor.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_line_descriptor.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_ml.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_ml.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_ml.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_objdetect.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_objdetect.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_objdetect.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_optflow.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_optflow.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_optflow.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_phase_unwrapping.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_phase_unwrapping.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_phase_unwrapping.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_photo.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_photo.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_photo.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_plot.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_plot.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_plot.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_reg.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_reg.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_reg.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_rgbd.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_rgbd.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_rgbd.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_saliency.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_saliency.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_saliency.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_shape.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_shape.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_shape.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_stereo.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_stereo.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_stereo.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_stitching.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_stitching.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_stitching.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_structured_light.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_structured_light.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_structured_light.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_superres.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_superres.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_superres.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_surface_matching.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_surface_matching.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_surface_matching.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_text.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_text.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_text.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_tracking.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_tracking.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_tracking.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_video.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_video.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_video.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_videoio.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_videoio.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_videoio.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_videostab.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_videostab.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_videostab.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_viz.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_viz.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_viz.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_xfeatures2d.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_xfeatures2d.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_xfeatures2d.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_ximgproc.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_ximgproc.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_ximgproc.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_xobjdetect.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_xobjdetect.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_xobjdetect.so.3.2.0
create mode 120000 thirdparty/linux/lib/x64/libopencv_xphoto.so
create mode 120000 thirdparty/linux/lib/x64/libopencv_xphoto.so.3.2
create mode 100644 thirdparty/linux/lib/x64/libopencv_xphoto.so.3.2.0
create mode 100644 thirdparty/linux/lib/x64/pkgconfig/opencv.pc
create mode 100644 thirdparty/linux/lib/x64/python2.7/dist-packages/cv2.so
create mode 100644 thirdparty/linux/lib/x64/python3.4/dist-packages/cv2.cpython-34m.so
create mode 100644 thirdparty1/linux/include/opencv/cv.h
create mode 100644 thirdparty1/linux/include/opencv/cv.hpp
create mode 100644 thirdparty1/linux/include/opencv/cvaux.h
create mode 100644 thirdparty1/linux/include/opencv/cvaux.hpp
create mode 100644 thirdparty1/linux/include/opencv/cvwimage.h
create mode 100644 thirdparty1/linux/include/opencv/cxcore.h
create mode 100644 thirdparty1/linux/include/opencv/cxcore.hpp
create mode 100644 thirdparty1/linux/include/opencv/cxeigen.hpp
create mode 100644 thirdparty1/linux/include/opencv/cxmisc.h
create mode 100644 thirdparty1/linux/include/opencv/highgui.h
create mode 100644 thirdparty1/linux/include/opencv/ml.h
create mode 100644 thirdparty1/linux/include/opencv2/aruco.hpp
create mode 100644 thirdparty1/linux/include/opencv2/aruco/charuco.hpp
create mode 100644 thirdparty1/linux/include/opencv2/aruco/dictionary.hpp
create mode 100644 thirdparty1/linux/include/opencv2/bgsegm.hpp
create mode 100644 thirdparty1/linux/include/opencv2/bioinspired.hpp
create mode 100644 thirdparty1/linux/include/opencv2/bioinspired/bioinspired.hpp
create mode 100644 thirdparty1/linux/include/opencv2/bioinspired/retina.hpp
create mode 100644 thirdparty1/linux/include/opencv2/bioinspired/retinafasttonemapping.hpp
create mode 100644 thirdparty1/linux/include/opencv2/bioinspired/transientareassegmentationmodule.hpp
create mode 100644 thirdparty1/linux/include/opencv2/calib3d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/calib3d/calib3d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/calib3d/calib3d_c.h
create mode 100644 thirdparty1/linux/include/opencv2/ccalib.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ccalib/multicalib.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ccalib/omnidir.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ccalib/randpattern.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/affine.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/base.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/bufferpool.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/core.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/core_c.h
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda.inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/block.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/border_interpolate.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/color.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/common.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/datamov_utils.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/detail/color_detail.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/detail/reduce.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/detail/reduce_key_val.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/detail/transform_detail.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/detail/type_traits_detail.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/dynamic_smem.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/emulation.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/filters.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/funcattrib.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/functional.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/limits.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/reduce.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/saturate_cast.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/scan.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/simd_functions.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/transform.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/type_traits.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/utility.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/vec_distance.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/vec_math.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/vec_traits.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/warp.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/warp_reduce.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda/warp_shuffle.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda_stream_accessor.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cuda_types.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cvdef.h
create mode 100644 thirdparty1/linux/include/opencv2/core/cvstd.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/cvstd.inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/directx.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/eigen.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/fast_math.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/hal/hal.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/hal/interface.h
create mode 100644 thirdparty1/linux/include/opencv2/core/hal/intrin.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/hal/intrin_cpp.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/hal/intrin_neon.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/hal/intrin_sse.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/ippasync.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/mat.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/mat.inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/matx.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/neon_utils.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/ocl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/ocl_genbase.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/opengl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/operations.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/optim.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/ovx.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/persistence.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/private.cuda.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/private.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/ptr.inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/saturate.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/sse_utils.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/traits.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/types.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/types_c.h
create mode 100644 thirdparty1/linux/include/opencv2/core/utility.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/va_intel.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/version.hpp
create mode 100644 thirdparty1/linux/include/opencv2/core/wimage.hpp
create mode 100644 thirdparty1/linux/include/opencv2/cvconfig.h
create mode 100644 thirdparty1/linux/include/opencv2/datasets/ar_hmdb.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/ar_sports.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/dataset.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/fr_adience.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/fr_lfw.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/gr_chalearn.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/gr_skig.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/hpe_humaneva.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/hpe_parse.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/ir_affine.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/ir_robot.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/is_bsds.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/is_weizmann.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/msm_epfl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/msm_middlebury.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/or_imagenet.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/or_mnist.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/or_pascal.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/or_sun.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/pd_caltech.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/pd_inria.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/slam_kitti.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/slam_tumindoor.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/tr_chars.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/tr_icdar.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/tr_svt.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/track_alov.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/track_vot.hpp
create mode 100644 thirdparty1/linux/include/opencv2/datasets/util.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/all_layers.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/blob.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/blob.inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/dict.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/dnn.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/dnn.inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/layer.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dnn/shape_utils.hpp
create mode 100644 thirdparty1/linux/include/opencv2/dpm.hpp
create mode 100644 thirdparty1/linux/include/opencv2/face.hpp
create mode 100644 thirdparty1/linux/include/opencv2/face/bif.hpp
create mode 100644 thirdparty1/linux/include/opencv2/face/facerec.hpp
create mode 100644 thirdparty1/linux/include/opencv2/face/predict_collector.hpp
create mode 100644 thirdparty1/linux/include/opencv2/features2d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/features2d/features2d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/flann.hpp
create mode 100644 thirdparty1/linux/include/opencv2/flann/all_indices.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/allocator.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/any.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/autotuned_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/composite_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/config.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/defines.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/dist.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/dummy.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/dynamic_bitset.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/flann.hpp
create mode 100644 thirdparty1/linux/include/opencv2/flann/flann_base.hpp
create mode 100644 thirdparty1/linux/include/opencv2/flann/general.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/ground_truth.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/hdf5.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/heap.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/hierarchical_clustering_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/index_testing.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/kdtree_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/kdtree_single_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/kmeans_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/linear_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/logger.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/lsh_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/lsh_table.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/matrix.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/miniflann.hpp
create mode 100644 thirdparty1/linux/include/opencv2/flann/nn_index.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/object_factory.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/params.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/random.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/result_set.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/sampling.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/saving.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/simplex_downhill.h
create mode 100644 thirdparty1/linux/include/opencv2/flann/timer.h
create mode 100644 thirdparty1/linux/include/opencv2/freetype.hpp
create mode 100644 thirdparty1/linux/include/opencv2/fuzzy.hpp
create mode 100644 thirdparty1/linux/include/opencv2/fuzzy/fuzzy_F0_math.hpp
create mode 100644 thirdparty1/linux/include/opencv2/fuzzy/fuzzy_image.hpp
create mode 100644 thirdparty1/linux/include/opencv2/fuzzy/types.hpp
create mode 100644 thirdparty1/linux/include/opencv2/hdf.hpp
create mode 100644 thirdparty1/linux/include/opencv2/hdf/hdf5.hpp
create mode 100644 thirdparty1/linux/include/opencv2/highgui.hpp
create mode 100644 thirdparty1/linux/include/opencv2/highgui/highgui.hpp
create mode 100644 thirdparty1/linux/include/opencv2/highgui/highgui_c.h
create mode 100644 thirdparty1/linux/include/opencv2/imgcodecs.hpp
create mode 100644 thirdparty1/linux/include/opencv2/imgcodecs/imgcodecs.hpp
create mode 100644 thirdparty1/linux/include/opencv2/imgcodecs/imgcodecs_c.h
create mode 100644 thirdparty1/linux/include/opencv2/imgcodecs/ios.h
create mode 100644 thirdparty1/linux/include/opencv2/imgproc.hpp
create mode 100644 thirdparty1/linux/include/opencv2/imgproc/detail/distortion_model.hpp
create mode 100644 thirdparty1/linux/include/opencv2/imgproc/hal/hal.hpp
create mode 100644 thirdparty1/linux/include/opencv2/imgproc/hal/interface.h
create mode 100644 thirdparty1/linux/include/opencv2/imgproc/imgproc.hpp
create mode 100644 thirdparty1/linux/include/opencv2/imgproc/imgproc_c.h
create mode 100644 thirdparty1/linux/include/opencv2/imgproc/types_c.h
create mode 100644 thirdparty1/linux/include/opencv2/line_descriptor.hpp
create mode 100644 thirdparty1/linux/include/opencv2/line_descriptor/descriptor.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ml.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ml/ml.hpp
create mode 100644 thirdparty1/linux/include/opencv2/objdetect.hpp
create mode 100644 thirdparty1/linux/include/opencv2/objdetect/detection_based_tracker.hpp
create mode 100644 thirdparty1/linux/include/opencv2/objdetect/objdetect.hpp
create mode 100644 thirdparty1/linux/include/opencv2/objdetect/objdetect_c.h
create mode 100644 thirdparty1/linux/include/opencv2/opencv.hpp
create mode 100644 thirdparty1/linux/include/opencv2/opencv_modules.hpp
create mode 100644 thirdparty1/linux/include/opencv2/optflow.hpp
create mode 100644 thirdparty1/linux/include/opencv2/optflow/motempl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/optflow/pcaflow.hpp
create mode 100644 thirdparty1/linux/include/opencv2/optflow/sparse_matching_gpc.hpp
create mode 100644 thirdparty1/linux/include/opencv2/phase_unwrapping.hpp
create mode 100644 thirdparty1/linux/include/opencv2/phase_unwrapping/histogramphaseunwrapping.hpp
create mode 100644 thirdparty1/linux/include/opencv2/phase_unwrapping/phase_unwrapping.hpp
create mode 100644 thirdparty1/linux/include/opencv2/photo.hpp
create mode 100644 thirdparty1/linux/include/opencv2/photo/cuda.hpp
create mode 100644 thirdparty1/linux/include/opencv2/photo/photo.hpp
create mode 100644 thirdparty1/linux/include/opencv2/photo/photo_c.h
create mode 100644 thirdparty1/linux/include/opencv2/plot.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/map.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mapaffine.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mapper.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mappergradaffine.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mappergradeuclid.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mappergradproj.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mappergradshift.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mappergradsimilar.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mapperpyramid.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mapprojec.hpp
create mode 100644 thirdparty1/linux/include/opencv2/reg/mapshift.hpp
create mode 100644 thirdparty1/linux/include/opencv2/rgbd.hpp
create mode 100644 thirdparty1/linux/include/opencv2/rgbd/linemod.hpp
create mode 100644 thirdparty1/linux/include/opencv2/saliency.hpp
create mode 100644 thirdparty1/linux/include/opencv2/saliency/saliencyBaseClasses.hpp
create mode 100644 thirdparty1/linux/include/opencv2/saliency/saliencySpecializedClasses.hpp
create mode 100644 thirdparty1/linux/include/opencv2/shape.hpp
create mode 100644 thirdparty1/linux/include/opencv2/shape/emdL1.hpp
create mode 100644 thirdparty1/linux/include/opencv2/shape/hist_cost.hpp
create mode 100644 thirdparty1/linux/include/opencv2/shape/shape.hpp
create mode 100644 thirdparty1/linux/include/opencv2/shape/shape_distance.hpp
create mode 100644 thirdparty1/linux/include/opencv2/shape/shape_transformer.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stereo.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stereo/descriptor.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stereo/matching.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stereo/stereo.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/autocalib.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/blenders.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/camera.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/exposure_compensate.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/matchers.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/motion_estimators.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/seam_finders.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/timelapsers.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/util.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/util_inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/warpers.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/detail/warpers_inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/stitching/warpers.hpp
create mode 100644 thirdparty1/linux/include/opencv2/structured_light.hpp
create mode 100644 thirdparty1/linux/include/opencv2/structured_light/graycodepattern.hpp
create mode 100644 thirdparty1/linux/include/opencv2/structured_light/sinusoidalpattern.hpp
create mode 100644 thirdparty1/linux/include/opencv2/structured_light/structured_light.hpp
create mode 100644 thirdparty1/linux/include/opencv2/superres.hpp
create mode 100644 thirdparty1/linux/include/opencv2/superres/optical_flow.hpp
create mode 100644 thirdparty1/linux/include/opencv2/surface_matching.hpp
create mode 100644 thirdparty1/linux/include/opencv2/surface_matching/icp.hpp
create mode 100644 thirdparty1/linux/include/opencv2/surface_matching/pose_3d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/surface_matching/ppf_helpers.hpp
create mode 100644 thirdparty1/linux/include/opencv2/surface_matching/ppf_match_3d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/surface_matching/t_hash_int.hpp
create mode 100644 thirdparty1/linux/include/opencv2/text.hpp
create mode 100644 thirdparty1/linux/include/opencv2/text/erfilter.hpp
create mode 100644 thirdparty1/linux/include/opencv2/text/ocr.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/feature.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/kalman_filters.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/onlineBoosting.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/onlineMIL.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/tldDataset.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/tracker.hpp
create mode 100644 thirdparty1/linux/include/opencv2/tracking/tracking.hpp
create mode 100644 thirdparty1/linux/include/opencv2/video.hpp
create mode 100644 thirdparty1/linux/include/opencv2/video/background_segm.hpp
create mode 100644 thirdparty1/linux/include/opencv2/video/tracking.hpp
create mode 100644 thirdparty1/linux/include/opencv2/video/tracking_c.h
create mode 100644 thirdparty1/linux/include/opencv2/video/video.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videoio.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videoio/cap_ios.h
create mode 100644 thirdparty1/linux/include/opencv2/videoio/videoio.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videoio/videoio_c.h
create mode 100644 thirdparty1/linux/include/opencv2/videostab.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/deblurring.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/fast_marching.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/fast_marching_inl.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/frame_source.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/global_motion.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/inpainting.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/log.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/motion_core.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/motion_stabilizing.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/optical_flow.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/outlier_rejection.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/ring_buffer.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/stabilizer.hpp
create mode 100644 thirdparty1/linux/include/opencv2/videostab/wobble_suppression.hpp
create mode 100644 thirdparty1/linux/include/opencv2/viz.hpp
create mode 100644 thirdparty1/linux/include/opencv2/viz/types.hpp
create mode 100644 thirdparty1/linux/include/opencv2/viz/viz3d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/viz/vizcore.hpp
create mode 100644 thirdparty1/linux/include/opencv2/viz/widget_accessor.hpp
create mode 100644 thirdparty1/linux/include/opencv2/viz/widgets.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xfeatures2d.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xfeatures2d/cuda.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xfeatures2d/nonfree.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/deriche_filter.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/disparity_filter.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/edge_filter.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/estimated_covariance.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/fast_hough_transform.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/fast_line_detector.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/lsc.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/paillou_filter.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/seeds.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/segmentation.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/slic.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/sparse_match_interpolator.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/structured_edge_detection.hpp
create mode 100644 thirdparty1/linux/include/opencv2/ximgproc/weighted_median_filter.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xobjdetect.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xphoto.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xphoto/bm3d_image_denoising.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xphoto/dct_image_denoising.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xphoto/inpainting.hpp
create mode 100644 thirdparty1/linux/include/opencv2/xphoto/white_balance.hpp
create mode 120000 thirdparty1/linux/lib/x64/libopencv_aruco.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_aruco.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_aruco.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_bgsegm.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_bgsegm.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_bgsegm.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_bioinspired.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_bioinspired.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_bioinspired.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_calib3d.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_calib3d.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_calib3d.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_ccalib.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_ccalib.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_ccalib.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_core.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_core.so.2.4
create mode 100644 thirdparty1/linux/lib/x64/libopencv_core.so.2.4.9
create mode 120000 thirdparty1/linux/lib/x64/libopencv_core.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_core.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_datasets.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_datasets.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_datasets.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_dnn.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_dnn.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_dnn.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_dpm.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_dpm.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_dpm.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_face.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_face.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_face.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_features2d.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_features2d.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_features2d.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_flann.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_flann.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_flann.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_freetype.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_freetype.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_freetype.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_fuzzy.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_fuzzy.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_fuzzy.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_hdf.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_hdf.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_hdf.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_highgui.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_highgui.so.2.4
create mode 100644 thirdparty1/linux/lib/x64/libopencv_highgui.so.2.4.9
create mode 120000 thirdparty1/linux/lib/x64/libopencv_highgui.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_highgui.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_imgcodecs.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_imgcodecs.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_imgcodecs.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_imgproc.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_imgproc.so.2.4
create mode 100644 thirdparty1/linux/lib/x64/libopencv_imgproc.so.2.4.9
create mode 120000 thirdparty1/linux/lib/x64/libopencv_imgproc.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_imgproc.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_line_descriptor.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_line_descriptor.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_line_descriptor.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_ml.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_ml.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_ml.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_objdetect.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_objdetect.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_objdetect.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_optflow.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_optflow.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_optflow.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_phase_unwrapping.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_phase_unwrapping.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_phase_unwrapping.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_photo.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_photo.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_photo.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_plot.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_plot.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_plot.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_reg.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_reg.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_reg.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_rgbd.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_rgbd.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_rgbd.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_saliency.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_saliency.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_saliency.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_shape.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_shape.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_shape.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_stereo.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_stereo.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_stereo.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_stitching.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_stitching.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_stitching.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_structured_light.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_structured_light.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_structured_light.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_superres.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_superres.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_superres.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_surface_matching.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_surface_matching.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_surface_matching.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_text.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_text.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_text.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_tracking.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_tracking.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_tracking.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_video.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_video.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_video.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_videoio.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_videoio.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_videoio.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_videostab.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_videostab.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_videostab.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_viz.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_viz.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_viz.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_xfeatures2d.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_xfeatures2d.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_xfeatures2d.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_ximgproc.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_ximgproc.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_ximgproc.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_xobjdetect.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_xobjdetect.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_xobjdetect.so.3.2.0
create mode 120000 thirdparty1/linux/lib/x64/libopencv_xphoto.so
create mode 120000 thirdparty1/linux/lib/x64/libopencv_xphoto.so.3.2
create mode 100644 thirdparty1/linux/lib/x64/libopencv_xphoto.so.3.2.0
create mode 100644 thirdparty1/linux/lib/x64/pkgconfig/opencv.pc
create mode 100644 thirdparty1/linux/lib/x64/python2.7/dist-packages/cv2.so
create mode 100644 thirdparty1/linux/lib/x64/python3.4/dist-packages/cv2.cpython-34m.so
create mode 100644 unloader.sce
diff --git a/builder.sce b/builder.sce
new file mode 100644
index 0000000..b21ef26
--- /dev/null
+++ b/builder.sce
@@ -0,0 +1,39 @@
+mode(-1);
+
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+lines(0);
+try
+ getversion('scilab');
+catch
+ error(gettext('Scilab 5.5.0 or more is required.'));
+end;
+
+// ====================================================================
+if ~with_module("development_tools") then
+ error(msprintf(gettext("%s module not installed."),"development_tools"));
+end
+// ====================================================================
+TOOLBOX_NAME = "FOSSEE_Image_Processing_Toolbox";
+TOOLBOX_TITLE = "FOSSEE Image Processing Toolbox";
+// ====================================================================
+
+
+toolbox_dir = get_absolute_file_path("builder.sce");
+
+tbx_builder_macros(toolbox_dir);
+tbx_builder_gateway(toolbox_dir);
+tbx_builder_help(toolbox_dir);
+tbx_build_loader(TOOLBOX_NAME, toolbox_dir);
+tbx_build_cleaner(TOOLBOX_NAME, toolbox_dir);
+
+clear toolbox_dir TOOLBOX_NAME TOOLBOX_TITLE;
diff --git a/builder.sce~ b/builder.sce~
new file mode 100644
index 0000000..4757140
--- /dev/null
+++ b/builder.sce~
@@ -0,0 +1,39 @@
+mode(-1);
+
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+lines(0);
+try
+ getversion('scilab');
+catch
+ error(gettext('Scilab 5.5.0 or more is required.'));
+end;
+
+// ====================================================================
+if ~with_module("development_tools") then
+ error(msprintf(gettext("%s module not installed."),"development_tools"));
+end
+// ====================================================================
+TOOLBOX_NAME = "FOSSEE_Image_Processing_Toolbox";
+TOOLBOX_TITLE = "FOSSEE Image Processing Toolbox";
+// ====================================================================
+
+
+toolbox_dir = get_absolute_file_path("builder.sce");
+
+tbx_builder_macros(toolbox_dir);
+//tbx_builder_gateway(toolbox_dir);
+tbx_builder_help(toolbox_dir);
+tbx_build_loader(TOOLBOX_NAME, toolbox_dir);
+tbx_build_cleaner(TOOLBOX_NAME, toolbox_dir);
+
+clear toolbox_dir TOOLBOX_NAME TOOLBOX_TITLE;
diff --git a/cleaner.sce b/cleaner.sce
new file mode 100644
index 0000000..370c68f
--- /dev/null
+++ b/cleaner.sce
@@ -0,0 +1,38 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// Generated by builder.sce: Please, do not edit this file
+
+try
+ getversion("scilab");
+catch
+ error("Scilab 5.0 or more is required.");
+end
+function perform_clean()
+ root_tlbx = get_absolute_file_path('cleaner.sce');
+
+ if isfile(root_tlbx + '/macros/cleanmacros.sce') then
+ exec(root_tlbx+'/macros/cleanmacros.sce');
+ end
+
+ if isfile(root_tlbx + '/src/cleaner_src.sce') then
+ exec(root_tlbx+'/src/cleaner_src.sce');
+ end
+
+ if isfile(root_tlbx + "/sci_gateway/cleaner_gateway.sce") then
+ exec(root_tlbx + "/sci_gateway/cleaner_gateway.sce");
+ mdelete(root_tlbx + "/sci_gateway/cleaner_gateway.sce");
+ end
+
+ if isfile(root_tlbx + "/help/cleaner_help.sce") then
+ exec(root_tlbx + "/help/cleaner_help.sce");
+ end
+
+ if isfile(root_tlbx + "/loader.sce") then
+ mdelete(root_tlbx + "/loader.sce");
+ end
+
+ if isfile(root_tlbx + "/unloader.sce") then
+ mdelete(root_tlbx + "/unloader.sce");
+ end
+endfunction
+perform_clean();
+clear perform_clean;
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.quit b/etc/FOSSEE_Image_Processing_Toolbox.quit
new file mode 100644
index 0000000..459eb07
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.quit
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function quitModule()
+
+ etc_tlbx = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.quit");
+ etc_tlbx = getshortpathname(etc_tlbx);
+ root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+ //unlink libraries
+ [bOK, ilib] = c_link('FOSSEE_Optimization_Toolbox');
+ if bOK then
+ ulink(ilib);
+ end
+
+ // Remove Preferences GUI
+ // =============================================================================
+ if getscilabmode() == "STD" then
+ removeModulePreferences(root_tlbx);
+ end
+ ulink();
+endfunction
+
+clear quitModule;
+
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.quit~ b/etc/FOSSEE_Image_Processing_Toolbox.quit~
new file mode 100644
index 0000000..ca53a1c
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.quit~
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function quitModule()
+
+ etc_tlbx = get_absolute_file_path("FOSSEE_Image_Processin_Toolbox.quit");
+ etc_tlbx = getshortpathname(etc_tlbx);
+ root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+ //unlink libraries
+ [bOK, ilib] = c_link('FOSSEE_Optimization_Toolbox');
+ if bOK then
+ ulink(ilib);
+ end
+
+ // Remove Preferences GUI
+ // =============================================================================
+ if getscilabmode() == "STD" then
+ removeModulePreferences(root_tlbx);
+ end
+ ulink();
+endfunction
+
+clear quitModule;
+
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.start b/etc/FOSSEE_Image_Processing_Toolbox.start
new file mode 100644
index 0000000..3b6355c
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.start
@@ -0,0 +1,77 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+mprintf("Start FOSSEE Image Processing Toolbox\n");
+
+[a, opt] = getversion();
+Version = opt(2);
+
+etc_tlbx = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.start");
+etc_tlbx = getshortpathname(etc_tlbx);
+root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+//Load functions library
+// =============================================================================
+mprintf("\tLoad macros\n");
+pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
+fipt_lib = lib(pathmacros);
+clear pathmacros;
+
+// load gateways
+// =============================================================================
+
+mprintf("\tLoad gateways\n");
+[a, opt] = getversion();
+Version = opt(2);
+ilib_verbose(0);
+if getos()=="Windows" then
+// lib_path = root_tlbx + "/thirdparty/windows/bin/" + Version;*/
+// link(lib_path+filesep()+"IpOptFSS.dll");*/
+// link(lib_path+filesep()+"IpOpt-vc10.dll");*/
+else
+ lib_path = root_tlbx + "/thirdparty/linux/lib/" + Version;
+// lib_path="/usr/lib";*/
+ link(lib_path + "/libopencv_core.so");
+ link(lib_path + "/libopencv_highgui.so");
+ link(lib_path + "/libopencv_imgproc.so");
+
+end
+exec(pathconvert(root_tlbx + filesep() + "sci_gateway" + filesep() + "loader_gateway.sce",%f));
+
+// Load and add help chapter
+// =============================================================================
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+ mprintf("\tLoad help\n");
+ path_addchapter = pathconvert(root_tlbx+"/jar");
+ if ( isdir(path_addchapter) <> [] ) then
+ add_help_chapter("FOSSEE_Image_Processing_Toolbox", path_addchapter, %F);
+ clear add_help_chapter;
+ end
+ clear path_addchapter;
+end
+end
+
+// add demos
+// =============================================================================
+
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+ mprintf("\tLoad demos\n");
+ //pathdemos = pathconvert(root_tlbx+"/demos/sci_FOSSEE_Image_Processing_Toolbox.dem.gateway.sce",%f,%t);
+ //add_demo("FOSSEE_Image_Processing_Toolbox",pathdemos);
+ //clear pathdemos ;
+end
+end
+
+// =============================================================================
+
+clear etc_tlbx root_tlbx Version a opt lib_path;
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.start~ b/etc/FOSSEE_Image_Processing_Toolbox.start~
new file mode 100644
index 0000000..bf6a60e
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.start~
@@ -0,0 +1,77 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+mprintf("Start FOSSEE Image Processing Toolbox\n");
+
+[a, opt] = getversion();
+Version = opt(2);
+
+etc_tlbx = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.start");
+etc_tlbx = getshortpathname(etc_tlbx);
+root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+//Load functions library
+// =============================================================================
+mprintf("\tLoad macros\n");
+pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
+fipt_lib = lib(pathmacros);
+clear pathmacros;
+
+// load gateways
+// =============================================================================
+
+mprintf("\tLoad gateways\n");
+[a, opt] = getversion();
+Version = opt(2);
+ilib_verbose(0);
+if getos()=="Windows" then
+// lib_path = root_tlbx + "/thirdparty/windows/bin/" + Version;*/
+// link(lib_path+filesep()+"IpOptFSS.dll");*/
+// link(lib_path+filesep()+"IpOpt-vc10.dll");*/
+else
+ lib_path = root_tlbx + "/thirdparty/linux/lib/" + Version;
+// lib_path="/usr/lib";*/
+// link(lib_path + "/libopencv_core.so");*/
+// link(lib_path + "/libopencv_highgui.so");*/
+// link(lib_path + "/libopencv_imgproc.so");*/
+
+end
+exec(pathconvert(root_tlbx + filesep() + "sci_gateway" + filesep() + "loader_gateway.sce",%f));
+
+// Load and add help chapter
+// =============================================================================
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+ mprintf("\tLoad help\n");
+ path_addchapter = pathconvert(root_tlbx+"/jar");
+ if ( isdir(path_addchapter) <> [] ) then
+ add_help_chapter("FOSSEE_Image_Processing_Toolbox", path_addchapter, %F);
+ clear add_help_chapter;
+ end
+ clear path_addchapter;
+end
+end
+
+// add demos
+// =============================================================================
+
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+ mprintf("\tLoad demos\n");
+ //pathdemos = pathconvert(root_tlbx+"/demos/sci_FOSSEE_Image_Processing_Toolbox.dem.gateway.sce",%f,%t);
+ //add_demo("FOSSEE_Image_Processing_Toolbox",pathdemos);
+ //clear pathdemos ;
+end
+end
+
+// =============================================================================
+
+clear etc_tlbx root_tlbx Version a opt lib_path;
diff --git a/etc/FOSSEE_Optimization_Toolbox.quit~ b/etc/FOSSEE_Optimization_Toolbox.quit~
new file mode 100644
index 0000000..86ed18a
--- /dev/null
+++ b/etc/FOSSEE_Optimization_Toolbox.quit~
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function quitModule()
+
+ etc_tlbx = get_absolute_file_path("FOSSEE_Optimization_Toolbox.quit");
+ etc_tlbx = getshortpathname(etc_tlbx);
+ root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+ //unlink libraries
+ [bOK, ilib] = c_link('FOSSEE_Optimization_Toolbox');
+ if bOK then
+ ulink(ilib);
+ end
+
+ // Remove Preferences GUI
+ // =============================================================================
+ if getscilabmode() == "STD" then
+ removeModulePreferences(root_tlbx);
+ end
+ ulink();
+endfunction
+
+clear quitModule;
+
diff --git a/etc/FOSSEE_Optimization_Toolbox.start~ b/etc/FOSSEE_Optimization_Toolbox.start~
new file mode 100644
index 0000000..f2a5a06
--- /dev/null
+++ b/etc/FOSSEE_Optimization_Toolbox.start~
@@ -0,0 +1,85 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// 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
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+mprintf("Start FOSSEE Image Processing Toolbox\n");
+
+[a, opt] = getversion();
+Version = opt(2);
+
+etc_tlbx = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.start");
+etc_tlbx = getshortpathname(etc_tlbx);
+root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+//Load functions library
+// =============================================================================
+mprintf("\tLoad macros\n");
+pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
+symphony_lib = lib(pathmacros);
+clear pathmacros;
+
+// load gateways
+// =============================================================================
+
+mprintf("\tLoad gateways\n");
+[a, opt] = getversion();
+Version = opt(2);
+ilib_verbose(0);
+if getos()=="Windows" then
+ lib_path = root_tlbx + "/thirdparty/windows/bin/" + Version;
+ link(lib_path+filesep()+"IpOptFSS.dll");
+ link(lib_path+filesep()+"IpOpt-vc10.dll");
+else
+ lib_path = root_tlbx + "/thirdparty/linux/lib/" + Version;
+ link(lib_path + "/libCoinUtils.so");
+ link(lib_path + "/libClp.so");
+ link(lib_path + "/libClpSolver.so");
+ link(lib_path + "/libOsi.so");
+ link(lib_path + "/libOsiCommonTests.so");
+ link(lib_path + "/libOsiClp.so");
+ link(lib_path + "/libCgl.so");
+ link(lib_path + "/libSym.so");
+ link(lib_path + "/libOsiSym.so");
+ link(lib_path + "/libcoinblas.so");
+ link(lib_path + "/libcoinlapack.so");
+ link(lib_path + "/libcoinmumps.so");
+ link(lib_path + "/libipopt.so");
+end
+exec(pathconvert(root_tlbx + filesep() + "sci_gateway" + filesep() + "loader_gateway.sce",%f));
+
+// Load and add help chapter
+// =============================================================================
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+ mprintf("\tLoad help\n");
+ path_addchapter = pathconvert(root_tlbx+"/jar");
+ if ( isdir(path_addchapter) <> [] ) then
+ add_help_chapter("FOSSEE_Optimization_Toolbox", path_addchapter, %F);
+ clear add_help_chapter;
+ end
+ clear path_addchapter;
+end
+end
+
+// add demos
+// =============================================================================
+
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+ mprintf("\tLoad demos\n");
+ pathdemos = pathconvert(root_tlbx+"/demos/sci_FOSSEE_Image_Processing_Toolbox.dem.gateway.sce",%f,%t);
+ add_demo("FOSSEE_Image_Processing_Toolbox",pathdemos);
+ clear pathdemos ;
+end
+end
+
+// =============================================================================
+
+clear etc_tlbx root_tlbx Version a opt lib_path;
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/master_help.xml b/help/en_US/master_help.xml
new file mode 100644
index 0000000..45c64d2
--- /dev/null
+++ b/help/en_US/master_help.xml
@@ -0,0 +1,19 @@
+
+
+
+
+]>
+
+
+ FOSSEE Image Processing Toolbox
+
+
+
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..ef46423
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
@@ -0,0 +1 @@
+
\ No newline at end of file
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..e3c71bf
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1 @@
+eÿÐjª`
\ 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..1324712
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
@@ -0,0 +1 @@
+ÐÊ
\ 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..60477b1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
@@ -0,0 +1 @@
+eÿ×ãbÙñ.³d
\ No newline at end of file
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..a646b00
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=0 fl=-1 id1=10 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..fced7c7
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..8edb56e
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..e139988
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..4acd4b9
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..3b51020
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..ed46c3e
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..ed46c3e
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..8edb56e
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/index.html b/help/en_US/scilab_en_US_help/index.html
new file mode 100644
index 0000000..651ec0d
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/index.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ FOSSEE Image Processing Toolbox
+
+
+
+
+
+
diff --git a/help/en_US/scilab_en_US_help/jhelpidx.xml b/help/en_US/scilab_en_US_help/jhelpidx.xml
new file mode 100644
index 0000000..aa5a66e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelpidx.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/jhelpmap.jhm b/help/en_US/scilab_en_US_help/jhelpmap.jhm
new file mode 100644
index 0000000..cdbcb20
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelpmap.jhm
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/jhelpset.hs b/help/en_US/scilab_en_US_help/jhelpset.hs
new file mode 100644
index 0000000..7c93217
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelpset.hs
@@ -0,0 +1,28 @@
+
+
+
+FOSSEE Image Processing Toolbox
+
+top
+
+
+
+TOC
+
+javax.help.TOCView
+jhelptoc.xml
+
+
+Index
+
+javax.help.IndexView
+jhelpidx.xml
+
+
+Search
+
+javax.help.SearchView
+JavaHelpSearch
+
+
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/jhelptoc.xml b/help/en_US/scilab_en_US_help/jhelptoc.xml
new file mode 100644
index 0000000..5ef8b88
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelptoc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/scilab_code.css b/help/en_US/scilab_en_US_help/scilab_code.css
new file mode 100644
index 0000000..658f42e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/scilab_code.css
@@ -0,0 +1,96 @@
+.scilabcomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.scilabdefault {
+ font-style: normal;
+ color: #000000
+}
+
+.scilabspecial {
+ font-style: normal;
+ color: #ffaa00
+}
+
+.scilabconstants {
+ font-style: normal;
+ color: #da70d6
+}
+
+.scilaboperator {
+ font-style: normal;
+ color: #5c5c5c
+}
+
+.scilabnumber {
+ font-style: normal;
+ color: #bc8f8f
+}
+
+.scilabfkeyword {
+ font-style: normal;
+ color: #b01813
+}
+
+.scilabskeyword {
+ font-style: normal;
+ color: #a020f0
+}
+
+.scilabckeyword {
+ font-style: normal;
+ color: #5f9ea0
+}
+
+.scilabcommand {
+ font-style: normal;
+ color: #32b9b9
+}
+
+.scilabmacro {
+ font-style: normal;
+ color: #ae5cb0
+}
+
+a.scilabcommand {
+ font-style: normal;
+ text-decoration: underline;
+ color: #32b9b9
+}
+
+a.scilabmacro {
+ font-style: normal;
+ text-decoration: underline;
+ color: #ae5cb0
+}
+
+.scilabstring {
+ font-style: normal;
+ color: #bc8f8f
+}
+
+.scilabid {
+ font-style: normal;
+ color: #000000
+}
+
+.scilabinputoutputargs {
+ font-weight: bold;
+ color: #834310
+}
+
+.scilabfunctionid {
+ font-weight: bold;
+ color: #000000
+}
+
+.scilabfield {
+ font-style: normal;
+ color: #aaaaaa
+}
+
+.scilabopenclose {
+ font-style: normal;
+ color: #4a55db
+}
diff --git a/help/en_US/scilab_en_US_help/style.css b/help/en_US/scilab_en_US_help/style.css
new file mode 100644
index 0000000..0fe8923
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/style.css
@@ -0,0 +1,350 @@
+body {
+ color:#000000;
+ background-color:#ffffff;
+ font-family:sans-serif;
+ font-size:100%;
+ margin:5px;
+ padding:0;
+ background : url("/img/body.png");
+ background-repeat : repeat-x;
+}
+
+.para {
+ padding-left: 10px;
+}
+
+.refname {
+ color: #ff6c0a;
+}
+.refpurpose {
+ font-size: 110%;
+}
+
+.synopsis {
+ border: 1px solid black;
+ width:80%;
+ padding: 0.5em;
+}
+
+.editbar {
+ text-align: right;
+}
+
+.term {
+ color:#800000;
+ font-size:100%;
+}
+
+h3 {
+ color: #000063;
+ font-weight: bold;
+ font-size:130%;
+ margin-bottom: 10px;
+}
+
+.programlisting {
+ font-family: monospace;
+ font-size: 100%;
+ background-color:#EEEEFF;
+ border-color:#CCCCCC;
+ border-style:solid;
+ border-width:2px medium;
+ width:80%;
+ color:#333333;
+ line-height:120%;
+ padding:10px;
+}
+
+.literal {
+ font-family: monospace;
+ font-size: 100%;
+}
+
+.option {
+ font-family: monospace;
+ font-style: italic;
+ font-size: 100%;
+}
+
+.command {
+ font-family: monospace;
+ font-size: 100%;
+ color: #32b9b9;
+}
+
+.function {
+ font-family: monospace;
+ font-size: 100%;
+ color: #32b9b9;
+}
+
+.varname {
+ font-family: monospace;
+ font-weight: bold;
+ font-size: 100%;
+}
+
+.constant {
+ font-family: monospace;
+ font-size: 100%;
+ color: #da70d6;
+}
+
+a {
+ color: blue;
+ text-decoration:none;
+}
+
+a:hover {
+ text-decoration:underline;
+}
+
+.itemizedlist {
+ list-style-type: disk;
+}
+
+.inline-list li {
+ display: inline;
+ list-style-type: disk;
+}
+
+.vert-list {
+ list-style-type: disk;
+}
+
+pre {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+.leftpart {
+ position:absolute;
+ float:left;
+ width: 186px;
+ padding: 5px;
+ font-size: smaller;
+}
+
+.content {
+ margin-top: 100px;
+ margin-left: 196px
+}
+
+.container {
+ margin: 0 auto;
+ width:1024px;
+}
+
+ul.toc li.list-active {
+ list-style-type:disc;
+ font-weight:bold;
+}
+
+ul.toc li.parent {
+ font-size: 115%;
+ padding: 5px 0px 5px 11px;
+ border-bottom: 1px solid #cccccc;
+ margin-bottom: 5px;
+}
+
+ul.toc li.root {
+ font-size: 135%;
+ padding: 5px 0px 5px 11px;
+ border-bottom: 1px solid #cccccc;
+ margin-bottom: 5px;
+}
+
+ul.toc li {
+ font-size: 85%;
+ margin: 1px 0 1px 1px;
+ padding: 1px 0 1px 11px;
+ background-repeat: no-repeat;
+ background-position: center left;
+ list-style-type: circle;
+}
+
+.next {
+ float:right;
+ text-align: right;
+}
+
+.center {
+ text-align: center;
+}
+
+.screen {
+ font-family: monospace;
+ font-size: 100%;
+ background-color:#FFFFFF;
+ border-color:#CCCCCC;
+ border-style:solid;
+ border-width:2px medium;
+ width:80%;
+ color:#333333;
+ line-height:120%;
+ padding:10px;
+}
+
+/* Top and bottom navigation controls on manual pages --------------------- */
+div.manualnavbar {
+ background-color: #E0E0E0;
+ color: inherit;
+ padding: 4px;
+ margin-bottom: 10px;
+}
+div.manualnavbar .prev {
+ padding-right: 4px;
+}
+div.manualnavbar .next {
+ text-align: right;
+ padding-left: 4px;
+}
+
+div.manualnavbar .top {
+ text-align: center;
+ display: block;
+}
+
+div.manualnavbar hr {
+ color: #cccccc;
+ background-color: #cccccc;
+}
+
+/* Footer navigation area ------------------------------------------------- */
+
+#pagefooter {
+ position: relative;
+ font-size: 75%;
+ color: inherit;
+ background-color: #e5e5e5;
+ width: 100%;
+}
+
+#pagefooterleft {
+ top: 0px;
+ left: 0px;
+ padding: 6px;
+ margin-right: 30%;
+}
+
+#pagefooterright {
+ text-align: right;
+ margin-left: 50%;
+ padding: 6px;
+}
+#footnav {
+ color: inherit;
+ background-color: #9999cc;
+ border-width: 1px 0px;
+ border-color: #333366;
+ border-style: solid;
+ text-align: right;
+ padding-right: 6px;
+}
+
+
+
+
+ #global{
+/* width: 90%; */
+ max-width: 90em;
+/* min-width: 850px; */
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ #myHeader{
+ background-color:#000000;
+ color:white;
+ margin-bottom : 10px;
+ position : relative;
+ text-align: center;
+/* width : 1024px;*/
+ height : 100px;
+ padding-left : 20px;
+ background : url("http://atoms.scilab.org/images/homepage/cadre_head.png");
+ background-repeat : no-repeat;
+ background-position : 0px 0px;
+
+ }
+
+ #myFooter{
+ background-color:#E5E5E5;
+ font-color:black;
+/* width: 90%;*/
+ max-width: 90em;
+/* min-width: 850px;
+ margin-left: 5%;
+ margin-right: 5%;*/
+ margin-top:10px;
+ padding:10px;
+ }
+
+ #mainArea{
+ width: 100%;
+ overflow: hidden;
+ }
+
+ #myLeftArea{
+ color:white;
+ float: left;
+ width: 180px;
+ padding:5px;
+ }
+
+ #myMiddleArea{
+ color:black;
+ margin-left: 200px;
+ padding: 10px 20px;
+ }
+
+ #myRightArea{
+ color:white;
+ float: right;
+ width: 200px;
+ padding: 12px 20px;
+ }
+
+
+div#cadre_head
+{
+ position : relative;
+ text-align: center;
+/* width : 1024px;*/
+ height : 100px;
+ padding-left : 20px;
+ background : url("/img/cadre_head.png");
+ background-repeat : no-repeat;
+ background-position : 0px 0px;
+}
+
+
+div#slogan{
+ position: absolute;
+ top : 50px;
+ left:251px;
+ color:#0000AA;
+ font: 120%, Georgia,Serif;
+}
+div#cadre_help
+{
+ position: absolute;
+ top:45px;
+ right:0px;
+ font-size:0.8em;
+ color:#0000AA;
+}
+
+table.revhistory
+{
+ width:80%;
+ border-color:#CCCCCC;
+ border-style:solid;
+ border-width:2px medium;
+ margin-bottom: 10px;
+}
+
+table.revhistory tr.title td
+{
+ background-color: #9999CC;
+}
\ No newline at end of file
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/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar
new file mode 100644
index 0000000..bc36d7a
Binary files /dev/null and b/jar/scilab_en_US_help.jar differ
diff --git a/lena.jpeg b/lena.jpeg
new file mode 100644
index 0000000..21d5012
Binary files /dev/null and b/lena.jpeg differ
diff --git a/loader.sce b/loader.sce
new file mode 100644
index 0000000..9092d09
--- /dev/null
+++ b/loader.sce
@@ -0,0 +1,10 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// Generated by builder.sce: Please, do not edit this file
+
+try
+ getversion("scilab");
+catch
+ error("Scilab 5.0 or more is required.");
+end;
+
+exec(get_absolute_file_path("loader.sce")+"etc/"+"FOSSEE_Image_Processing_Toolbox.start");
diff --git a/macros/BRISKPoints.bin b/macros/BRISKPoints.bin
new file mode 100644
index 0000000..ccb0151
Binary files /dev/null and b/macros/BRISKPoints.bin differ
diff --git a/macros/BRISKPoints.sci b/macros/BRISKPoints.sci
new file mode 100644
index 0000000..d3d80f3
--- /dev/null
+++ b/macros/BRISKPoints.sci
@@ -0,0 +1,30 @@
+function [varargout] = BRISKPoints(inp)
+// This function returns a BRISKPoints struct for storing BRISK interest points.
+//
+// Calling Sequence
+// myStruct = BRISKPoints(Location of KeyPoints)
+//
+// Parameters
+// results: BRISKPoints struct which contains Location, Orientation, Metric, Scale and Count.
+// Location: Location of Interest Point.
+//
+// Description
+// This function returns a BRISKPoints struct with default values.
+//
+// Examples
+// image = imread('sample.jpg');
+// results = detectBRISKFeatures(image);
+// myStruct = BRISKPoints(results.KeyPoints);
+//
+// Authors
+// Shashank Shekhar
+ [ lhs, rhs ] = argn(0)
+ if rhs > 1 then
+ error(msprintf("Too many input arguments"))
+ end
+ if lhs > 1 then
+ error(msprintf("Too many output arguments"))
+ end
+ [a b c d e] = ocv_BRISKPoints(inp);
+ varargout(1) = struct('Location', a, 'Orientation', b, 'Metric', c ,'Scale', d, 'Count', e);
+endfunction
diff --git a/macros/CascadeObjectDetector.bin b/macros/CascadeObjectDetector.bin
new file mode 100644
index 0000000..ea78a31
Binary files /dev/null and b/macros/CascadeObjectDetector.bin differ
diff --git a/macros/CascadeObjectDetector.sci b/macros/CascadeObjectDetector.sci
new file mode 100644
index 0000000..c1c4a7f
--- /dev/null
+++ b/macros/CascadeObjectDetector.sci
@@ -0,0 +1,31 @@
+function [out]=insertObjectAnnotation(input_image,object)
+// Detect human body parts like face ,nose,eye and ear.
+//
+// Calling Sequence
+// output_image = insertObjectAnnotation(input_image,object);
+//
+// Parameters
+//
+// input_image : image matrix on which Cascadeobject detection has to be performed
+// object : An input string which specify the name of the object which has to be detect
+// output_image : an output image in which object are bounded by rectangle.
+//
+// Description
+// This function uses the Viola-Jones algorithm to detect the object from given input image.The function first finds the target object on the image then makes a rectangle on detected part of the image.To detect the object it uses already trained data which are stored in .xml file.User can use own trained data for better object detection.
+//
+// Examples
+// a = imread('lena.jpeg');
+// b = insertObjectAnnotation(a,'face');
+// imshow(b)
+//
+// Authors.
+//
+//Diwakar Bhardwaj
+ input_image1=mattolist(input_image);
+ a=opencv_CascadeObjectDetector(input_image,object);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/DCT.bin b/macros/DCT.bin
new file mode 100644
index 0000000..19443dc
Binary files /dev/null and b/macros/DCT.bin differ
diff --git a/macros/DCT.sci b/macros/DCT.sci
new file mode 100644
index 0000000..d7dd08a
--- /dev/null
+++ b/macros/DCT.sci
@@ -0,0 +1,33 @@
+function [dstImg] = DCT(srcImg)
+// Performs forward Discrete Cosine Transform of the 1D or 2D array.
+//
+// Calling Sequence
+// [dstMat] = DCT(srcMat)
+//
+// Parameters
+// srcMat = 1D or 2D floating type array
+// dstMat = The output matrix
+//
+// Description
+// Returns the forward transform of the input matrix. It uses the flag to perform the transform. The flag is 0 by default so as to perform forward transform.
+//
+// Examples
+// [srcMat] = [230.3 23.1 432.5; 321 543.1 89.5]
+// [dstMAt] = DCT(srcMat)
+//
+// Bibliography
+// Literature references one pr. line
+//
+// code for the above function
+//
+
+ srcMat = mattolist(srcImg)
+ output = opencv_DCT(srcMat)
+
+ channels = size(output)
+
+ for i = 1:channels // for i channel image
+ output_image(:,:,i) = output(i)
+ end
+endfunction
+
diff --git a/macros/Deinterlacer.bin b/macros/Deinterlacer.bin
new file mode 100644
index 0000000..14f0bdc
Binary files /dev/null and b/macros/Deinterlacer.bin differ
diff --git a/macros/Deinterlacer.sci b/macros/Deinterlacer.sci
new file mode 100644
index 0000000..6ced08a
--- /dev/null
+++ b/macros/Deinterlacer.sci
@@ -0,0 +1,56 @@
+function [dstImg] = Deinterlacer(srcImg, varargin)
+// Removes the motion antiquity from Images
+//
+// Calling Sequence
+// [dstImg] = Deinterlacer(srcImg)
+// [dstImg] = Deinterlacer(srcImg, method)
+//
+// Parameters
+// srcImg: The input Matrix
+// method: for specifying the method used for deinterlacing
+// dstimg: The output Matrix
+//
+// Description
+// The input is an image, srcImg, containing the motion antiquity. The varargin specifies the 2nd argument(method) for the function. If second argument i.e method is not specified then default method is used.
+// The method may be any of following types :-
+//
+// Line repeatation
+// Linear interpolation
+// Vertical temporal median filtering
+//
+//
+// Examples
+// srcImg = imread('lena.jpeg')
+// [dstImg] = Deinterlacer(srcImg) // no method specified, default method used
+// [dstImg] = Deinterlacer(srcImg, "Linear interpolation") // Deinterlacing done using Linear interpolation
+//
+// start of coding after on empty line to mark the end of the head_comments section
+//
+
+ [lhs,rhs]=argn(0)
+
+ //To check the number of input and output arguments
+ if rhs>2 then
+ error(msprintf(" Too many input arguments to the function"))
+ end
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 1 then // if no method specified then use default method
+ output = opencv_Deinterlacer(srcMat)
+ case 2 then // if method specified
+ if typeof(varargin(1)) <> "string" then
+ error(msprintf(" argument 2 must string"))
+ end
+ output = opencv_Deinterlacer(srcMat, varargin(1))
+ end
+
+ channels = size(output)
+
+ for i = 1:channels
+ dstImg(:,:,i) = output(i)
+ end
+
+endfunction
+
diff --git a/macros/FFT.bin b/macros/FFT.bin
new file mode 100644
index 0000000..c3b6185
Binary files /dev/null and b/macros/FFT.bin differ
diff --git a/macros/FFT.sci b/macros/FFT.sci
new file mode 100644
index 0000000..3ada874
--- /dev/null
+++ b/macros/FFT.sci
@@ -0,0 +1,22 @@
+function fourierTransform=FFT(inputMatrix)
+// This funtions returns discrete Fourier Transform of 2D input matrix
+//
+// Calling Sequence
+// fourierTransform=FFT(inputMatrix);
+//
+// Parameters
+// inputMatrix: Input matrix must be 2-D.
+//
+// Description
+// It returns the 2D discrete Fourier transform of two dimensional input matrix.
+//
+// Examples
+// I=imread("cameraman.tif");
+// fourier=FFT(I);
+
+ [rows cols channels]=size(inputMatrix);
+ if channels <> 1 then
+ error(msprintf("Wrong input, input must be 2-D matrix"));
+ end
+ fourierTransform=opencv_FFT(inputMatrix);
+endfunction
diff --git a/macros/ForegroundDetector.bin b/macros/ForegroundDetector.bin
new file mode 100644
index 0000000..6a4edff
Binary files /dev/null and b/macros/ForegroundDetector.bin differ
diff --git a/macros/ForegroundDetector.sci b/macros/ForegroundDetector.sci
new file mode 100644
index 0000000..16a1e81
--- /dev/null
+++ b/macros/ForegroundDetector.sci
@@ -0,0 +1,55 @@
+function [varargout] = ForegroundDetector(varargin)
+// This function creates a ForeggroundDetector struct which is used to detect Foreground with Gaussian Mixture Models.
+//
+// Calling Sequence
+// result = ForegroundDetector()
+// result = ForegroundDetector(Name, Value, ..)
+//
+// Parameters
+// results: ForegroundDetector struct containing AdaptLearningRate, NumTrainingFrames, MinimumBackgroundRatio, NumGaussians and LearningRate.
+// AdaptLearningRate : (optional) If true, it enables the adaptation of Learning Rate during the period specified by number of training frames.
+// NumTrainingFrames : (optional) The number of initial video frames employed to train the Background Model.
+// MinimumBackgroundRatio : (optional)
+// NumGaussians : (optional)
+// LearningRate : (optional) This comes into action when AdaptLearningRate is enabled.
+//
+// Description
+// This function returns a ForegreoundDetector Struct which basically sets a background model and tracks changes in an input video frame with respect to the background and then computes the Foreground Mask.
+//
+// Examples
+// myStr = ForegroundDetector("NumGaussians", 4)
+//
+// Authors
+// Shashank Shekhar
+ [ lhs, rhs ] = argn(0)
+ if modulo(rhs,2)~=0 then
+ error(msprintf("Incorrect number of input arguments"))
+ end
+
+ if rhs > 10 then
+ error(msprintf("Too many input arguments"))
+ end
+ if lhs > 1 then
+ error(msprintf("Too many output arguments"))
+ end
+ select rhs
+ case 0 then
+ [fdAdaptLearningRate, fdNumTrainingFrames,fdMinimumBackgroundRatio, fdNumGaussians, fdLearningRate ]= ocv_ForegroundDetector()
+
+ case 2 then
+ [fdAdaptLearningRate, fdNumTrainingFrames,fdMinimumBackgroundRatio, fdNumGaussians, fdLearningRate ] = ocv_ForegroundDetector(varargin(1), varargin(2))
+
+ case 4 then
+ [fdAdaptLearningRate, fdNumTrainingFrames,fdMinimumBackgroundRatio, fdNumGaussians, fdLearningRate ] = ocv_ForegroundDetector(varargin(1), varargin(2), varargin(3), varargin(4))
+
+ case 6 then
+ [fdAdaptLearningRate, fdNumTrainingFrames,fdMinimumBackgroundRatio, fdNumGaussians, fdLearningRate ] = ocv_ForegroundDetector(varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6))
+
+ case 8 then
+ [fdAdaptLearningRate, fdNumTrainingFrames,fdMinimumBackgroundRatio, fdNumGaussians, fdLearningRate ] = ocv_ForegroundDetector(varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+
+ case 10 then
+ [fdAdaptLearningRate, fdNumTrainingFrames,fdMinimumBackgroundRatio, fdNumGaussians, fdLearningRate ] = ocv_ForegroundDetector(varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10))
+ end
+ varargout(1) = struct("AdaptLearningRate", fdAdaptLearningRate, "NumTrainingFrames", fdNumTrainingFrames, "MinimumBackgroundRatio", fdMinimumBackgroundRatio, "NumGaussians", fdNumGaussians, "LearningRate", fdLearningRate);
+endfunction
diff --git a/macros/IDCT.bin b/macros/IDCT.bin
new file mode 100644
index 0000000..00196cb
Binary files /dev/null and b/macros/IDCT.bin differ
diff --git a/macros/IDCT.sci b/macros/IDCT.sci
new file mode 100644
index 0000000..217b00c
--- /dev/null
+++ b/macros/IDCT.sci
@@ -0,0 +1,46 @@
+function new_image = IDCT(image)
+// Compute inverse Discrete Transform of image
+//
+// Calling Sequence
+// newimage = IDCT(image)
+//
+// Parameters
+// image : floating-point image
+// newimage : IDCT of the input image
+//
+// Description
+// The IDCT function computes the inverse cosine transform of a floating-point image with even number of rows and columns.
+//
+// Examples
+// I = imread('cameraman.tif')
+// I = double(I)
+// J = IDCT(I)
+// imshow(J)
+//
+// Authors
+// Suraj Prakash
+
+ [rows, cols, channel] = size(image);
+
+ if (modulo(rows, 2) <> 0) & (modulo(cols, 2) <> 0) then
+ error(msprintf("Image doesnot have even number of rows and columns\n"));
+ elseif (modulo(rows, 2)) <> 0 then
+ error(msprintf("Image doesnot have even number of rows\n"));
+ elseif (modulo(cols, 2)) <> 0 then
+ error(msprintf("Image doesnot have even number of cols\n"));
+ end
+
+ if channel > 1 then
+ error(msprintf("Input image should be single channel"));
+ end
+ image_list = mattolist(image)
+
+ out = opencv_IDCT(image_list)
+
+ length_out = size(out)
+
+ for i = 1 : length_out
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/IFFT.bin b/macros/IFFT.bin
new file mode 100644
index 0000000..ab750d5
Binary files /dev/null and b/macros/IFFT.bin differ
diff --git a/macros/IFFT.sci b/macros/IFFT.sci
new file mode 100644
index 0000000..7f10c42
--- /dev/null
+++ b/macros/IFFT.sci
@@ -0,0 +1,31 @@
+function [out]=IFFT(inputimage)
+// Computes the inverse descrete fourier transform of image
+//
+// Calling Sequence
+// output_image = IFFT(inputimage);
+//
+// Parameters
+//
+// inputimage : Grayscale image
+// out_image : IFFT of input image
+//
+// Description
+// This function computes the inverse descrete fourier transform of input image.The image should be grayscale.
+//
+// Examples
+// a = imread('cameraman.tif');
+// b = IFFT(a);
+// imshow(b)
+//
+// Authors:
+//
+//Diwakar Bhardwaj
+
+
+ inputimage1=mattolist(inputimage);
+ a=opencv_IFFT(inputimage1);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/KalmanFilter.bin b/macros/KalmanFilter.bin
new file mode 100644
index 0000000..5c72453
Binary files /dev/null and b/macros/KalmanFilter.bin differ
diff --git a/macros/KalmanFilter.sci b/macros/KalmanFilter.sci
new file mode 100644
index 0000000..0275099
--- /dev/null
+++ b/macros/KalmanFilter.sci
@@ -0,0 +1,25 @@
+function [output] = KalmanFilter(varargin)
+ [lhs,rhs] = argn(0)
+ if rhs>10
+ error(msprintf(" Too many input arguments"));
+ end
+ select rhs
+ case 0 then
+ a = opencv_KalmanFilter();
+ case 2 then
+ a = opencv_KalmanFilter(varargin(0),varargin(1));
+ case 4 then
+ a = opencv_KalmanFilter(varargin(0),varargin(1),varargin(2),varargin(3));
+ case 6 then
+ a = opencv_KalmanFilter(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5));
+ case 8 then
+ a = opencv_KalmanFilter(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7));
+ case 10 then
+ a = opencv_KalmanFilter(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9));
+ end
+
+ d = size(a);
+ for i = 1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/SURFPoints.bin b/macros/SURFPoints.bin
new file mode 100644
index 0000000..2a70e05
Binary files /dev/null and b/macros/SURFPoints.bin differ
diff --git a/macros/SURFPoints.sci b/macros/SURFPoints.sci
new file mode 100644
index 0000000..ac305d1
--- /dev/null
+++ b/macros/SURFPoints.sci
@@ -0,0 +1,33 @@
+function varargout=SURFPoints(varargin)
+// This function returns a SURFPoints struct for storing SURF interest points.
+//
+// Calling Sequence
+// myStruct = SURFPoints(Location of Interest Points)
+//
+// Parameters
+// results: SURFPoints struct which contains Location, Orientation, Metric, SignOfLaplacian, Scale and Count.
+// Location: Location of Interest Point.
+//
+// Description
+// This function returns a SURFPoints struct with default values.
+//
+// Examples
+// image = imread('sample.jpg');
+// results = detectSURFFeatures(image);
+// myStruct = SURFPoints(results.KeyPoints);
+//
+// Authors
+// Shashank Shekhar
+ [lhs rhs]=argn(0);
+ if lhs<1 then
+ error(msprintf(" Not enough output arguments. One expected"))
+ elseif lhs>1 then
+ error(msprintf(" Too many output arguments. One expected"))
+ end
+ if rhs>1 then
+ error(msprintf(" Too many input arguments. One expected"))
+ end
+ [a b c d e f] = ocv_SURFPoints(varargin(1));
+ varargout(1) = struct('KeyPoints', a, 'Orientation', b, 'Metric', c ,'SignOfLaplacian', d,'Scale', e, 'Count', f );
+endfunction
+
diff --git a/macros/TemplateMatcher.bin b/macros/TemplateMatcher.bin
new file mode 100644
index 0000000..2c72f06
Binary files /dev/null and b/macros/TemplateMatcher.bin differ
diff --git a/macros/TemplateMatcher.sci b/macros/TemplateMatcher.sci
new file mode 100644
index 0000000..d5e60d8
--- /dev/null
+++ b/macros/TemplateMatcher.sci
@@ -0,0 +1,60 @@
+function new_image = TemplateMatcher(image, template_image, varargin)
+// Compares a template in overlapped image regions
+//
+// Calling Sequence
+// newimage = TemplateMatcher(image, template_image)
+//
+// Parameters
+// image : 8-bit 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
+//
+// 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.
+//
+// Examples
+// I = imread('cameraman.tif');
+// Igray = rgb2gray(I);
+// T = Igray(20:75, 90:135);
+// J = TemplateImage(I, T);
+// imshow(J);
+//
+// Authors
+// Suraj Prakash
+
+
+ [ 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"))
+ 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)
+
+ if rhs == 2 then
+
+ temp = opencv_TemplateMatcher(image_list, template_image_list)
+
+ elseif rhs == 3 then
+
+ temp = opencv_TemplateMatcher(image_list, template_image_list, varargin(1))
+
+ end
+
+ sz = size(temp)
+
+ for i=1 : sz
+ new_image(:, :, i) = temp(i)
+ end
+
+endfunction
diff --git a/macros/VideoReader.bin b/macros/VideoReader.bin
new file mode 100644
index 0000000..54b4800
Binary files /dev/null and b/macros/VideoReader.bin differ
diff --git a/macros/VideoReader.sci b/macros/VideoReader.sci
new file mode 100644
index 0000000..b9ecb76
--- /dev/null
+++ b/macros/VideoReader.sci
@@ -0,0 +1,37 @@
+function[varargout] = VideoReader(varargin)
+// This function creates a SURFPoints struct, needed to read Video Files.
+//
+// Calling Sequence
+// result = VideoReader(filename)
+// result = VideoReader(filename, Name, Value)
+//
+// Parameters
+// results: VideoReader Struct containing Name, Duration, FramesPerSecond, CurrentTime, FramesCount, Width, Height and Path.
+// filename: name of the video file
+// CurrentTime : (optional) The timestamp of video in seconds from the beginning of the video.
+//
+// Description
+// This function returns a VideoReader struct with the properties of the video
+//
+// Examples
+// videoStruct = VideoReader('sample.mp4');
+//
+// Authors
+// Shashank Shekhar
+// Tanmay Chaudhari
+ [lhs, rhs] = argn(0)
+ if rhs>3 then
+ error(msprintf(" Too many input arguments. One expected"))
+ end
+ if lhs>1 then
+ error(msprintf(" Too many output arguments. One expected"))
+ end
+
+ if rhs==3 then
+ [FileName, duration, fps, currentTime, frames, width, height, fullPath] = ocv_VideoReader(varargin(1), varargin(2), varargin(3));
+ else
+ [FileName, duration, fps, currentTime, frames, width, height, fullPath] = ocv_VideoReader(varargin(1));
+ end
+
+ varargout(1) = struct('Filename', FileName, 'Duration', duration, 'FramesPerSecond', fps, 'CurrentTime', currentTime, 'FramesCount', frames, 'Width', width, 'Height', height, "Path", fullPath);
+endfunction
diff --git a/macros/adapthisteq.bin b/macros/adapthisteq.bin
new file mode 100644
index 0000000..c88934e
Binary files /dev/null and b/macros/adapthisteq.bin differ
diff --git a/macros/adapthisteq.sci b/macros/adapthisteq.sci
new file mode 100644
index 0000000..7d9f17f
--- /dev/null
+++ b/macros/adapthisteq.sci
@@ -0,0 +1,16 @@
+function [outputImg]=adapthisteq(inputImage,varargin)
+ [lhs rhs]=argn(0);
+ if rhs>2
+ error(msprintf(" Too many input arguments"));
+ end
+ inputList=mattolist(inputImage);
+ select rhs
+ case 1 then
+ outputList=opencv_adapthisteq(inputList);
+ case 2 then
+ outputList=opencv_adapthisteq(inputList,varargin(1));
+ end
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/affine2d.bin b/macros/affine2d.bin
new file mode 100644
index 0000000..9c079b7
Binary files /dev/null and b/macros/affine2d.bin differ
diff --git a/macros/affine2d.sci b/macros/affine2d.sci
new file mode 100644
index 0000000..d0078cd
--- /dev/null
+++ b/macros/affine2d.sci
@@ -0,0 +1,12 @@
+function tform = affine2d(image)
+
+ image_list = mattolist(image)
+
+ out = opencv_affine2d(image_list)
+
+ sz = size(out)
+ for i=1:sz
+ tform(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/approxpolyDP.bin b/macros/approxpolyDP.bin
new file mode 100644
index 0000000..04079f1
Binary files /dev/null and b/macros/approxpolyDP.bin differ
diff --git a/macros/approxpolyDP.sci b/macros/approxpolyDP.sci
new file mode 100644
index 0000000..616febe
--- /dev/null
+++ b/macros/approxpolyDP.sci
@@ -0,0 +1,5 @@
+function output_curve = approxpolyDP(input_curve, epsilon, closed)
+
+ output_curve = opencv_approxpolyDP(input_curve, epsilon, closed)
+
+endfunction
diff --git a/macros/arclength.bin b/macros/arclength.bin
new file mode 100644
index 0000000..8a8c97d
Binary files /dev/null and b/macros/arclength.bin differ
diff --git a/macros/arclength.sci b/macros/arclength.sci
new file mode 100644
index 0000000..88b1480
--- /dev/null
+++ b/macros/arclength.sci
@@ -0,0 +1,5 @@
+function result = arclength(input_curve, closed)
+
+ result = opencv_arclength(input_curve, closed)
+
+endfunction
diff --git a/macros/arrowedline.bin b/macros/arrowedline.bin
new file mode 100644
index 0000000..2ecfabf
Binary files /dev/null and b/macros/arrowedline.bin differ
diff --git a/macros/arrowedline.sci b/macros/arrowedline.sci
new file mode 100644
index 0000000..efbe94e
--- /dev/null
+++ b/macros/arrowedline.sci
@@ -0,0 +1,25 @@
+function[dstImg] = arrowedline(srcImg, x1, y1, x2, y2, R, G, B, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 8 then
+ out = arrowedline(srcMat, x1, y1, x2, y2, R, G, B)
+ case 9 then
+ out = arrowedline(srcMat, x1, y1, x2, y2, R, G, B,varargin(1))
+ case 10 then
+ out = arrowedline(srcMat, x1, y1, x2, y2, R, G, B, varargin(1),varargin(2))
+ case 11 then
+ out = arrowedline(srcMat, x1, y1, x2, y2, R, G, B, varargin(1),varargin(2), varargin(3))
+ case 12 then
+ out = arrowedline(srcMAt, x1, y1, x2, y2, R, G, B, varargin(1),varargin(2), varargin(3), varargin(4))
+ end
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,1) = out(1)
+ end
+endfunction
diff --git a/macros/autoCorrelator.bin b/macros/autoCorrelator.bin
new file mode 100644
index 0000000..7475f1e
Binary files /dev/null and b/macros/autoCorrelator.bin differ
diff --git a/macros/autoCorrelator.sci b/macros/autoCorrelator.sci
new file mode 100644
index 0000000..991b903
--- /dev/null
+++ b/macros/autoCorrelator.sci
@@ -0,0 +1,46 @@
+function relation = autoCorrelator(inputMatrix)
+//Calculate 2-D auto correlation of input matrix
+//
+//Calling Sequence
+// relation=autoCorrelator(inputMatrix)
+//
+//Parameters
+// inputMatrix: input matrix to calculate auto correlation
+//
+//Description
+//This function computes 2-D auto correlation of input matrix
+//
+// Examples
+// rel = autoCorrelator([3 1;2 4]) // examples of use
+
+ [lhs rhs]=argn(0);
+ if rhs<1 then
+ error(msprintf("Wrong arguments: Need atleast one argument"))
+ end
+ [r,c,channels] = size(inputMatrix);
+ if channels<> 1 then
+ error(msprintf("Auto correlator function do not support more than two dimensions"))
+ elseif type(inputMatrix)<> 1
+ error(msprintf("Auto correlator function do not support input type %s",typeof(inputMatrix)))
+ end
+ Rep = zeros(r + r*2-2, c + c*2-2);
+ for x = r : r+r-1
+ for y = c : c+c-1
+ Rep(x,y) = inputMatrix(x-r+1, y-c+1);
+ end
+ end
+ conjMatrix=conj(inputMatrix);
+ //(mROw,mCols)- It indicates middle value of the output matrix
+ relation = zeros(r+r-1,c+c-1); //output matrix
+ //calculating only half of the output matrix
+ for x = 1 : r+r-1
+ for y = 1 : c+c-1
+ for i = 1 : r
+ for j = 1 : c
+ relation(x, y) = relation(x, y) + (Rep(x+i-1, y+j-1) * conjMatrix(i, j));
+ end
+ end
+ end
+ end
+ //Copying remainig values
+endfunction
diff --git a/macros/bagOfFeatures.bin b/macros/bagOfFeatures.bin
new file mode 100644
index 0000000..9d54678
Binary files /dev/null and b/macros/bagOfFeatures.bin differ
diff --git a/macros/bagOfFeatures.sci b/macros/bagOfFeatures.sci
new file mode 100644
index 0000000..480d775
--- /dev/null
+++ b/macros/bagOfFeatures.sci
@@ -0,0 +1,50 @@
+function [bag]=bagOfFeatures(imageSet,varargin)
+// This function is used to create a Bag-of-Words model (BoW model).
+//
+// Calling Sequence
+// bag = bagOfFeatures(imgSet);
+// bag = bagOfFeatures(imgSet, Name, Value, ...);
+//
+// Parameters
+// bag: Bag of visual words
+// imgSet: An imageSet structure
+// VocabularySize: (Optional) Number of visual words (Default- 500)
+// StrongestFeatures: (Optional) Fraction of strongest features (Default- 1.0)
+// Upright: (Optional) Orientation of SURF feature vector (Default- true)
+// Verbose: (Optional) Enable progress display to screen (Default- true)
+//
+// Description
+// BoW model is applied to classify images by treating image features as words. The bagOfFeatures object contains a bag of visual words that help in image classification.
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+//
+// Authors
+// Rohit Suri
+// Umang Agrawal
+
+ [lhs rhs]=argn(0);
+ if lhs>1
+ error(msprintf(" Too many output arguments"));
+ elseif rhs<1
+ error(msprintf("At least one argument is required"));
+ elseif rhs>9
+ error(msprintf(" Too many input arguments"));
+ end
+ imageSetList=imageSetToList(imageSet);
+ select rhs
+ case 1 then
+ bagList=opencv_bagOfFeatures(imageSetList);
+ case 3 then
+ bagList=opencv_bagOfFeatures(imageSetList,varargin(1),varargin(2));
+ case 5 then
+ bagList=opencv_bagOfFeatures(imageSetList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 7 then
+ bagList=opencv_bagOfFeatures(imageSetList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ case 9 then
+ bagList=opencv_bagOfFeatures(imageSetList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8));
+ end
+ bag=struct('FilePath',bagList(2)(1,1),'VocabularySize',bagList(3)(1,1),'StrongestFeatures',bagList(4)(1,1),'Upright',bagList(5)(1,1));
+endfunction
diff --git a/macros/bagStructToList.bin b/macros/bagStructToList.bin
new file mode 100644
index 0000000..8733a0c
Binary files /dev/null and b/macros/bagStructToList.bin differ
diff --git a/macros/bagStructToList.sci b/macros/bagStructToList.sci
new file mode 100644
index 0000000..6ac8c67
--- /dev/null
+++ b/macros/bagStructToList.sci
@@ -0,0 +1,16 @@
+function bagList=bagStructToList(bag)
+ if isstruct(bag)<> %T then
+ error(msprintf("Error: The input argument is not of type bagOfFeatures."));
+ end
+ fieldNamesActual=["FilePath";"VocabularySize";"StrongestFeatures";"Upright"];
+ fieldNamesInput=fieldnames(bag);
+ if fieldNamesActual <> fieldNamesInput then
+ error(msprintf("Error: The input argument is not of type bagOfFeatures, Wrong field names"));
+ end
+ bagList=list();
+ bagList(1)='bagOfFeatures';
+ bagList(2)=bag.FilePath;
+ bagList(3)=bag.VocabularySize;
+ bagList(4)=bag.StrongestFeatures;
+ bagList(5)=bag.Upright;
+endfunction
diff --git a/macros/bbox2points.bin b/macros/bbox2points.bin
new file mode 100644
index 0000000..d848915
Binary files /dev/null and b/macros/bbox2points.bin differ
diff --git a/macros/bbox2points.sci b/macros/bbox2points.sci
new file mode 100644
index 0000000..ca58841
--- /dev/null
+++ b/macros/bbox2points.sci
@@ -0,0 +1,24 @@
+function [ bbox ] = bbox2points(rectangle)
+// Returns list of corner points of a rectangle.
+//
+// Calling Sequence
+// bbox = bbox2points(rectangle);
+//
+// Parameters
+// rectangle: A Nx4 matrix where each row is a rectangle of the form [x, y, width, height];
+// points: Returns 4x2xN size matrix which contains all the 4 co-ordinates of each of the N bounding boxes.
+//
+// Description
+// List of corner points of a rectangle.
+//
+// Examples
+// bbox = [1 2 3 4; 5 6 7 8];
+// results = bbox2points(bbox);
+//
+// Authors
+// Tanmay Chaudhari
+
+ a=opencv_bbox2points(rectangle);
+ out(:,:,1)=a(1);
+
+endfunction
diff --git a/macros/bboxOverlapRatio.bin b/macros/bboxOverlapRatio.bin
new file mode 100644
index 0000000..e52928a
Binary files /dev/null and b/macros/bboxOverlapRatio.bin differ
diff --git a/macros/bboxOverlapRatio.sci b/macros/bboxOverlapRatio.sci
new file mode 100644
index 0000000..682b8c8
--- /dev/null
+++ b/macros/bboxOverlapRatio.sci
@@ -0,0 +1,37 @@
+function [ overlapRatio ] = bboxOverlapRatio(bboxA, bboxB, ratioType)
+// Compute the overlap ratio between the bounding boxes A and B.
+//
+// Calling Sequence
+// [ overlapRatio ] = bboxOverlapRatio(bboxA, bboxB);
+// [ overlapRatio ] = bboxOverlapRatio(bboxA, bboxB, ratioType);
+//
+// Parameters
+// bboxA: Bounding box A of the form [x, y, width, height];
+// bboxB: Boundng box B of the form [x, y, width, height];
+// ratioType (Optional Argument): Method to be used to compute the ratio. Set this to either 'Union' or 'Min'. Default computation method is set to 'Union'.
+// overlapRatio: Overlap ratio between the bounding boxes A and B.
+//
+// Description
+// Compute the overlap ratio between the bounding boxes A and B.
+//
+// Examples
+// bboxA = [1 2 3 4];
+// bboxB = bboxA + 100;
+// overlapRatioMin = bboxOverlapRatio(bboxA, bboxB, 'Min');
+// overlapRatioUnion = bboxOverlapRatio(bboxA, bboxB);
+//
+// Authors
+// Tanmay Chaudhari
+
+ [lhs rhs] = argn(0)
+ if rhs>3 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs==3 then
+ a=opencv_bboxOverlapRatio(input1,input2,varargin(1))
+ out=a
+ elseif rhs==2 then
+ a=opencv_bboxOverlapRatio(input1,input2)
+ out=a
+ end
+
+endfunction
diff --git a/macros/bilateralFilter.bin b/macros/bilateralFilter.bin
new file mode 100644
index 0000000..c824f64
Binary files /dev/null and b/macros/bilateralFilter.bin differ
diff --git a/macros/bilateralFilter.sci b/macros/bilateralFilter.sci
new file mode 100644
index 0000000..c686363
--- /dev/null
+++ b/macros/bilateralFilter.sci
@@ -0,0 +1,13 @@
+function new_image = bilateralFilter(image, d, sigmaColor, sigmaSpace)
+
+ image_list = mattolist(image)
+
+ out = opencv_bilateralFilter(image_list, d, sigmaColor, sigmaSpace)
+
+ sz = size(out)
+
+ for i = 1: sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/binaryFeatures.bin b/macros/binaryFeatures.bin
new file mode 100644
index 0000000..ec5b6c5
Binary files /dev/null and b/macros/binaryFeatures.bin differ
diff --git a/macros/binaryFeatures.sci b/macros/binaryFeatures.sci
new file mode 100644
index 0000000..bd009c9
--- /dev/null
+++ b/macros/binaryFeatures.sci
@@ -0,0 +1,34 @@
+function [features]=binaryFeatures(featureVectors)
+// Object for storing Feature Vectors
+//
+// Calling Sequence
+// features = binaryFeatures(featureVector);
+//
+// Parameters
+// featureVector: M-by-N matrix consisting of M features stored in N uint8 containers
+// features: Binary Feature object for the extracted Features
+//
+// Description
+// This object provides the ability to pass data between extractFeatures and matchFeatures function
+//
+// Examples
+// image_1 = imread('sample1.jpg');
+// points_1 = detectFASTFeatures(image_1);
+// [ f1 vpts_1 ] = extractFeatures(image_1, points_1);
+// features1 = binaryFeatures(f1);
+//
+// Authors
+// Umang Agrawal
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if lhs>1
+ error(msprintf(" Too many output arguments"));
+ elseif rhs>1
+ error(msprintf(" Too many input arguments"));
+ elseif inttype(featureVectors) <> 11 then
+ error(msprintf("wrong argument #%d: FeatureVectors must be uint8",1));
+ end
+ [rows cols]=size(featureVectors);
+ features=struct('Type','binaryFeatures','Features',featureVectors,'NumBits',cols*8,'NumFeatures',rows);
+endfunction
diff --git a/macros/blobAnalysis.bin b/macros/blobAnalysis.bin
new file mode 100644
index 0000000..07e0889
Binary files /dev/null and b/macros/blobAnalysis.bin differ
diff --git a/macros/blobAnalysis.sci b/macros/blobAnalysis.sci
new file mode 100644
index 0000000..216ab7e
--- /dev/null
+++ b/macros/blobAnalysis.sci
@@ -0,0 +1,103 @@
+function [blob] = blobAnalysis(srcImg, varargin)
+// Detects blob in the source image
+//
+// Calling Sequence
+// [blob] = blobAnalysis(srcImg)
+// [blob] = blobAnalysis(srcImg, Name, Value)
+//
+// Parameters
+// srcImg: The input image Matrix
+// Name: filteration method
+// Value: filteration method constraints, [1X2] vector
+// blob: stores different parameters of the blob
+//
+// Description
+// The function uses SimpleBlobDetector function to detect the blobs then it checks for different Name Value pair arguments and accordingly returns the parameters of the blob such as 2D coordinates of the blob, size of the blob.
+//
+// The Name-Value pair may be any of following types :-
+//
+// bool filterByArea, vector [minArea maxArea]
+// bool filterByCircularity, vector [minCircularity maxCircularity]
+// bool filterByConvexity, vector [minConvexity maxConvexity]
+// bool filterByThreshold, vector [minThreshold maxThreshold]
+//
+//
+// Examples
+// [srcImg] = imread('blobdetection.jpg');
+// [blob] = blobAnalysis(srcImg);
+// [blob] = blobAnalysis(srcImg, "filterByArea", [0.01 1]);
+//
+// Authors
+// Deepshikha
+
+[lhs,rhs] = argn(0)
+
+ // To check the number of input and output arguments
+
+ if rhs<1 then
+ error(msprintf(" Not enough input arguments"))
+ elseif rhs>10 then
+ error(msprintf(" Too many input arguments to the function"))
+ elseif lhs<1 then
+ error(msprintf(" Not enough output arguments"))
+ elseif lhs>1 then
+ error(msprintf(" Too many output arguments"))
+ end
+
+ srcMat = mattolist(srcImg)
+
+ if modulo(rhs,2) == 0 then
+ error(msprintf("Number of input arguments must be odd"))
+ end
+
+ select rhs
+ case 1 then
+ output = opencv_blobAnalysis(srcMat)
+
+ case 3 then
+ if typeof(varargin(1))<> "string"
+ error(msprintf("argument at position 2 must be string"))
+ end
+ output = opencv_blobAnalysis(srcMat, varargin(1), varargin(2))
+
+ case 5 then
+ if typeof(varargin(1))<> "string"
+ error(msprintf("argument at position 2 must be string"))
+ end
+ if typeof(varargin(3))<> "string"
+ error(msprintf("argument at position 4 must be string"))
+ end
+ output = opencv_blobAnalysis(srcMat, varargin(1), varargin(2), varargin(3), varargin(4))
+
+ case 7 then
+ if typeof(varargin(1))<> "string"
+ error(msprintf("argument at position 2 must be string"))
+ end
+ if typeof(varargin(3))<> "string"
+ error(msprintf("argument at position 4 must be string"))
+ end
+ if typeof(varargin(5))<> "string"
+ error(msprintf("argument at position 6 must be string"))
+ end
+ output = opencv_blobAnalysis(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6))
+
+ case 9 then
+ if typeof(varargin(1))<> "string"
+ error(msprintf("argument at position 2 must be string"))
+ end
+ if typeof(varargin(3))<> "string"
+ error(msprintf("argument at position 4 must be string"))
+ end
+ if typeof(varargin(5))<> "string"
+ error(msprintf("argument at position 6 must be string"))
+ end
+ if typeof(varargin(7))<> "string"
+ error(msprintf("argument at position 8 must be string"))
+ end
+ output = opencv_blobAnalysis(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+ end
+
+ blob = struct("Points", output(1), "Size", output(2))
+
+endfunction
+
diff --git a/macros/blur.bin b/macros/blur.bin
new file mode 100644
index 0000000..789ec51
Binary files /dev/null and b/macros/blur.bin differ
diff --git a/macros/blur.sci b/macros/blur.sci
new file mode 100644
index 0000000..4b3bcd0
--- /dev/null
+++ b/macros/blur.sci
@@ -0,0 +1,9 @@
+function [out]=blur(input_image ,ksize_width,ksize_height,anchorX,anchorY)
+ input_image1=mattolist(input_image);
+ a=opencv_blur(input_image1, ksize_width,ksize_height,anchorX,anchorY);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/borderInterpolate.bin b/macros/borderInterpolate.bin
new file mode 100644
index 0000000..138900b
Binary files /dev/null and b/macros/borderInterpolate.bin differ
diff --git a/macros/borderInterpolate.sci b/macros/borderInterpolate.sci
new file mode 100644
index 0000000..1f9323d
--- /dev/null
+++ b/macros/borderInterpolate.sci
@@ -0,0 +1,6 @@
+
+function result = borderInterpolate(p, len, borderType)
+
+ result = opencv_borderInterpolate(p, len, borderType)
+
+endfunction
diff --git a/macros/boundingRect.bin b/macros/boundingRect.bin
new file mode 100644
index 0000000..7c2fd69
Binary files /dev/null and b/macros/boundingRect.bin differ
diff --git a/macros/boundingRect.sci b/macros/boundingRect.sci
new file mode 100644
index 0000000..9c8e882
--- /dev/null
+++ b/macros/boundingRect.sci
@@ -0,0 +1,3 @@
+function [rectMat]=boundingRect(points)
+ rectMat=opencv_boundingRect(points);
+endfunction
diff --git a/macros/boxfilter.bin b/macros/boxfilter.bin
new file mode 100644
index 0000000..099d375
Binary files /dev/null and b/macros/boxfilter.bin differ
diff --git a/macros/boxfilter.sci b/macros/boxfilter.sci
new file mode 100644
index 0000000..a29f3a5
--- /dev/null
+++ b/macros/boxfilter.sci
@@ -0,0 +1,9 @@
+function [out]=boxfilter(InputArraysrc, intddepth,size1x,size1y,pointx,pointy, bool_normalize)
+ input_image1=mattolist(InputArraysrc);
+ a=opencv_boxfilter(input_image1, intddepth,size1x,size1y,pointx,pointy, bool_normalize);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/buildmacros.sce b/macros/buildmacros.sce
new file mode 100644
index 0000000..b4c63c7
--- /dev/null
+++ b/macros/buildmacros.sce
@@ -0,0 +1,2 @@
+tbx_build_macros("Image",get_absolute_file_path("buildmacros.sce"));
+clear tbx_build_macros;
diff --git a/macros/bundleAdjustment.bin b/macros/bundleAdjustment.bin
new file mode 100644
index 0000000..628938e
Binary files /dev/null and b/macros/bundleAdjustment.bin differ
diff --git a/macros/bundleAdjustment.sci b/macros/bundleAdjustment.sci
new file mode 100644
index 0000000..73d0ca4
--- /dev/null
+++ b/macros/bundleAdjustment.sci
@@ -0,0 +1,29 @@
+function xyzrefinedPoints = bundleAdjustment(_3dpoints, imagepoints, visibility, cameramatrix, rotation, translation, distcoeffs)
+// Refine camera poses and 3-d points
+//
+// Calling Sequence
+// xyzrefinedPoints = bundleAdjustment(_3dpoints, imagepoints, visibility, cameramatrix, rotation, translation, distcoeffs)
+//
+// Parameters
+// _3dpoints : N * 3 object points
+// imagepoints : M * N * 2 image points for each camera and each points
+// visibility : M * N * 1 visibility matrix, element[i][j] = 1 when object point i is visible from camera j and 0 if not
+// cameramatrix : M * 3 * 3 camera matrix(intrinsic parameters) 3 * 3 camera matrix for each image
+// rotation : M * 3 * 3 rotation matrix for each image
+// translation : M * 3 * 1 translation matrix for each image
+// distcoeffs : M * (4 * 5 * 8) * 1 distortion coefficient for each image
+// xyzrefinedPoints : Refined N * 3 object points
+//
+// Description
+// The function returns the refined 3-D points. The refinement procedure uses Levenberg-Marquardt algorithm.
+//
+// Examples
+// xyzrefinedPoints = bundleAdjustment(_3dpoints, imagepoints, visibility, cameramatrix, rotation, translation, distcoeffs)
+//
+// Authors
+// Suraj Prakash
+
+
+ xyzrefinedPoints = opencv_bundleAdjustment(_3dpoints, imagepoints, visibility, cameramatrix, rotation, translation, distcoeffs)
+
+endfunction
diff --git a/macros/bwlookup.bin b/macros/bwlookup.bin
new file mode 100644
index 0000000..0051716
Binary files /dev/null and b/macros/bwlookup.bin differ
diff --git a/macros/bwlookup.sci b/macros/bwlookup.sci
new file mode 100644
index 0000000..5ab8f66
--- /dev/null
+++ b/macros/bwlookup.sci
@@ -0,0 +1,8 @@
+function [out]=bwlookup(image,lut)
+ image1=mattolist(image);
+ a=opencv_bwlookup(image1,lut);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/bwulterode.bin b/macros/bwulterode.bin
new file mode 100644
index 0000000..3c985a5
Binary files /dev/null and b/macros/bwulterode.bin differ
diff --git a/macros/bwulterode.sci b/macros/bwulterode.sci
new file mode 100644
index 0000000..501c50d
--- /dev/null
+++ b/macros/bwulterode.sci
@@ -0,0 +1,13 @@
+function[dstImg] = bwulterode(srcImg)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_bwulterode(srcMat)
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/cameraMatrix.bin b/macros/cameraMatrix.bin
new file mode 100644
index 0000000..baea024
Binary files /dev/null and b/macros/cameraMatrix.bin differ
diff --git a/macros/cameraMatrix.sci b/macros/cameraMatrix.sci
new file mode 100644
index 0000000..de177c9
--- /dev/null
+++ b/macros/cameraMatrix.sci
@@ -0,0 +1,28 @@
+function [ camMatrix ] = cameraMatrix(instrinsicMatrix,rotationMatrix,translationVector)
+// Returns camera projection matrix.
+//
+// Calling Sequence
+// camMatrix = cameraMatrix(instrinsicMatrix,rotationMatrix,translationVector);
+//
+// Parameters
+// camMatrix: A 4x3 camera projection matrix, which can be used to project 3-D world points in homogenous co-ordinates into an image.
+// instrinsicMatrix: Projection matrix of size 3x3.
+// rotationMatrix: A 3x3 matrix which specifies the rotation of a camera.
+// translationVector: A 1x3 vector which specifies the translation of a camera.
+//
+// Description
+// Return a matrix of size 4-by-3, which can be used to project 3-D world points in homogenous co-ordinates into an image.
+//
+// Examples
+// instrinsicMatrix = [1 0 0; 1 2 0; 3 4 0];
+// rotationMatrix = [ 0.1417 -0.7409 0.6565; 0.9661 -0.0410 -0.2548; 0.2157 0.6703 0.7100];
+// translationVector = [ -29.2584 35.7824 725.5824];
+// camMatrix = cameraMatrix(instrinsicMatrix,rotationMatrix,translationVector)
+//
+// Authors
+// Tanmay Chaudhari
+
+ a=opencv_cameraMatrix(instrinsicMatrix,rotationMatrix,translationVector);
+ camMatrix(:,:,1)=a(1);
+
+endfunction
diff --git a/macros/cameraParameters.bin b/macros/cameraParameters.bin
new file mode 100644
index 0000000..bd05ac5
Binary files /dev/null and b/macros/cameraParameters.bin differ
diff --git a/macros/cameraParameters.sci b/macros/cameraParameters.sci
new file mode 100644
index 0000000..9d2d131
--- /dev/null
+++ b/macros/cameraParameters.sci
@@ -0,0 +1,242 @@
+function varargout=cameraParameters(varargin)
+// It returns the cameraParameters structure
+//
+// Calling Sequence
+// cameraParams=cameraParameters(Name,value);
+//
+// Parameters
+// IntrinsicMatrix: 3-by-3 matrix, it specifies the principal point, skew and focal length. Default- 3-by-3 identity matrix
+// RadialDistortion: 2 or 3 element vector. Default- [0 0 0]
+// TangentialDistortion: 2 element vector. Default- [0 0]
+// RotationVectors: P-by-3 matrix. Each row of the matrix represents 3-D rotation of the camera. Default- []
+// TranslationVectors: P-by-3 matrix. Each row of the matrix represents 3-D translation of the camera. Number of rotation vectors should be equal to number of transation vectors. Default- []
+// WorldPoints: M-by-2 matrix. M indicates the number of keypoints. Default- []
+// WorldUnits: Unit of measure of world points. Default- "mm"
+// EstimateSkew: logical scalar. Default- %F
+// NumRadialDistortionCoefficients: 2 or 3. Default- 2
+// EstimateTangentialDistortion: logical scalar. Default- %F
+// ReprojectionErrors: M-by-2-p array. Number of channels must be equal to number of rotation vectors and number of rows should be equal to number of world points. Default-[]
+//
+// Description
+// This function creates cameraParameters struct based on the arguments provided. The struct contains intrinsic, extrinsic, estimation and lens properties.
+//
+// Examples
+// cameraParms=cameraParams("IntrinsicMatrix", [2 0 0; 0 3 0;4 5 1]);
+// Output:
+// IntrinsicMatrix: [3x3 constant]
+// PrincipalPoint: [4,5]
+// FocalLength: [2,3]
+// Skew: 0
+// RadialDistortion: [0,0,0]
+// TangentialDistortion: [0,0]
+// RotationMatrices: [0x0 constant]
+// RotationVectors: [0x0 constant]
+// TranslationVectors: [0x0 constant]
+// meanReprojectionError: 0
+// ReprojectionErrors: [0x0 constant]
+// ReprojectedPoints: [0x0 constant]
+// NumPatterns: 0
+// WorldPoints: [0x0 constant]
+// WorldUnits: "mm"
+// EstimateSkew: 0
+// NumRadialDistortionCoefficients: 2
+// EstimateTangentialDistortion: 0
+
+ [lhs rhs]=argn(0);
+ if lhs<1 then
+ error(msprintf(" Not enough output arguments"))
+ elseif lhs>1 then
+ error(msprintf(" Too many output arguments to the function"))
+ end
+
+ //default values
+ IntrinsicMatrix=[1 0 0;0 1 0;0 0 1];
+ RadialDistortion=[0 0 0];
+ TangentialDistortion=[0 0];
+ RotationVectors=[];
+ TranslationVectors=[];
+ WorldPoints=[];
+ WorldUnits='mm';
+ EstimateSkew=0;
+ NumRadialDistortionCoefficients=2;
+ EstimateTangentialDistortion=0;
+ ReprojectionErrors=[];
+
+ imRows=0,imCols=0;
+ rdRows=0,rdCols=0;
+ tdRows=0,tdCols=0;
+ rvRows=0,rvCols=0;
+ tvRows=0,tvCols=0;
+ wpRows=0,wpCols=0;
+
+ if modulo(rhs,2) then
+ error(msprintf(" Wrong number of input arguments"));
+ end
+
+ for i=1:2:rhs
+ if strcmpi(varargin(i),"IntrinsicMatrix")==0 then
+ i=i+1;
+ IntrinsicMatrix=varargin(i);
+ [imRows imCols]=size(IntrinsicMatrix);
+ if ~imRows==3 | ~imCols==3 then
+ error(msprintf(" wrong value for the input argument %d, IntrinsicMatrix must be 3*3",i))
+ end
+
+ elseif strcmpi(varargin(i),'RadialDistortion')==0 then
+ i=i+1;
+ RadialDistortion=varargin(i);
+ [rdRows rdCols]=size(RadialDistortion);
+ if ~rdRows==1 | (~rdCols==2 & ~rdCols==3) then
+ error(msprintf(" wrong value for the input argument %d, RadialDistortion must be a vector with 2 or 3 elements",i))
+ end
+
+ elseif strcmpi(varargin(i),'TangentialDistortion')==0 then
+ i=i+1;
+ TangentialDistortion=varargin(i);
+ [tdRows tdCols]=size(TangentialDistortion);
+ if ~tdRows==1 | ~tdCols==2 then
+ error(msprintf(" wrong value for the input argument %d, TangentialDistortion must be 2-element vector",i))
+ end
+
+ elseif strcmpi(varargin(i),'RotationVectors')==0 then
+ i=i+1;
+ RotationVectors=varargin(i);
+ [rvRows rvCols]=size(RotationVectors);
+ if ~rvCols==3 then
+ error(msprintf(" wrong value for the input argument %d, RotationVectors must be M*3",i))
+ end
+
+ elseif strcmpi(varargin(i),'TranslationVectors')==0 then
+ i=i+1;
+ TranslationVectors=varargin(i);
+ [tvRows tvCols]=size(TranslationVectors);
+ if ~tvCols==3 then
+ error(msprintf(" wrong value for the input argument %d, TranslationVectors must be M*3",i))
+ end
+
+ elseif strcmpi(varargin(i),'WorldPoints')==0 then
+ i=i+1;
+ WorldPoints=varargin(i);
+ [wpRows wpCols]=size(WorldPoints);
+ if ~wpCols==2 then
+ error(msprintf(" wrong value for the input argument %d, WorldPoints must be M*2",i))
+ end
+
+ elseif strcmpi(varargin(i),'WorldUnits')==0 then
+ i=i+1;
+ WorldUnits=varargin(i);
+ if ~typeof(WorldUnits)=='string'
+ error(msprintf(" wrong value for the input argument %d, WorldUnits must be string",i))
+ end
+
+ elseif strcmpi(varargin(i),'EstimateSkew')==0 then
+ i=i+1;
+ EstimateSkew=varargin(i);
+ if EstimateSkew==%T
+ EstimateSkew=1;
+ elseif EstimateSkew==%F
+ EstimateSkew=0;
+ else
+ error(msprintf(" wrong value for the input argument %d,EstimateSkew must be logical scalar",i))
+ end
+
+ elseif strcmpi(varargin(i),'NumRadialDistortionCoefficients')==0 then
+ i=i+1;
+ NumRadialDistortionCoefficients=varargin(i);
+ if ~(NumRadialDistortionCoefficients==2 | NumRadialDistortionCoefficients==3) then
+ error(msprintf(" wrong value for the input argument %d, NumRadialDistortionCoefficients must be 2 or 3",i))
+ end
+
+ elseif strcmpi(varargin(i),'EstimateTangentialDistortion')==0 then
+ i=i+1;
+ EstimateTangentialDistortion=varargin(i);
+ EstimateSkew=varargin(i);
+ if EstimateSkew==%T
+ EstimateSkew=1;
+ elseif EstimateSkew==%F
+ EstimateSkew=0;
+ else
+ error(msprintf(" wrong value for the input argument %d, EstimateTangentialDistortion must be logical scalar",i))
+ end
+
+ elseif strcmpi(varargin(i),'ReprojectionErrors')==0 then
+ i=i+1;
+ ReprojectionErrors=varargin(i);
+ [reRows reCols reChannels]=size(ReprojectionErrors);
+ if ~reCols==2 then
+ error(msprintf(" wrong value for the input argument %d, ReprojectionErrors must be M-by-2-by-P array",i))
+ end
+
+ else
+ error(msprintf(" Wrong value for the input argument %d, %s is not a recognised parameter",i,varargin(i)));
+ end
+ end
+
+ if ~rvRows==tvRows then
+ error(msprintf(" wrong value for the input arguments, RotationalVectors and TranslationVectors must be of same size"))
+ end
+ if ~isempty(ReprojectionErrors) then
+ if ~reRows==wpRows then
+ error(msprintf("wrong value for the input arguments, World points and ReprojectctionErrors must contain same number of rows"))
+ end
+ if ~reChannels==rvRows then
+ error(msprintf("wrong value for the input arguments, Number of patterns in ReprojectionErrors and RotationVectors must be of same size"))
+ end
+ end
+
+ RotationMatrices=[]
+ FocalLength=[IntrinsicMatrix(1,1) IntrinsicMatrix(2,2)];
+ PrincipalPoint=[IntrinsicMatrix(3,1) IntrinsicMatrix(3,2)];
+ Skew=IntrinsicMatrix(2,1);
+ for i=1:rvRows
+ RotationVector=RotationVectors(i,:);
+ angle=norm(RotationVector);
+ if angle < %eps
+ RotationMatrices(:,:,i) = eye(3);
+ else
+ n= RotationVector ./ angle;
+ A = [n(1)^2, n(1)*n(2), n(1)*n(3);...
+ n(2)*n(1), n(2)^2, n(2)*n(3);...
+ n(3)*n(1), n(3)*n(2), n(3)^2 ];
+
+ B = [ 0, -n(3), n(2);...
+ n(3), 0, -n(1);...
+ -n(2), n(1), 0 ];
+ RotationMatrices(:,:,i) = eye(3) * cos(angle) + (1 - cos(angle)) * A + sin(angle) * B;
+ end
+ end
+
+ distCoeffs(1,1)=RadialDistortion(1,1);
+ distCoeffs(1,2)=RadialDistortion(1,2);
+ distCoeffs(1,3)=TangentialDistortion(1,1);
+ distCoeffs(1,4)=TangentialDistortion(1,2);
+ if rdCols==3
+ distCoeffs(1,5)=RadiallDistortion(1,3);
+ else
+ distCoeffs(1,5)=0;
+ end
+
+ ReprojectedPoints=[];
+ meanReprojectionError=0;
+ NumPatterns=rvRows;
+ if(WorldPoints <> [])
+ for i=1:NumPatterns
+ ReprojectedPoints(:,:,i)=opencv_projectPoints(WorldPoints,RotationVectors(i,:),TranslationVectors(i,:),IntrinsicMatrix,distCoeffs);
+ end
+ end
+ if ~isempty(ReprojectionErrors) then
+ ImagePoints=ReprojectedPoints-ReprojectionErrors;
+ totalErr=0;
+ for i=1:rvRows
+ err=0;
+ for j=1:wpRows
+ err=err+((ReprojectedPoints(j,1,i)-ImagePoints(j,1,i))+(ReprojectedPoints(j,2,i)-ImagePoints(j,2,i))).^2;
+ end
+ totalErr=totalErr+err;
+ end
+ totalPoints=rvRows*wpRows;
+ meanReprojectionError=sqrt(totalErr/totalPoints);
+ end
+
+ varargout(1)=struct('IntrinsicMatrix',IntrinsicMatrix,'PrincipalPoint',PrincipalPoint,'FocalLength',FocalLength,'Skew',Skew,'RadialDistortion',RadialDistortion,'TangentialDistortion',TangentialDistortion,'RotationMatrices',RotationMatrices,'RotationVectors',RotationVectors,'TranslationVectors',TranslationVectors,'meanReprojectionError',meanReprojectionError,'ReprojectionErrors',ReprojectionErrors,'ReprojectedPoints',ReprojectedPoints,'NumPatterns',NumPatterns,'WorldPoints',WorldPoints,'WorldUnits',WorldUnits,'EstimateSkew',EstimateSkew,'NumRadialDistortionCoefficients',NumRadialDistortionCoefficients,'EstimateTangentialDistortion',EstimateTangentialDistortion);
+endfunction;
diff --git a/macros/canny.bin b/macros/canny.bin
new file mode 100644
index 0000000..f7f0833
Binary files /dev/null and b/macros/canny.bin differ
diff --git a/macros/canny.sci b/macros/canny.sci
new file mode 100644
index 0000000..0cb9ed7
--- /dev/null
+++ b/macros/canny.sci
@@ -0,0 +1,9 @@
+function [out]=canny(input_image ,aperture, threshold1, threshold2, gradient)
+ input_image1=mattolist(input_image);
+ a=opencv_canny(input_image1 , aperture, threshold1, threshold2, gradient);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/checkCCE.bin b/macros/checkCCE.bin
new file mode 100644
index 0000000..18213fb
Binary files /dev/null and b/macros/checkCCE.bin differ
diff --git a/macros/checkCCE.sci b/macros/checkCCE.sci
new file mode 100644
index 0000000..a6396e9
--- /dev/null
+++ b/macros/checkCCE.sci
@@ -0,0 +1,11 @@
+function checkCCE(varargin)
+ errors = varargin(1)
+
+ if ~isfield(errors, 'IntrinsicsErrors' ) | ~isfield(errors, 'ExtrinsicsErrors') then
+ error(msprintf("A CameraCalibrationErrors Struct expected."))
+ end
+
+ checkCIE(errors.IntrinsicsErrors);
+ checkCEE(errors.ExtrinsicsErrors);
+endfunction
+
diff --git a/macros/checkCEE.bin b/macros/checkCEE.bin
new file mode 100644
index 0000000..a22b151
Binary files /dev/null and b/macros/checkCEE.bin differ
diff --git a/macros/checkCEE.sci b/macros/checkCEE.sci
new file mode 100644
index 0000000..bd868ef
--- /dev/null
+++ b/macros/checkCEE.sci
@@ -0,0 +1,22 @@
+function checkCEE(varargin)
+ extErr = varargin(1)
+
+ if ~isfield(extErr, 'RotVectorsError') | ~isfield(extErr, 'TransVectorsError') then
+ error(msprintf("An ExtrinsicsEstimationErrors Struct expected."))
+ end
+
+ rvErr = extErr.RotVectorsError;
+ tvErr = extErr.TransVectorsError;
+
+ if type(rvErr)~=1 | type(tvErr)~=1 | ~isreal(rvErr) | ~isreal(tvErr) then
+ error(msprintf("An ExtrinsicsEstimationErrors Struct expected."))
+ end
+
+ [size11 size12] = size(rvErr);
+ [size11 size12] = size(tvErr);
+
+ if size12~=3 | size11==0 | size11==0 | size12~=3 then
+ error(msprintf("An ExtrinsicsEstimationErrors Struct expected."))
+ end
+
+endfunction
diff --git a/macros/checkCIE.bin b/macros/checkCIE.bin
new file mode 100644
index 0000000..695ba78
Binary files /dev/null and b/macros/checkCIE.bin differ
diff --git a/macros/checkCIE.sci b/macros/checkCIE.sci
new file mode 100644
index 0000000..37cbdbe
--- /dev/null
+++ b/macros/checkCIE.sci
@@ -0,0 +1,27 @@
+function checkCIE(varargin)
+ intErr = varargin(1)
+ if ~isfield(intErr, 'SkewError') | ~isfield(intErr,'FocalLengthError' ) | ~isfield(intErr, 'PrincipalPointError') | ~isfield(intErr, 'RadDistortionError') | ~isfield(intErr, 'TanDistortionError' ) then
+ error(msprintf("An IntrinsicsEstimationErrors Struct expected."))
+ end
+
+ skewErr = intErr.SkewError;
+ flErr = intErr.FocalLengthError;
+ ppErr = intErr.PrincipalPointError;
+ rdErr = intErr.RadDistortionError;
+ tdErr = intErr.TanDistortionError;
+
+ if type(skewErr)~=1 | type(flErr)~=1 | type(ppErr)~=1 | type(rdErr)~=1 | type(tdErr)~=1 | ~isreal(skewErr) | ~isreal(flErr) | ~isreal(ppErr) | ~isreal(rdErr) | ~isreal(tdErr) then
+ error(msprintf("An IntrinsicsEstimationErrors Struct expected."))
+ end
+
+ [size11 size12] = size(skewErr);
+ [size21 size22] = size(flErr);
+ [size31 size32] = size(ppErr);
+ [size41 size42] = size(rdErr);
+ [size51 size52] = size(tdErr);
+
+ if (size11*size12)~=1 | (size21*size22)~=2 | (size31*size32)~=2 | (size41*size42)<2 | (size41*size42)>3 | (size51*size52)~=2 then
+ error(msprintf("An IntrinsicsEstimationErrors Struct expected."))
+ end
+
+endfunction
diff --git a/macros/checkSCE.bin b/macros/checkSCE.bin
new file mode 100644
index 0000000..70b5477
Binary files /dev/null and b/macros/checkSCE.bin differ
diff --git a/macros/checkSCE.sci b/macros/checkSCE.sci
new file mode 100644
index 0000000..eea8fc9
--- /dev/null
+++ b/macros/checkSCE.sci
@@ -0,0 +1,29 @@
+function checkSCE(varargin)
+ stErrors = varargin(1)
+
+ if ~isfield(stErrors,'Camera1IntrinsicsErrors' ) | ~isfield(stErrors,'Camera1ExtrinsicsErrors' ) | ~isfield(stErrors,'Camera2IntrinsicsErrors' ) | ~isfield(stErrors, 'RotationOfCamera2Error' ) | ~isfield(stErrors, 'TransOfCamera2Error') then
+ error(msprintf("A StereoCalibrationErrors struct expected."))
+ end
+
+ cam1intErr = stErrors.Camera1IntrinsicsErrors;
+ cam1extErr = stErrors.Camera1ExtrinsicsErrors;
+ cam2intErr = stErrors.Camera2IntrinsicsErrors;
+
+ checkCIE(cam1intErr);
+ checkCEE(cam1extErr);
+ checkCIE(cam2intErr);
+ rotErr = stErrors.RotationOfCamera2Error;
+ transErr = stErrors.TransOfCamera2Error;
+
+ if type(rotErr)~=1 | type(transErr)~=1 | ~isreal(rotErr) | ~isreal(transErr) then
+ error(msprintf("A StereoCalibrationErrors struct expected."))
+ end
+
+ [size11 size12] = size(rotErr);
+ [size21 size22] = size(transErr);
+
+ if size11*size12~=3 | size21*size22~=3 then
+ error(msprintf("A StereoCalibrationErrors struct expected."))
+ end
+endfunction
+
diff --git a/macros/checkStereoParam.bin b/macros/checkStereoParam.bin
new file mode 100644
index 0000000..f5c29d4
Binary files /dev/null and b/macros/checkStereoParam.bin differ
diff --git a/macros/checkStereoParam.sci b/macros/checkStereoParam.sci
new file mode 100644
index 0000000..b064f90
--- /dev/null
+++ b/macros/checkStereoParam.sci
@@ -0,0 +1,33 @@
+function checkStereoParam(varargin)
+ stereoParam = varargin(1);
+
+ if ~isfield(stereoParam, 'CameraParameters1') | ~isfield(stereoParam,'CameraParameters2') | ~isfield(stereoParam, 'RotationOfCamera2') | ~isfield(stereoParam, 'TranslationOfCamera2') | ~isfield(stereoParam, 'FundamentalMatrix') | ~isfield(stereoParam, 'EssentialMatrix') | ~isfield(stereoParam, 'MeanReprojectionError') | ~isfield(stereoParam, 'NumPatterns') | ~isfield(stereoParam, 'WorldPoints') | ~isfield(stereoParam, 'WorldUnits') then
+ error(msprintf("A Stereo Paramter struct expected."))
+ end
+
+ cam1 = stereoParam.CameraParameters1;
+ cam2 = stereoParam.CameraParameters2;
+ checkCameraParam(cam1);
+ checkCameraParam(cam2);
+
+ rotCam = stereoParam.RotationOfCamera2;
+ transCam = stereoParam.TranslationOfCamera2;
+ funMat = stereoParam.FundamentalMatrix;
+ essenMat = stereoParam.EssentialMatrix;
+ mre = stereoParam.MeanReprojectionError;
+ numPat = stereoParam.NumPatterns;
+ worldPoints = stereoParam.WorldPoints;
+ worldUnits = stereoParam.WorldUnits;
+
+ if type(rotCam)~=1 | type(transCam)~=1 | type(funMat)~=1 | type(essenMat)~=1 | type(mre)~=1 | type(numPat)~=1 | type(worldPoints)~=1 | type(worldUnits)~=10 | ~isreal(rotCam) | ~isreal(transCam) | ~isreal(funMat) | ~isreal(essenMat) | ~isreal(mre) | ~isreal(numPat) | ~isreal(worldPoints) then
+ error(msprintf("A Stereo Paramter struct expected."))
+ end
+
+ [size11 size12] = size(rotCam);
+ [size21 size22] = size(transCam);
+
+ if (size11*size12)~=9 | (size21*size22)~=3 then
+ error(msprintf("A Stereo Paramter struct expected."))
+ end
+
+endfunction
diff --git a/macros/circle.bin b/macros/circle.bin
new file mode 100644
index 0000000..4828201
Binary files /dev/null and b/macros/circle.bin differ
diff --git a/macros/circle.sci b/macros/circle.sci
new file mode 100644
index 0000000..37b8dfe
--- /dev/null
+++ b/macros/circle.sci
@@ -0,0 +1,9 @@
+function [out]=circle(input_image , x_coordinate_of_centre , y_coordinate_centre , radius, r_value,g_value,b_value,thickness,linetype,shift)
+ input_image1=mattolist(input_image);
+ a=opencv_circle(input_image1 , x_coordinate_of_centre , y_coordinate_centre , radius, r_value,g_value,b_value,thickness,linetype,shift);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/classifierToList.bin b/macros/classifierToList.bin
new file mode 100644
index 0000000..3241106
Binary files /dev/null and b/macros/classifierToList.bin differ
diff --git a/macros/classifierToList.sci b/macros/classifierToList.sci
new file mode 100644
index 0000000..98fad46
--- /dev/null
+++ b/macros/classifierToList.sci
@@ -0,0 +1,10 @@
+function classifier_list = classifierToList(classifier)
+ /// classifier is a struct
+
+ if ~isstruct(classifier)
+ error(msprintf("Structure of classifier required\n"));
+ end
+
+ classifier_list = list("classifier",classifier.ClassifierLocation, classifier.BagofFeaturesLocation, classifier.Description);
+
+endfunction
diff --git a/macros/clipline.bin b/macros/clipline.bin
new file mode 100644
index 0000000..6e60bfd
Binary files /dev/null and b/macros/clipline.bin differ
diff --git a/macros/clipline.sci b/macros/clipline.sci
new file mode 100644
index 0000000..9f177f1
--- /dev/null
+++ b/macros/clipline.sci
@@ -0,0 +1,3 @@
+function [out]=clipline(width, height, x1 , y1 , x2,y2)
+ out=opencv_clipline(width, height, x1 , y1 , x2,y2);
+endfunction;
diff --git a/macros/contourarea.bin b/macros/contourarea.bin
new file mode 100644
index 0000000..776b70f
Binary files /dev/null and b/macros/contourarea.bin differ
diff --git a/macros/contourarea.sci b/macros/contourarea.sci
new file mode 100644
index 0000000..feeb7d1
--- /dev/null
+++ b/macros/contourarea.sci
@@ -0,0 +1,3 @@
+function [out]=contourarea(InputArraycontour, booloriented)
+ out=opencv_contourarea(InputArraycontour, booloriented);
+endfunction
diff --git a/macros/convexhull.bin b/macros/convexhull.bin
new file mode 100644
index 0000000..72abcd3
Binary files /dev/null and b/macros/convexhull.bin differ
diff --git a/macros/convexhull.sci b/macros/convexhull.sci
new file mode 100644
index 0000000..0937f55
--- /dev/null
+++ b/macros/convexhull.sci
@@ -0,0 +1,4 @@
+function [out]=convexhull(pstData,clkwise,returnpoints)
+ out=opencv_convexhull(pstData,clkwise,returnpoints);
+
+endfunction;
diff --git a/macros/convmtx2.bin b/macros/convmtx2.bin
new file mode 100644
index 0000000..906812b
Binary files /dev/null and b/macros/convmtx2.bin differ
diff --git a/macros/convmtx2.sci b/macros/convmtx2.sci
new file mode 100644
index 0000000..5f172d3
--- /dev/null
+++ b/macros/convmtx2.sci
@@ -0,0 +1,17 @@
+// Function Name = 2-D convolution matrix
+// Output = Convolution matrix T
+// Input = Input matrix srcMat, Dimensions [m, n]
+
+function[T] = convmtx2(srcImg, m, n)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_convmtx2(srcMat, m, n)
+
+ channels = size(out)
+
+ for i = 1:channels
+ T(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/convolver.bin b/macros/convolver.bin
new file mode 100644
index 0000000..4d17a0d
Binary files /dev/null and b/macros/convolver.bin differ
diff --git a/macros/convolver.sci b/macros/convolver.sci
new file mode 100644
index 0000000..ac75c19
--- /dev/null
+++ b/macros/convolver.sci
@@ -0,0 +1,8 @@
+function [output] = convolver(image1,ksize,values1,scalar)
+ image = mattolist(image1)
+ a = opencv_convolver(image,ksize,values1,scalar);
+ d = size(a);
+ for i = 1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/copymakeborder.bin b/macros/copymakeborder.bin
new file mode 100644
index 0000000..5ad2de9
Binary files /dev/null and b/macros/copymakeborder.bin differ
diff --git a/macros/copymakeborder.sci b/macros/copymakeborder.sci
new file mode 100644
index 0000000..3f1d567
--- /dev/null
+++ b/macros/copymakeborder.sci
@@ -0,0 +1,20 @@
+function new_image = copymakeborder(image, top, bottom, left, right, borderType, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ image_list = mattolist(image)
+
+ select rhs
+ case 6 then
+ out = opencv_copymakeborder(image_list, top, bottom, left, right, borderType)
+
+ case 7 then
+ out = opencv_copymakeborder(image_list, top, bottom, left, right, borderType, varargin(1))
+ end
+
+ sz = size(out)
+ for i = 1 : sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/corner.bin b/macros/corner.bin
new file mode 100644
index 0000000..e4c85b1
Binary files /dev/null and b/macros/corner.bin differ
diff --git a/macros/corner.sci b/macros/corner.sci
new file mode 100644
index 0000000..b86a75e
--- /dev/null
+++ b/macros/corner.sci
@@ -0,0 +1,26 @@
+// This function detects corner in image I and returns it in the matrix C
+
+function[C] = corner(I, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ if rhs == 2 then
+ error(msprintf("No of input cannot be 2"))
+ end
+
+ srcMat = mattolist(I)
+ select rhs
+ case 1 then
+ out = opencv_corner(srcMat)
+
+ case 3 then
+ out = opencv_corner(srcMat, varargin(1), varargin(2))
+ end
+
+ channels = size(out)
+
+ for i = 1:channels
+ C(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/cornerEigenValsAndVecs.bin b/macros/cornerEigenValsAndVecs.bin
new file mode 100644
index 0000000..dce8b0c
Binary files /dev/null and b/macros/cornerEigenValsAndVecs.bin differ
diff --git a/macros/cornerEigenValsAndVecs.sci b/macros/cornerEigenValsAndVecs.sci
new file mode 100644
index 0000000..11d7905
--- /dev/null
+++ b/macros/cornerEigenValsAndVecs.sci
@@ -0,0 +1,7 @@
+function [outputImg]= cornerEigenValsAndVecs(inputImage, blockSize, kSize, borderType)
+ inputList=mattolist(inputImage);
+ outputList=opencv_cornerEigenValsAndVecs(inputList, blockSize, kSize, borderType);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/cornerHarris.bin b/macros/cornerHarris.bin
new file mode 100644
index 0000000..2b2760e
Binary files /dev/null and b/macros/cornerHarris.bin differ
diff --git a/macros/cornerHarris.sci b/macros/cornerHarris.sci
new file mode 100644
index 0000000..b2aaa26
--- /dev/null
+++ b/macros/cornerHarris.sci
@@ -0,0 +1,7 @@
+function [outputImg]= cornerHarris(inputImage, blockSize, kSize, k, borderType)
+ inputList=mattolist(inputImage);
+ outputList=opencv_cornerHarris(inputList, blockSize, kSize, k, borderType);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/cornerMinEigenVal.bin b/macros/cornerMinEigenVal.bin
new file mode 100644
index 0000000..0f47c74
Binary files /dev/null and b/macros/cornerMinEigenVal.bin differ
diff --git a/macros/cornerMinEigenVal.sci b/macros/cornerMinEigenVal.sci
new file mode 100644
index 0000000..8d8f82d
--- /dev/null
+++ b/macros/cornerMinEigenVal.sci
@@ -0,0 +1,7 @@
+function [outputImg]= cornerMinEigenVal(inputImage, blockSize, kSize, borderType)
+ inputList=mattolist(inputImage);
+ outputList=opencv_cornerMinEigenVal(inputList, blockSize, kSize, borderType);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/crossCorrelator.bin b/macros/crossCorrelator.bin
new file mode 100644
index 0000000..33517cf
Binary files /dev/null and b/macros/crossCorrelator.bin differ
diff --git a/macros/crossCorrelator.sci b/macros/crossCorrelator.sci
new file mode 100644
index 0000000..c676044
--- /dev/null
+++ b/macros/crossCorrelator.sci
@@ -0,0 +1,48 @@
+function relation = crossCorrelator(inputMatrix1,inputMatrix2)
+//Calculate 2-D cross correlation of two input matrices
+//
+//Calling Sequence
+// relation=crossCorrelator(inputMatrix1, inputMatrix2);
+//
+//Parameters
+// inputMatrix1: matrix of any size
+// inputMatrix2: matrix of any size
+//
+//Description
+//This function computes 2-D cross correlation of two input matrices
+//
+// Examples
+// A=[1 4;2 3];
+// B=[2 3 5;6 1 4];
+// relation=crossCorrelator(A,B);
+
+[r,c,channels1] = size(inputMatrix1);
+[m,n,channels2] = size(inputMatrix2);
+ if channels1<> 1 then
+ error(msprintf("wrong argument #1: cross correlator function do not support more than two dimensions"))
+ elseif type(inputMatrix1)<> 1
+ error(msprintf("wrong argument #1: cross correlator function do not support input type %s",typeof(A)))
+ end
+ if channels2<> 1 then
+ error(msprintf("wrong argument #2: cross correlator function do not support more than two dimensions"))
+ elseif type(inputMatrix2)<> 1
+ error(msprintf("wrong argument #2: cross correlator function do not support input type %s",typeof(B)))
+ end
+conjMatrix=conj(inputMatrix2);
+Rep = zeros(r + m*2-2, c + n*2-2);
+for x = m : m+r-1
+ for y = n : n+c-1
+ Rep(x,y) = inputMatrix1(x-m+1, y-n+1);
+ end
+end
+relation = zeros(r+m-1,n+c-1);
+for x = 1 : r+m-1
+ for y = 1 : n+c-1
+ for i = 1 : m
+ for j = 1 : n
+ relation(x, y) = relation(x, y) + (Rep(x+i-1, y+j-1) * conjMatrix(i, j));
+ end
+ end
+ end
+end
+endfunction
diff --git a/macros/cvHoughLines.bin b/macros/cvHoughLines.bin
new file mode 100644
index 0000000..432a49e
Binary files /dev/null and b/macros/cvHoughLines.bin differ
diff --git a/macros/cvHoughLines.sci b/macros/cvHoughLines.sci
new file mode 100644
index 0000000..cdf7d59
--- /dev/null
+++ b/macros/cvHoughLines.sci
@@ -0,0 +1,29 @@
+function [points] = cvHoughLines(image,theta,rho)
+// Cartesian co-ordinates of points defined by rho and theta pairs.
+//
+// Calling Sequence
+// points = cvHoughLines(image, theta, rho)
+//
+// Parameters
+// image : input image matrix
+// theta : vector of values of theta that represent the input line
+// rho : vector of values of theta that represent the input line
+// points : It is an MX4 matrix containing the points of intersection of the line(represented by rho and theta) with the image boundary.
+//
+// Description
+//
+// The function returns the points of intersection of the line defined by rho and theta pairs with the image boundary. Image boundary refers to the left and right vertical boundary and top and bottom horizontal boundary.
+//
+// Examples
+// //Load an image
+// I = imread('lena.jpeg');
+// // Calculate the points of intersection
+// points = cvHoughLines(I,[pi/3 pi/6],[5 9]);
+//
+// Authors
+// Asmita Bhar
+//
+
+ img = mattolist(image);
+ points = opencv_HoughLines(img,theta,rho);
+endfunction
diff --git a/macros/cvMaximum.bin b/macros/cvMaximum.bin
new file mode 100644
index 0000000..463602d
Binary files /dev/null and b/macros/cvMaximum.bin differ
diff --git a/macros/cvMaximum.sci b/macros/cvMaximum.sci
new file mode 100644
index 0000000..a9ba428
--- /dev/null
+++ b/macros/cvMaximum.sci
@@ -0,0 +1,295 @@
+//*********************************************************************//
+// Author : Asmita Bhar, Kevin George
+//*********************************************************************//
+
+function varargout = cvMaximum(image, varargin)
+// Finds maximum values in an input
+//
+// Calling Sequence
+// [val ind] = cvMaximum(image);
+// val = cvMaximum(image); (only when IndexOutputPort is false)
+// ind = cvMaximum(image); (only when ValueOutputPort is false)
+// [val ind] = cvMaximum(image, name, value,...);
+// val = cvMaximum(image, name, value, ...); (only when IndexOutputPort is false)
+// ind = cvMaximum(image, name, value, ...); (only when ValueOutputPort is false)
+// [val ind] = cvMaximum(image, name, value,c,r); (only when ROI Processing is true)
+// val = cvMaximum(image, name, value,c,r); (only when ROI Processing is true and IndexOutputPort is false)
+// ind = cvMaximum(image, name, value,c,r); (only when ROI Processing is true and ValueOutputPort is false)
+//
+// Parameters
+// image : Input image matrix
+// ValueOutputPort (Optional) : This property is set to true to output the maximum value. Default : true.
+// IndexOutputPort (Optional) : This property is set to true to output the index of the maximum value. Default : true.
+// Dimension (Output) : Dimension along which the function operates - Row, Column, All or Custom. Default : All
+// CustomDimension (Optional) : The integer dimension over which the function calculates the maximum. This value cannot exceed the number of dimensions in input. It applies only when 'Dimension' property is set to 'Custom'. Default : 1
+// ROIProcessing (Optional) : It applies only when 'Dimension' property is set to 'All'. It calculates the maximum within a particular region of the image. Default : false
+// c (Optional): vector of y-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// r (Optional): vector of x-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// val : Stores the maximum value calculated
+// ind : Stores the index at which the maximum value occurs.
+//
+// Description
+// The function calculates the maximum value in a given image matrix.
+//
+// Examples
+// //Load an image
+// I = imread('peppers.png');
+// //Calculate the maximum (default dimension is 'All')
+// [val ind] = cvMaximum(I);
+// //Calculate the maximum when dimension is 'Row' and IndexOutputPort is set to false
+// val = cvMaximum(I,'ValueOutputPort','false','Dimension','Row');
+// //Calculate the maximum within a given ROI
+// a = [0 100 100 0];
+// b = [0 0 100 100];
+// [val ind] = cvMaximum(I,'ROIProcessing','true',a,b);
+//
+// Authors
+// Asmita Bhar
+// Kevin George
+//
+ [lhs,rhs] = argn(0);
+ if rhs<1 then
+ error(msprintf("Not enough input arguments"));
+ end
+ if rhs>13 then
+ error(msprintf("Too many input arguments"));
+ end
+ if lhs>2 then
+ error(msprintf("Too many output arguments"));
+ end
+ [iRows iCols]=size(image(1))
+ iChannels = size(image)
+
+ valueOutputPort = 'true';
+ indexOutputPort = 'true';
+ dimension = 'All';
+ customDimension = 1;
+ roiProcessing = 'false';
+
+ flag1=0;
+ i=1;
+ while(i2)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ elseif(iChannels==3) then
+ if(customDimension>3)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ end
+
+ if(roiProcessing=='false') then
+ if (dimension=='All') then
+ if(iChannels==1) then
+ [val ind] = max(image(1))
+ ind(1) = 1;
+ elseif (iChannels==3) then
+ val1 = max(image(1))
+ val2 = max(image(2))
+ val3 = max(image(3))
+ if (val1>=val2) & (val1>=val3) then
+ [val ind] = max(image(1))
+ ind(3) = 1
+ elseif (val2>=val1) & (val2>=val3) then
+ [val ind] = max(image(2))
+ ind(3) = 2
+ else
+ [val ind] = max(image(3))
+ ind(3) = 3
+ end
+ end
+ t = ind(1)
+ ind(1) = ind(2)
+ ind(2) = t
+ end
+ if (dimension=='Row') then
+ if(iChannels==1) then
+ [val ind] = max(image(1),'c');
+ elseif(iChannels==3) then
+ [val1 ind1] = max(image(1),'c');
+ [val2 ind2] = max(image(2),'c');
+ [val3 ind3] = max(image(3),'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ end
+ end
+ if (dimension=='Column') then
+ if(iChannels==1) then
+ [val ind] = max(image(1),'r');
+ elseif(iChannels==3) then
+ [val1 ind1] = max(image(1),'r');
+ [val2 ind2] = max(image(2),'r');
+ [val3 ind3] = max(image(3),'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ end
+ end
+ if (dimension=='Custom') then
+ if(iChannels==1) then
+ if(customDimension==1) then
+ [val ind] = max(image(1),'r');
+ elseif(customDimension==2) then
+ [val ind] = max(image(1),'c');
+ end
+ elseif(iChannels==3) then
+ if(customDimension==1) then
+ [val1 ind1] = max(image(1),'r');
+ [val2 ind2] = max(image(2),'r');
+ [val3 ind3] = max(image(3),'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ elseif(customDimension==2) then
+ [val1 ind1] = max(image(1),'c');
+ [val2 ind2] = max(image(2),'c');
+ [val3 ind3] = max(image(3),'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ elseif(customDimension==3) then
+ a = image(1);
+ b = image(2);
+ c = image(3);
+ for i=1:iRows
+ for j=1:iCols
+ val(i,j)= max([a(i,j) b(i,j) c(i,j)]);
+ if(val(i,j)==a(i,j)) then
+ ind(i,j)=1;
+ elseif(val(i,j)==b(i,j)) then
+ ind(i,j)=2;
+ else
+ ind(i,j)=3;
+ end
+ end
+
+ end
+ end
+ end
+ end
+ end
+ if(roiProcessing=='true') then
+ I2 = roipoly(image,c,r);
+ out = I2;
+ output = find(out>0);
+ [rows cols] = size(out);
+ if(iChannels==1)
+ ROI = zeros(iRows,iCols);
+ for i=1:cols
+ ROI(output(i)) = image(1)(output(i));
+ end
+ elseif(iChannels==3)
+ ROI1 = zeros(iRows,iCols);
+ ROI2 = zeros(iRows,iCols);
+ ROI3 = zeros(iRows,iCols);
+ for i=1:cols
+ ROI1(output(i)) = image(1)(output(i));
+ ROI2(output(i)) = image(2)(output(i));
+ ROI3(output(i)) = image(3)(output(i));
+ end
+ ROI = list(ROI1,ROI2,ROI3);
+ end
+ if (dimension=='All') then
+ if(iChannels==1) then
+ a=ROI;
+ [val ind] = max(a(find(a>0)));
+ //ind(1) = 1;
+ elseif (iChannels==3) then
+ a=ROI(1);
+ b=ROI(2);
+ c=ROI(3);
+ val1 = max(a(find(a>0)));
+ val2 = max(b(find(b>0)));
+ val3 = max(c(find(c>0)));
+ if (val1>=val2) & (val1>=val3) then
+ [val ind] = max(ROI(1))
+ //ind(3) = 1
+ elseif (val2>=val1) & (val2>=val3) then
+ [val ind] = max(ROI(2))
+ //ind(3) = 2
+ else
+ [val ind] = max(ROI(3))
+ //ind(3) = 3
+ end
+ end
+ //t = ind(1)
+ //ind(1) = ind(2)
+ //ind(2) = t
+ end
+ end
+
+
+ if (~strcmpi(valueOutputPort,'true') & ~strcmpi(indexOutputPort,'true')) then
+ varargout = list(val,ind);
+ elseif (~strcmpi(valueOutputPort,'true') & ~strcmpi(indexOutputPort,'false')) then
+ varargout = val
+ elseif (~strcmpi(indexOutputPort,'true') & ~strcmpi(valueOutputPort,'false')) then
+ varargout = ind
+ end
+
+endfunction
+
diff --git a/macros/cvMean.bin b/macros/cvMean.bin
new file mode 100644
index 0000000..b2977a0
Binary files /dev/null and b/macros/cvMean.bin differ
diff --git a/macros/cvMean.sci b/macros/cvMean.sci
new file mode 100644
index 0000000..ce8318e
--- /dev/null
+++ b/macros/cvMean.sci
@@ -0,0 +1,217 @@
+//*********************************************************************//
+// Author : Asmita Bhar, Kevin George
+//*********************************************************************//
+
+function [val] = cvMean(image, varargin)
+// Finds mean values in an input
+//
+// Calling Sequence
+// val = cvMean(image);
+// val = cvMean(image, name, value,...);
+// val = cvMean(image, name, value,c,r); (only when ROI Processing is true)
+//
+// Parameters
+// image : Input image matrix
+// Dimension (Output) : Dimension along which the function operates - Row, Column, All or Custom. Default : All
+// CustomDimension (Optional) : The integer dimension over which the function calculates the mean. This value cannot exceed the number of dimensions in input. It applies only when 'Dimension' property is set to 'Custom'. Default : 1
+// ROIProcessing (Optional) : It applies only when 'Dimension' property is set to 'All'. It calculates the mean within a particular region of the image. Default : false
+// c (Optional): vector of y-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// r (Optional): vector of x-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// val : Stores the mean value calculated
+//
+// Description
+// The function calculates the mean value in a given image matrix.
+//
+// Examples
+// //Load an image
+// I = imread('peppers.png');
+// //Calculate the mean (default dimension is 'All')
+// val = cvMean(I);
+// //Calculate the mean when dimension is 'Row'
+// val = cvMean(I,'Dimension','Row');
+// //Calculate the mean within a given ROI
+// a = [0 100 100 0];
+// b = [0 0 100 100];
+// val = cvMean(I,'ROIProcessing','true',a,b);
+//
+// Authors
+// Asmita Bhar
+// Kevin George
+//
+ [lhs,rhs] = argn(0);
+ if rhs<1 then
+ error(msprintf("Not enough input arguments"));
+ end
+ if rhs>9 then
+ error(msprintf("Too many input arguments"));
+ end
+ [iRows iCols]=size(image(1))
+ iChannels = size(image)
+
+ dimension = 'All';
+ customDimension = 1;
+ roiProcessing = 'false';
+
+ flag1=0;
+ i=1;
+ while(i2)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ elseif(iChannels==3) then
+ if(customDimension>3)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ end
+
+ if(iChannels==1)
+ I = double(image(1));
+ elseif(iChannels==3)
+ I1 = double(image(1));
+ I2 = double(image(2));
+ I3 = double(image(3));
+ end
+
+ if(roiProcessing=='false') then
+ if (dimension=='All') then
+ if(iChannels==1) then
+ val = mean(I)
+ elseif (iChannels==3) then
+ val1 = mean(I1)
+ val2 = mean(I2)
+ val3 = mean(I3)
+ val = mean([val1 val2 val3])
+ end
+ end
+ if (dimension=='Row') then
+ if(iChannels==1) then
+ val = mean(I,'c');
+ elseif(iChannels==3) then
+ val1 = mean(I1,'c');
+ val2 = mean(I2,'c');
+ val3 = mean(I3,'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ end
+ end
+ if (dimension=='Column') then
+ if(iChannels==1) then
+ val = mean(I,'r');
+ elseif(iChannels==3) then
+ val1 = mean(I1,'r');
+ val2 = mean(I2,'r');
+ val3 = mean(I3,'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ end
+ end
+ if (dimension=='Custom') then
+ if(iChannels==1) then
+ if(customDimension==1) then
+ val = mean(I,'r');
+ elseif(customDimension==2) then
+ val = mean(I,'c');
+ end
+ elseif(iChannels==3) then
+ if(customDimension==1) then
+ val1 = mean(I1,'r');
+ val2 = mean(I2,'r');
+ val3 = mean(I3,'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ elseif(customDimension==2) then
+ val1 = mean(I1,'c');
+ val2 = mean(I2,'c');
+ val3 = mean(I3,'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ elseif(customDimension==3) then
+ for i=1:iRows
+ for j=1:iCols
+ val(i,j)= mean([I1(i,j) I2(i,j) I3(i,j)]);
+ end
+
+ end
+ end
+ end
+ end
+ end
+ if(roiProcessing=='true') then
+ I4 = roipoly(image,c,r);
+ out = I4;
+ output = find(out>0);
+ [rows cols] = size(out);
+ if(iChannels==1)
+ ROI = zeros(iRows,iCols);
+ for i=1:cols
+ ROI(output(i)) = image(1)(output(i));
+ end
+ elseif(iChannels==3)
+ ROI1 = zeros(iRows,iCols);
+ ROI2 = zeros(iRows,iCols);
+ ROI3 = zeros(iRows,iCols);
+ for i=1:cols
+ ROI1(output(i)) = image(1)(output(i));
+ ROI2(output(i)) = image(2)(output(i));
+ ROI3(output(i)) = image(3)(output(i));
+ end
+ ROI = list(ROI1,ROI2,ROI3);
+ end
+ if (dimension=='All') then
+ if(iChannels==1) then
+ a=ROI;
+ val = mean(a(find(a>0)));
+ elseif (iChannels==3) then
+ a=ROI(1);
+ b=ROI(2);
+ c=ROI(3);
+ val1 = mean(a(find(a>0)));
+ val2 = mean(b(find(b>0)));
+ val3 = mean(c(find(c>0)));
+ val = mean([val1 val2 val3]);
+ end
+ end
+ end
+
+endfunction
+
diff --git a/macros/cvMedian.bin b/macros/cvMedian.bin
new file mode 100644
index 0000000..1424ac4
Binary files /dev/null and b/macros/cvMedian.bin differ
diff --git a/macros/cvMedian.sci b/macros/cvMedian.sci
new file mode 100644
index 0000000..a403984
--- /dev/null
+++ b/macros/cvMedian.sci
@@ -0,0 +1,119 @@
+//**************************************************
+// Author : Asmita Bhar
+//**************************************************
+
+function [out] = cvMedian(image,varargin)
+// Finds median values in an input
+//
+// Calling Sequence
+// val = cvMedian(image)
+// val = cvMedian(image, name, value, .....)
+//
+// Parameters
+// image : Input image matrix
+// SortMethod (Optional) : The sort method to calculate the median - Quick sort or Insertion Sort. Default : Quick sort
+// Dimension (Optional) : Dimension along which the function operates - Row, Column, All or Custom. Default : All
+// CustomDimension (Optional) : The integer dimension over which the function calculates the median. This value cannot exceed the number of dimensions in input. It applies only when 'Dimension' property is set to 'Custom'. Default : 1
+//
+// Description
+// The function calculates the median values in a given input image matrix.
+//
+// Examples
+// //Load an image
+// I = imread('peppers.png');
+// val1 = cvMedian(I); // calculates the median value considering dimension as 'All'
+// val2 = cvMedian(I,'Dimension','Row'); //calculates the median value in 'Row' dimension
+//
+// Authors
+// Asmita Bhar
+//
+
+ [lhs,rhs] = argn(0);
+ if rhs<1 then
+ error(msprintf("Not enough input arguments"));
+ end
+ if rhs>7 then
+ error(msprintf("Too many input arguments"));
+ end
+
+ [iRows iCols]=size(image(1))
+ iChannels = size(image)
+
+ sortMethod = 'Quick sort';
+ dimension = 'All';
+ customDimension = 1;
+
+ flag=0;
+ i=1;
+ while(i13 then
+ error(msprintf("Too many input arguments"));
+ end
+ if lhs>2 then
+ error(msprintf("Too many output arguments"));
+ end
+ [iRows iCols]=size(image(1)) // finding the number of rows and columns of the image
+ iChannels = size(image) //finding the number of channels in the image
+
+
+ // default values
+ valueOutputPort = 'true';
+ indexOutputPort = 'true';
+ dimension = 'All';
+ customDimension = 1;
+ roiProcessing = 'false';
+
+ flag1=0;
+ i=1;
+
+ // taking the optional argumnets as input
+ while(i2)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ elseif(iChannels==3) then
+ if(customDimension>3)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ end
+
+ // calculating minimum for the image if ROI is not mentioned
+ if(roiProcessing=='false') then
+ //calculating minimum if dimension is all
+ if (dimension=='All') then
+ //calculating minimum for a single channel image
+ if(iChannels==1) then
+ [val ind] = min(image(1))
+ ind(3) = 1;
+ // calculating minimum for a 3-channel image
+ elseif (iChannels==3) then
+ val1 = min(image(1))
+ val2 = min(image(2))
+ val3 = min(image(3))
+ if (val1<=val2) & (val1<=val3) then
+ [val ind] = min(image(1))
+ ind(3) = 1
+ elseif (val2<=val1) & (val2<=val3) then
+ [val ind] = min(image(2))
+ ind(3) = 2
+ else
+ [val ind] = min(image(3))
+ ind(3) = 3
+ end
+ end
+ // swapping the indices to match matlab output
+ t = ind(1)
+ ind(1) = ind(2)
+ ind(2) = t
+ end
+ // calculating minimum if dimension is Row
+ if (dimension=='Row') then
+ //calculating minimum if dimension is all
+ if(iChannels==1) then
+ [val ind] = min(image(1),'c');
+ // calculating minimum for a 3-channel image
+ elseif(iChannels==3) then
+ [val1 ind1] = min(image(1),'c');
+ [val2 ind2] = min(image(2),'c');
+ [val3 ind3] = min(image(3),'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ end
+ end
+ if (dimension=='Column') then
+ //calculating minimum if dimension is Column
+ if(iChannels==1) then
+ [val ind] = min(image(1),'r');
+ // calculating minimum for a 3-channel image
+ elseif(iChannels==3) then
+ [val1 ind1] = min(image(1),'r');
+ [val2 ind2] = min(image(2),'r');
+ [val3 ind3] = min(image(3),'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ end
+ end
+ if (dimension=='Custom') then
+ //calculating minimum if dimension is Custom
+ if(iChannels==1) then
+ //calculating for dimension 1 i.e. Column
+ if(customDimension==1) then
+ [val ind] = min(image(1),'r');
+ //calculating for imension 2 i.e. Row
+ elseif(customDimension==2) then
+ [val ind] = min(image(1),'c');
+ end
+ // calculating minimum for a 3-channel image
+ elseif(iChannels==3) then
+ //calculating for dimension 1 i.e. Column
+ if(customDimension==1) then
+ [val1 ind1] = min(image(1),'r');
+ [val2 ind2] = min(image(2),'r');
+ [val3 ind3] = min(image(3),'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ //calculating for dimension 2 i.e. Row
+ elseif(customDimension==2) then
+ [val1 ind1] = min(image(1),'c');
+ [val2 ind2] = min(image(2),'c');
+ [val3 ind3] = min(image(3),'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ ind(:,:,1) = ind1;
+ ind(:,:,2) = ind2;
+ ind(:,:,3) = ind3;
+ //calculating for dimension 3 i.e Channel
+ elseif(customDimension==3) then
+ a = image(1);
+ b = image(2);
+ c = image(3);
+ for i=1:iRows
+ for j=1:iCols
+ val(i,j)= min([a(i,j) b(i,j) c(i,j)]);
+ if(val(i,j)==a(i,j)) then
+ ind(i,j)=1;
+ elseif(val(i,j)==b(i,j)) then
+ ind(i,j)=2;
+ else
+ ind(i,j)=3;
+ end
+ end
+
+ end
+ end
+ end
+ end
+ end
+ //calculating minimum if ROI is mentioned
+ if(roiProcessing=='true') then
+ I2 = roipoly(image,c,r);
+ out = I2;
+ output = find(out>0);
+ [rows cols] = size(out);
+ if(iChannels==1)
+ ROI = zeros(iRows,iCols);
+ for i=1:cols
+ ROI(output(i)) = image(1)(output(i));
+ end
+ elseif(iChannels==3)
+ ROI1 = zeros(iRows,iCols);
+ ROI2 = zeros(iRows,iCols);
+ ROI3 = zeros(iRows,iCols);
+ for i=1:cols
+ ROI1(output(i)) = image(1)(output(i));
+ ROI2(output(i)) = image(2)(output(i));
+ ROI3(output(i)) = image(3)(output(i));
+ end
+ ROI = list(ROI1,ROI2,ROI3);
+ end
+ if (dimension=='All') then
+ if(iChannels==1) then
+ a=ROI;
+ [val ind] = min(a(find(a>0)));
+ elseif (iChannels==3) then
+ a=ROI(1);
+ b=ROI(2);
+ c=ROI(3);
+ val1 = min(a(find(a>0)));
+ val2 = min(b(find(b>0)));
+ val3 = min(c(find(c>0)));
+ if (val1<=val2) & (val1<=val3) then
+ [val ind] = min(a(find(a>0)));
+ elseif (val2<=val1) & (val2<=val3) then
+ [val ind] = min(b(find(b>0)));
+ else
+ [val ind] = min(c(find(c>0)));
+ end
+ end
+ end
+ end
+
+ // output values according to the user input for valueoutputport and indexoutputport
+ if (~strcmpi(valueOutputPort,'true') & ~strcmpi(indexOutputPort,'true')) then
+ varargout = list(val,ind);
+ elseif (~strcmpi(valueOutputPort,'true') & ~strcmpi(indexOutputPort,'false')) then
+ varargout = list(val);
+ elseif (~strcmpi(indexOutputPort,'true') & ~strcmpi(valueOutputPort,'false')) then
+ varargout = list(ind);
+ end
+
+endfunction
+
diff --git a/macros/cvStandardDeviation.bin b/macros/cvStandardDeviation.bin
new file mode 100644
index 0000000..5cdfb93
Binary files /dev/null and b/macros/cvStandardDeviation.bin differ
diff --git a/macros/cvStandardDeviation.sci b/macros/cvStandardDeviation.sci
new file mode 100644
index 0000000..260553b
--- /dev/null
+++ b/macros/cvStandardDeviation.sci
@@ -0,0 +1,217 @@
+//*********************************************************************//
+// Author : Asmita Bhar, Kevin George
+//*********************************************************************//
+
+function [val] = cvStandardDeviation(image, varargin)
+// Finds standard deviation values in an input
+//
+// Calling Sequence
+// val = cvStandardDeviation(image);
+// val = cvStandardDeviation(image, name, value,...);
+// val = cvStandardDeviation(image, name, value,c,r); (only when ROI Processing is true)
+//
+// Parameters
+// image : Input image matrix
+// Dimension (Output) : Dimension along which the function operates - Row, Column, All or Custom. Default : All
+// CustomDimension (Optional) : The integer dimension over which the function calculates the minimum. This value cannot exceed the number of dimensions in input. It applies only when 'Dimension' property is set to 'Custom'. Default : 1
+// ROIProcessing (Optional) : It applies only when 'Dimension' property is set to 'All'. It calculates the standard deviation within a particular region of the image. Default : false
+// c (Optional): vector of y-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// r (Optional): vector of x-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// val : Stores the standard deviation value calculated
+//
+// Description
+// The function calculates the standard deviation value in a given image matrix.
+//
+// Examples
+// //Load an image
+// I = imread('peppers.png');
+// //Calculate the standard deviation (default dimension is 'All')
+// val = cvStandardDeviation(I);
+// //Calculate the standard deviation when dimension is 'Row'
+// val = cvStandardDeviation(I,'Dimension','Row');
+// //Calculate the standard deviation within a given ROI
+// a = [0 100 100 0];
+// b = [0 0 100 100];
+// val = cvStandardDeviation(I,'ROIProcessing','true',a,b);
+//
+// Authors
+// Asmita Bhar
+// Kevin George
+//
+ [lhs,rhs] = argn(0);
+ if rhs<1 then
+ error(msprintf("Not enough input arguments"));
+ end
+ if rhs>9 then
+ error(msprintf("Too many input arguments"));
+ end
+ [iRows iCols]=size(image(1))
+ iChannels = size(image)
+
+ dimension = 'All';
+ customDimension = 1;
+ roiProcessing = 'false';
+
+ flag1=0;
+ i=1;
+ while(i2)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ elseif(iChannels==3) then
+ if(customDimension>3)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ end
+
+ if(iChannels==1)
+ I = double(image(1));
+ elseif(iChannels==3)
+ I1 = double(image(1));
+ I2 = double(image(2));
+ I3 = double(image(3));
+ end
+
+ if(roiProcessing=='false') then
+ if (dimension=='All') then
+ if(iChannels==1) then
+ val = stdev(I)
+ elseif (iChannels==3) then
+ val1 = stdev(I1)
+ val2 = stdev(I2)
+ val3 = stdev(I3)
+ val = stdev([val1 val2 val3])
+ end
+ end
+ if (dimension=='Row') then
+ if(iChannels==1) then
+ val = stdev(I,'c');
+ elseif(iChannels==3) then
+ val1 = stdev(I1,'c');
+ val2 = stdev(I2,'c');
+ val3 = stdev(I3,'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ end
+ end
+ if (dimension=='Column') then
+ if(iChannels==1) then
+ val = stdev(I,'r');
+ elseif(iChannels==3) then
+ val1 = stdev(I1,'r');
+ val2 = stdev(I2,'r');
+ val3 = stdev(I3,'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ end
+ end
+ if (dimension=='Custom') then
+ if(iChannels==1) then
+ if(customDimension==1) then
+ val = stdev(I,'r');
+ elseif(customDimension==2) then
+ val = stdev(I,'c');
+ end
+ elseif(iChannels==3) then
+ if(customDimension==1) then
+ val1 = stdev(I1,'r');
+ val2 = stdev(I2,'r');
+ val3 = stdev(I3,'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ elseif(customDimension==2) then
+ val1 = stdev(I1,'c');
+ val2 = stdev(I2,'c');
+ val3 = stdev(I3,'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ elseif(customDimension==3) then
+ for i=1:iRows
+ for j=1:iCols
+ val(i,j)= stdev([I1(i,j) I2(i,j) I3(i,j)]);
+ end
+
+ end
+ end
+ end
+ end
+ end
+ if(roiProcessing=='true') then
+ I4 = roipoly(image,c,r);
+ out = I4;
+ output = find(out>0);
+ [rows cols] = size(out);
+ if(iChannels==1)
+ ROI = zeros(iRows,iCols);
+ for i=1:cols
+ ROI(output(i)) = I(output(i));
+ end
+ elseif(iChannels==3)
+ ROI1 = zeros(iRows,iCols);
+ ROI2 = zeros(iRows,iCols);
+ ROI3 = zeros(iRows,iCols);
+ for i=1:cols
+ ROI1(output(i)) = I1(output(i));
+ ROI2(output(i)) = I2(output(i));
+ ROI3(output(i)) = I3(output(i));
+ end
+ ROI = list(ROI1,ROI2,ROI3);
+ end
+ if (dimension=='All') then
+ if(iChannels==1) then
+ a=ROI;
+ val = stdev(a(find(a>0)));
+ elseif (iChannels==3) then
+ a=ROI(1);
+ b=ROI(2);
+ c=ROI(3);
+ val1 = stdev(a(find(a>0)));
+ val2 = stdev(b(find(b>0)));
+ val3 = stdev(c(find(c>0)));
+ val = stdev([val1 val2 val3]);
+ end
+ end
+ end
+
+endfunction
+
diff --git a/macros/cvVariance.bin b/macros/cvVariance.bin
new file mode 100644
index 0000000..94c7ae2
Binary files /dev/null and b/macros/cvVariance.bin differ
diff --git a/macros/cvVariance.sci b/macros/cvVariance.sci
new file mode 100644
index 0000000..bbe18ad
--- /dev/null
+++ b/macros/cvVariance.sci
@@ -0,0 +1,217 @@
+//*********************************************************************//
+// Author : Asmita Bhar, Kevin George
+//*********************************************************************//
+
+function [val] = cvVariance(image, varargin)
+// Finds variance values in an input
+//
+// Calling Sequence
+// val = cvVariance(image);
+// val = cvVariance(image, name, value,...);
+// val = cvVariance(image, name, value,c,r); (only when ROI Processing is true)
+//
+// Parameters
+// image : Input image matrix
+// Dimension (Output) : Dimension along which the function operates - Row, Column, All or Custom. Default : All
+// CustomDimension (Optional) : The integer dimension over which the function calculates the minimum. This value cannot exceed the number of dimensions in input. It applies only when 'Dimension' property is set to 'Custom'. Default : 1
+// ROIProcessing (Optional) : It applies only when 'Dimension' property is set to 'All'. It calculates the variance within a particular region of the image. Default : false
+// c (Optional): vector of y-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// r (Optional): vector of x-coordinates of vectices of a rectangle(ROI). Applicable only when 'ROIProcssing' is set to 'true'.
+// val : Stores the variance calculated
+//
+// Description
+// The function calculates the variance value in a given image matrix.
+//
+// Examples
+// //Load an image
+// I = imread('peppers.png');
+// //Calculate the variance (default dimension is 'All')
+// val = cvVariance(I);
+// //Calculate the variance when dimension is 'Row'
+// val = cvVariance(I,'Dimension','Row');
+// //Calculate the variance within a given ROI
+// a = [0 100 100 0];
+// b = [0 0 100 100];
+// val = cvVariance(I,'ROIProcessing','true',a,b);
+//
+// Authors
+// Asmita Bhar
+// Kevin George
+//
+ [lhs,rhs] = argn(0);
+ if rhs<1 then
+ error(msprintf("Not enough input arguments"));
+ end
+ if rhs>9 then
+ error(msprintf("Too many input arguments"));
+ end
+ [iRows iCols]=size(image(1))
+ iChannels = size(image)
+
+ dimension = 'All';
+ customDimension = 1;
+ roiProcessing = 'false';
+
+ flag1=0;
+ i=1;
+ while(i2)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ elseif(iChannels==3) then
+ if(customDimension>3)
+ error(msprintf("CustomDimension cannot be greater than the dimension of the input."));
+ end
+ end
+
+ if(iChannels==1)
+ I = double(image(1));
+ elseif(iChannels==3)
+ I1 = double(image(1));
+ I2 = double(image(2));
+ I3 = double(image(3));
+ end
+
+ if(roiProcessing=='false') then
+ if (dimension=='All') then
+ if(iChannels==1) then
+ val = variance(I)
+ elseif (iChannels==3) then
+ val1 = variance(I1)
+ val2 = variance(I2)
+ val3 = variance(I3)
+ val = variance([val1 val2 val3])
+ end
+ end
+ if (dimension=='Row') then
+ if(iChannels==1) then
+ val = variance(I,'c');
+ elseif(iChannels==3) then
+ val1 = variance(I1,'c');
+ val2 = variance(I2,'c');
+ val3 = variance(I3,'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ end
+ end
+ if (dimension=='Column') then
+ if(iChannels==1) then
+ val = variance(I,'r');
+ elseif(iChannels==3) then
+ val1 = variance(I1,'r');
+ val2 = variance(I2,'r');
+ val3 = variance(I3,'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ end
+ end
+ if (dimension=='Custom') then
+ if(iChannels==1) then
+ if(customDimension==1) then
+ val = variance(I,'r');
+ elseif(customDimension==2) then
+ val = variance(I,'c');
+ end
+ elseif(iChannels==3) then
+ if(customDimension==1) then
+ val1 = variance(I1,'r');
+ val2 = variance(I2,'r');
+ val3 = variance(I3,'r');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ elseif(customDimension==2) then
+ val1 = variance(I1,'c');
+ val2 = variance(I2,'c');
+ val3 = variance(I3,'c');
+ val(:,:,1) = val1;
+ val(:,:,2) = val2;
+ val(:,:,3) = val3;
+ elseif(customDimension==3) then
+ for i=1:iRows
+ for j=1:iCols
+ val(i,j)= variance([I1(i,j) I2(i,j) I3(i,j)]);
+ end
+
+ end
+ end
+ end
+ end
+ end
+ if(roiProcessing=='true') then
+ I4 = roipoly(image,c,r);
+ out = I4;
+ output = find(out>0);
+ [rows cols] = size(out);
+ if(iChannels==1)
+ ROI = zeros(iRows,iCols);
+ for i=1:cols
+ ROI(output(i)) = image(1)(output(i));
+ end
+ elseif(iChannels==3)
+ ROI1 = zeros(iRows,iCols);
+ ROI2 = zeros(iRows,iCols);
+ ROI3 = zeros(iRows,iCols);
+ for i=1:cols
+ ROI1(output(i)) = image(1)(output(i));
+ ROI2(output(i)) = image(2)(output(i));
+ ROI3(output(i)) = image(3)(output(i));
+ end
+ ROI = list(ROI1,ROI2,ROI3);
+ end
+ if (dimension=='All') then
+ if(iChannels==1) then
+ a=ROI;
+ val = variance(a(find(a>0)));
+ elseif (iChannels==3) then
+ a=ROI(1);
+ b=ROI(2);
+ c=ROI(3);
+ val1 = variance(a(find(a>0)));
+ val2 = variance(b(find(b>0)));
+ val3 = variance(c(find(c>0)));
+ val = variance([val1 val2 val3]);
+ end
+ end
+ end
+
+endfunction
+
diff --git a/macros/cv_imread.bin b/macros/cv_imread.bin
new file mode 100644
index 0000000..214b649
Binary files /dev/null and b/macros/cv_imread.bin differ
diff --git a/macros/cv_imread.sci b/macros/cv_imread.sci
new file mode 100644
index 0000000..100cae3
--- /dev/null
+++ b/macros/cv_imread.sci
@@ -0,0 +1,11 @@
+function[dstMat] = cv_imread(matA)
+
+ out = opencv_imread(matA)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/cv_imread.sci~ b/macros/cv_imread.sci~
new file mode 100644
index 0000000..de70a07
--- /dev/null
+++ b/macros/cv_imread.sci~
@@ -0,0 +1,11 @@
+function[dstMat] = imread(matA)
+
+ out = opencv_imread(matA)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/cvtColor.bin b/macros/cvtColor.bin
new file mode 100644
index 0000000..379c49c
Binary files /dev/null and b/macros/cvtColor.bin differ
diff --git a/macros/cvtColor.sci b/macros/cvtColor.sci
new file mode 100644
index 0000000..e112154
--- /dev/null
+++ b/macros/cvtColor.sci
@@ -0,0 +1,20 @@
+function new_image = cvtColor(image, code, varargin)
+
+ [ lhs, rhs ] = argn(0)
+
+ image_list = mattolist(image)
+
+ select rhs
+ case 2 then
+ out = opencv_cvtColor(image_list, code)
+
+ case 3 then
+ out = opencv_cvtColor(image_list, code, varargin(1))
+ end
+
+ sz = size(out)
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/dctmtx.bin b/macros/dctmtx.bin
new file mode 100644
index 0000000..0f89e5b
Binary files /dev/null and b/macros/dctmtx.bin differ
diff --git a/macros/dctmtx.sci b/macros/dctmtx.sci
new file mode 100644
index 0000000..b17d25d
--- /dev/null
+++ b/macros/dctmtx.sci
@@ -0,0 +1,4 @@
+function [out]=dctmtx(n)
+ out=opencv_dctmtx(n);
+
+endfunction;
diff --git a/macros/decorrstretch.bin b/macros/decorrstretch.bin
new file mode 100644
index 0000000..d72aad5
Binary files /dev/null and b/macros/decorrstretch.bin differ
diff --git a/macros/decorrstretch.sci b/macros/decorrstretch.sci
new file mode 100644
index 0000000..257f191
--- /dev/null
+++ b/macros/decorrstretch.sci
@@ -0,0 +1,12 @@
+function new_image = decorrstretch(image)
+
+ image_list = mattolist(image)
+
+ out = opencv_decorrstretch(image_list)
+
+ sz = size(out)
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/demosaic.bin b/macros/demosaic.bin
new file mode 100644
index 0000000..9547d64
Binary files /dev/null and b/macros/demosaic.bin differ
diff --git a/macros/demosaic.sci b/macros/demosaic.sci
new file mode 100644
index 0000000..529511a
--- /dev/null
+++ b/macros/demosaic.sci
@@ -0,0 +1,8 @@
+function [out]=demosaic(src,code,dstCn)
+ input_image1=mattolist(src);
+ a=opencv_demosaic( input_image1,code,dstCn);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/detectBRISKFeatures.bin b/macros/detectBRISKFeatures.bin
new file mode 100644
index 0000000..dc7de07
Binary files /dev/null and b/macros/detectBRISKFeatures.bin differ
diff --git a/macros/detectBRISKFeatures.sci b/macros/detectBRISKFeatures.sci
new file mode 100644
index 0000000..4449727
--- /dev/null
+++ b/macros/detectBRISKFeatures.sci
@@ -0,0 +1,47 @@
+function [varargout] = detectBRISKFeatures(image, varargin)
+// This function is used to detect BRISK(Binary Robust Invariant Scalable Keypoints) Features in a grayscale Image.
+//
+// Calling Sequence
+// result = detectBRISKFeatures(Image);
+// result = detectBRISKFeatures(Image, Name, Value, ...)
+//
+// Parameters
+// result: BRISKPoints struct which contains Location of KeyPoints, Orientation, Metric, SignOfLaplacian, Scale and Count of the features.
+// Image : Input image, specified as a A-by-N 2D grayscale.
+// MinContrast : (Optional) The minimum difference in intensity between a corner and its surrounding region. (Default: 0.2). The value must be between 0 and 1.
+// NumOctaves : (Optional)The number of Octaves that the detector uses. (Default - 3) The value must be an integer scalar in between 1 and 4.
+// MinQuality : (Optional) This specifies the minimum quality accepted for corners. (Default - 0.1) The value must be between 0 and 1.
+// ROI : (Optional) Region Of Interest. This is taken as a vector [u v width height]. When specified, the function detects the key points within region of area width*height with u and v being the top left corner coordinates.
+//
+// Description
+// This function returns the BRISK features detected in a 2D grayscale image.
+//
+// Examples
+// image = imread('sample.jpg');
+// results = detectBRISKFeatures(image);
+//
+// Authors
+// Shashank Shekhar
+
+ image_list = mattolist(image);
+ [ lhs, rhs ] = argn(0)
+ if rhs > 9 then
+ error(msprintf("Too many input arguments"))
+ end
+ if lhs > 1 then
+ error(msprintf("Too many output arguments"))
+ end
+ select rhs
+ case 1 then
+ [a b c d e]= ocv_detectBRISKFeatures(image_list)
+ case 3 then
+ [a b c d e]= ocv_detectBRISKFeatures(image_list, varargin(1), varargin(2))
+ case 5 then
+ [a b c d e]= ocv_detectBRISKFeatures(image_list, varargin(1), varargin(2), varargin(3), varargin(4))
+ case 7 then
+ [a b c d e]= ocv_detectBRISKFeatures(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6))
+ case 9 then
+ [a b c d e]= ocv_detectBRISKFeatures(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+ end
+ varargout(1) = struct('Keypoints', a, 'Orientation', b, 'Metric', c ,'Scale', d, 'Count', e);
+endfunction
diff --git a/macros/detectCheckerboardPoints.bin b/macros/detectCheckerboardPoints.bin
new file mode 100644
index 0000000..0e17878
Binary files /dev/null and b/macros/detectCheckerboardPoints.bin differ
diff --git a/macros/detectCheckerboardPoints.sci b/macros/detectCheckerboardPoints.sci
new file mode 100644
index 0000000..b4e50c7
--- /dev/null
+++ b/macros/detectCheckerboardPoints.sci
@@ -0,0 +1,50 @@
+function [imagePoints,boardSize,varargout]=detectCheckerboardPoints(input1,varargin)
+// This function is used to detect a checkerboard pattern in an image.
+//
+// Calling Sequence
+// [imagePoints boardSize] = detectCheckerboardPoints(I);
+// [imagePoints boardSize imagesUsed] = detectCheckerboardPoints(imageFileNames);
+// [imagePoints boardSize imagesUsed] = detectCheckerboardPoints(images);
+// [imagePoints boardSize imagesUsed] = detectCheckerboardPoints(imageFileNames1,imageFileNames2);
+// [imagePoints boardSize imagesUsed] = detectCheckerboardPoints(images1,images2);
+//
+// Parameters
+// imagePoints: Matrix containing checkerboard points.
+// boardSize: Matrix (1x2) containing boardSize
+// imagesUsed: Images used to detect checkerboard in case of multiple input images
+// imageFileNames: Path to image files
+// images: Input images
+//
+// Description
+// This function detects a checkerboard in an image and returns the points of the checkeboard corners.
+//
+// Examples
+// [imagePoints boardSize imagesUsed] = detectCheckerboardPoints(imageFileNames);
+//
+// [imagePoints boardSize imagesUsed] = detectCheckerboardPoints(images1,images2);
+//
+// Authors
+// Rohit Suri
+
+ [lhs rhs]=argn(0);
+ if lhs>3
+ error(msprintf(" Too many output arguments"));
+ elseif rhs>2
+ error(msprintf(" Too many input arguments"));
+ end
+ select rhs
+ case 1 then
+ [points boardSize usedImages]=opencv_detectCheckerboardPoints(input1);
+ case 2 then
+ [points boardSize usedImages]=opencv_detectCheckerboardPoints(input1,varargin(1));
+ end
+ for i=1:size(points(1))
+ for j=1:size(points(1)(1),'r')
+ imagePoints(:,:,i)=points(1)(i);
+ end
+ end
+ if lhs==3 then
+ len=size(usedImages,'c');
+ varargout(1)=matrix(usedImages,len,1);
+ end
+endfunction
diff --git a/macros/detectFASTFeatures.bin b/macros/detectFASTFeatures.bin
new file mode 100644
index 0000000..da32183
Binary files /dev/null and b/macros/detectFASTFeatures.bin differ
diff --git a/macros/detectFASTFeatures.sci b/macros/detectFASTFeatures.sci
new file mode 100644
index 0000000..e78baba
--- /dev/null
+++ b/macros/detectFASTFeatures.sci
@@ -0,0 +1,53 @@
+function [cornerPoints]=detectFASTFeatures(image,varargin)
+// This function is used to detect the corner points using FAST Alogrithm
+//
+// Calling Sequence
+// [ Location Count Metric ] = detectFASTFeatures( Image, Name, Value... )
+//
+// Parameters
+// Image: Input Image, should be a 2-D grayscale. The Input Image should be real
+// MinQuality [Optional Input Argument]: Minimum Accepted Quality of Corners, can be specified as a scalar value between [0,1]. Default: 0.1
+// MinContrast [Optional Input Argument]: Minimum Intensity difference for Corners to be detected, can be specified as a scalar value between[0,1]. Default: 0.2
+// ROI [Optional Input Argument]: Specify a rectangular region of operation. Format [ x y width height ]. Default: [1 1 size(Image,2) size(Image,1)]
+// Location: Set of x,y coordinates for the deteccted points
+// Count: Number of corner points detected
+// Metric: Value describing the strength of each detected Point
+//
+// Description
+// The detectFASTFeatures function uses the Features from Accelerated Segment Test (FAST) algorithm to find feature points.
+//
+// Examples
+// image = imread('sample.jpg');
+// [location count metric] = detectFastFeatures(image);
+//
+// With Optional Arguments:
+// [location count metric] = detectFASTFeatures(image,"MinContrast",0.2);
+//
+// Authors
+// Umang Agrawal
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if lhs>3
+ error(msprintf(" Too many output arguments"));
+ elseif rhs-1>6
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs-1,2)<>0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ imageList=mattolist(image);
+ select rhs-1
+ case 0 then
+ [location count metric]=opencv_detectFASTFeatures(imageList);
+ case 2 then
+ [location count metric]=opencv_detectFASTFeatures(imageList,varargin(1),varargin(2));
+ case 4 then
+ [location count metric]=opencv_detectFASTFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [location count metric]=opencv_detectFASTFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ end
+ cornerPoints=struct('Type','cornerPoints','Location',location,'Metric',metric,'Count',count);
+ //for i=1:count
+ // cornerPoints(i)=struct('Location',location(i,:),'metric',metric(i,:),'Count',1);
+ //end
+endfunction
diff --git a/macros/detectHarrisFeatures.bin b/macros/detectHarrisFeatures.bin
new file mode 100644
index 0000000..60db293
Binary files /dev/null and b/macros/detectHarrisFeatures.bin differ
diff --git a/macros/detectHarrisFeatures.sci b/macros/detectHarrisFeatures.sci
new file mode 100644
index 0000000..f4792f7
--- /dev/null
+++ b/macros/detectHarrisFeatures.sci
@@ -0,0 +1,52 @@
+function [cornerPoints]=detectHarrisFeatures(image,varargin)
+// This function is used to find corner points in an image using Harris algorithm.
+//
+// Calling Sequence
+// points = detectHarrisFeatures(I);
+// points = detectHarrisFeatures(I, Name, Value, ...);
+//
+// Parameters
+// points: Structure of corner points
+// I: Input image to detectHarrisFeatures()
+// MinQuality: (Optional) Minimum accepted quality of corners (Default- 0.01)
+// FilterSize: (Optional) Dimension of Gaussian Filter (Default: 5)
+// ROI: (Optional) Rectangular region for corner detection
+// SensitivityFactor: (Optional) SensitivityFactor of Harris algorithm (Default- 0.04)
+//
+// Description
+// This function detects corners in an image I. These corner points are used to extract features and hence recognize the contents of an image.
+//
+// Examples
+// I = imread('sample.jpg');
+// points = detectHarrisFeatures(I);
+//
+// Authors
+// Rohit Suri
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if lhs>1
+ error(msprintf(" Too many output arguments"));
+ elseif rhs>9
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs,2)==0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ imageList=mattolist(image);
+ select rhs-1
+ case 0 then
+ [location metric count]=opencv_detectHarrisFeatures(imageList);
+ case 2 then
+ [location metric count]=opencv_detectHarrisFeatures(imageList,varargin(1),varargin(2));
+ case 4 then
+ [location metric count]=opencv_detectHarrisFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [location metric count]=opencv_detectHarrisFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ case 8 then
+ [location metric count]=opencv_detectHarrisFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8));
+ end
+ cornerPoints=struct('Type','cornerPoints','Location',location,'Metric',metric,'Count',count);
+ //for i=1:count(1,1)
+ // cornerPoints(i)=struct('Location',location(i,:),'Metric',metric(i,:),'Count',1);
+ //end
+endfunction
diff --git a/macros/detectMSERFeatures.bin b/macros/detectMSERFeatures.bin
new file mode 100644
index 0000000..ec3010b
Binary files /dev/null and b/macros/detectMSERFeatures.bin differ
diff --git a/macros/detectMSERFeatures.sci b/macros/detectMSERFeatures.sci
new file mode 100644
index 0000000..9e1377a
--- /dev/null
+++ b/macros/detectMSERFeatures.sci
@@ -0,0 +1,57 @@
+function [regions]=detectMSERFeatures(image,varargin)
+// This function is used to detect MSER features
+//
+// Calling Sequence
+// list_pixels = detectMSERFeatures(image, Name, Value... )
+// [list_pixels Count Location Axes Orientation] = detectMSERFeatures(image, Name, Value... )
+//
+// Parameters
+// Image: Input Image, should be a 2-D grayscale. The Input Image should be real
+// ThresholdDelta [Optional Input Argument]: Step Size between intensity to be checked for measurement of stability. Values: Percentage numeric value. Default: 2.0
+// RegionAreaRange [Optional Input Argument]: Size of the region in Pixels specified as [minArea maxArea]. Default Value: [30 14000]
+// ROI [Optional Input Argument]: Specify a rectangular region of operation. Format [ x y width height ]. Default: [1 1 size(Image,2) size(Image,1)]
+// MaxAreaVariation [Optional Input Argument]: Maximum Area Variation between external regions at varying thresholds for determination of stability. Values in range of (0,1]. Default 0.25
+// list_pixels: Array of point coordinates for detected regions
+// Location: A M-by-2 Matrix of [x y] coordinates of centroid of the ellipsoidal fit to the region
+// Count: Count of the number of stable regions detected
+// Axes: A M-by-2 Matrix of [majorAxis minorAxis] values for each ellipsoidal fit to the detected regions
+// Orientation: A M-by-1 Vector containing the angle of orientation of the ellipsoidal fit in the range of [-pi/2 +pi/2] radians
+//
+// Description
+// This function is used to detect the MSER regions, and also the corresponding ellipsoidal fit to the detected regions.
+//
+// Examples
+// image = imread('sample.jpg');
+// [regions] = detectMSERFeatures(image);
+//
+// With Optional Arguments:
+// [regions location axes] = detectMSERFeatures(image, "ThresholdDelta", 10.0)
+//
+// Authors
+// Umang Agrawal
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if rhs>9
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs-1,2)<>0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ imageList=mattolist(image);
+ select rhs-1
+ case 0 then
+ [pixelIdxList count location axes orientation]=opencv_detectMSERFeatures(imageList);
+ case 2 then
+ [pixelIdxList count location axes orientation]=opencv_detectMSERFeatures(imageList,varargin(1),varargin(2));
+ case 4 then
+ [pixelIdxList count location axes orientation]=opencv_detectMSERFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [pixelIdxList count location axes orientation]=opencv_detectMSERFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ case 8 then
+ [pixelIdxList count location axes orientation]=opencv_detectMSERFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8));
+ end
+ //for i=1:size(pixelIdxList)
+ // regions(i)=struct('Count',1,'Location',location(i,:),'Axes',axes(i,:),'Orientation',orientation(i,:),'PixelIdxList',pixelIdxList(i));
+ //end
+ regions=struct('Type','MSERObject','Count',count,'Location',location,'Axes',axes,'Orientation',orientation,'PixelIdxList',pixelIdxList),
+endfunction
diff --git a/macros/detectMinEigenFeatures.bin b/macros/detectMinEigenFeatures.bin
new file mode 100644
index 0000000..80a65bb
Binary files /dev/null and b/macros/detectMinEigenFeatures.bin differ
diff --git a/macros/detectMinEigenFeatures.sci b/macros/detectMinEigenFeatures.sci
new file mode 100644
index 0000000..e6b4485
--- /dev/null
+++ b/macros/detectMinEigenFeatures.sci
@@ -0,0 +1,50 @@
+function [cornerPoints]=detectMinEigenFeatures(image,varargin)
+// This function is used to find corner points in an image using Minimum Eigen Value algorithm.
+//
+// Calling Sequence
+// points = detectMinEigenFeatures(I);
+// points = detectMinEigenFeatures(I, Name, Value, ...);
+//
+// Parameters
+// points: Structure of corner points
+// I: Input image to detectHarrisFeatures()
+// MinQuality: (Optional) Minimum accepted quality of corners (Default- 0.01)
+// FilterSize: (Optional) Dimension of Gaussian Filter (Default: 5)
+// ROI: (Optional) Rectangular region for corner detection
+//
+// Description
+// This function detects corners in an image I. These corner points are used to extract features and hence recognize the contents of an image.
+//
+// Examples
+// I = imread('sample.jpg');
+// points = detectMinEigenFeatures(I);
+//
+// Authors
+// Rohit Suri
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if lhs>1
+ error(msprintf(" Too many output arguments"));
+ elseif rhs>7
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs,2)==0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ imageList=mattolist(image);
+ select rhs-1
+ case 0 then
+ [location metric count]=opencv_detectMinEigenFeaturess(imageList);
+ case 2 then
+ [location metric count]=opencv_detectMinEigenFeatures(imageList,varargin(1),varargin(2));
+ case 4 then
+ [location metric count]=opencv_detectMinEigenFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [location metric count]=opencv_detectMinEigenFeatures(imageList,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ end
+ //disp(count(1,1));
+ cornerPoints=struct('Type','cornerPoints','Location',location,'Metric',metric,'Count',count);
+ //for i=1:count(1,1)
+ // cornerPoints(i)=struct('Type','cornerPoints','Location',location(i,:),'Metric',metric(i,:),'Count',1);
+ //end
+endfunction
diff --git a/macros/detectSURFFeatures.bin b/macros/detectSURFFeatures.bin
new file mode 100644
index 0000000..ebefc15
Binary files /dev/null and b/macros/detectSURFFeatures.bin differ
diff --git a/macros/detectSURFFeatures.sci b/macros/detectSURFFeatures.sci
new file mode 100644
index 0000000..1ee7395
--- /dev/null
+++ b/macros/detectSURFFeatures.sci
@@ -0,0 +1,45 @@
+function [varargout] = detectSURFFeatures(image, varargin)
+// This function is used to detect SURF(Speeded Up Robust Features) Features in a grayscale Image.
+//
+// Calling Sequence
+// result = detectSURFFeatures(Image);
+// result = detectSURFFeatures(Image, Name, Value, ...)
+//
+// Parameters
+// result: SURFPoints struct which contains Location of KeyPoints, Orientation, Metric, SignOfLaplacian, Scale and Count of the features.
+// Image : Input image, specified as a A-by-N 2D grayscale.
+// MetricThreshold : (Optional) With default value equal to 1000, it is to be specified as a scalar. Every interest point detected has a strength associated with it. In case, only the stronget ones are needed, this parameter has to be given a larger value. To get more no of interest points/blobs, it is to be reduced.
+// NumOctaves : (Optional)With default value equal to 3, it is to be specified as a scalar. Larger the number of octaves, larger is the size of blobs detected. This is because higher octave use large sized filters. Value must be an integer scalar in between 1 and 4.
+// NumScaleLevels : (Optional)With default value equal to 4, it is to be specified as a scalar. It denotes the number of scale level for each octave. The Value must be an integer scalar greater than or equal to 3.
+// ROI : (Optional) Region Of Interest. This is taken as a vector [u v width height]. When specified, the function detects the key points within region of area width*height with u and v being the top left corner coordinates.
+// Description
+// This function return the SURF(Speeded Up Robust Features) Interest Points for a 2D Grayscale image. It is scale- and rotation- invariant point detector and descriptor and its application include Camera Calibration, 3D Reconstruction, Object Recognition to name a few.
+//
+// Examples
+// image = imread('sample.jpg');
+// results = detectSURFFeatures(image);
+//
+// Authors
+// Shashank Shekhar
+ image_list = mattolist(image);
+ [ lhs, rhs ] = argn(0)
+ if rhs > 9 then
+ error(msprintf("Too many input arguments"))
+ end
+ if lhs > 1 then
+ error(msprintf("Not enough input arguments"))
+ end
+ select rhs
+ case 1 then
+ [a b c d e f] = ocv_detectSURFFeatures(image_list)
+ case 3 then
+ [a b c d e f] = ocv_detectSURFFeatures(image_list, varargin(1), varargin(2))
+ case 5 then
+ [a b c d e f] = ocv_detectSURFFeatures(image_list, varargin(1), varargin(2), varargin(3), varargin(4))
+ case 7 then
+ [a b c d e f] = ocv_detectSURFFeatures(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6))
+ case 9 then
+ [a b c d e f] = ocv_detectSURFFeatures(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+ end
+ varargout(1) = struct('KeyPoints', a, 'Orientation', b, 'Metric', c ,'SignOfLaplacian', d,'Scale', e, 'Count', f );
+endfunction
\ No newline at end of file
diff --git a/macros/dilate.bin b/macros/dilate.bin
new file mode 100644
index 0000000..a3f0780
Binary files /dev/null and b/macros/dilate.bin differ
diff --git a/macros/dilate.sci b/macros/dilate.sci
new file mode 100644
index 0000000..0c21511
--- /dev/null
+++ b/macros/dilate.sci
@@ -0,0 +1,8 @@
+function [out]=dilate(input_image,actualkernel,anchor_x,anchor_y,iteration)
+ input_image1=mattolist(input_image);
+ a=opencv_dilate(input_image1,actualkernel,anchor_x,anchor_y,iteration);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/displayErrors.bin b/macros/displayErrors.bin
new file mode 100644
index 0000000..944fc58
Binary files /dev/null and b/macros/displayErrors.bin differ
diff --git a/macros/displayErrors.sci b/macros/displayErrors.sci
new file mode 100644
index 0000000..ae16b53
--- /dev/null
+++ b/macros/displayErrors.sci
@@ -0,0 +1,249 @@
+function displayErrors(varargin)
+ [lhs rhs]=argn(0);
+ if rhs<2 then
+ error(msprintf(" Not enough input arguments"))
+ elseif rhs>2 then
+ error(msprintf(" Too many input arguments. Two arguments expected."))
+ end
+ typeOferrors =0;
+ errors = varargin(1);
+ if ~isstruct(errors) then
+ error(msprintf("Invalid Input Argument. A CameraCalibrationError Struct or StereoCalibrationError Struct expected. "))
+ end
+ errorNames = fieldnames(errors);
+ [size1 zz] = size(errorNames);
+
+ if size1 == 2 then
+ typeOferrors = 1;
+ elseif size1 == 5 then
+ typeOferrors = 2;
+ else
+ error(msprintf("Invalid Input Argument. A CameraCalibrationError Struct or StereoCalibrationError Struct expected. "))
+ end
+
+ if typeOferrors == 1 then
+ cameraParam = varargin(2);
+ checkCCE(errors);
+ if ~isstruct(cameraParam) then
+ error(msprintf(" A CameraParameters Struct expected"))
+ end
+ jj = fieldnames(cameraParam)
+ [size3 zz] = size(jj);
+ if size3~=18 then
+ error(msprintf("An CameraParameters struct expected."))
+ end
+ checkCameraParam(cameraParam);
+ focalErr = string(cameraParam.FocalLength) + " +/- ";
+ fE = string(errors.IntrinsicsErrors.FocalLengthError) ;
+ prinErr = string(cameraParam.PrincipalPoint) + " +/- ";
+ pE = string(errors.IntrinsicsErrors.PrincipalPointError);
+ radErr = string(cameraParam.RadialDistortion) + " +/- ";
+ rdE = string(errors.IntrinsicsErrors.RadDistortionError);
+ for i=1:2
+ focalErr(i) = focalErr(i) + fE(i);
+ prinErr(i) = prinErr(i) + pE(i);
+ end
+ [size1 xx] = size(radErr);
+ size1 =size1*xx;
+ for i=1:size1
+ radErr(i) = radErr(i) + rdE(i);
+ end
+
+ rotVecErr = string(cameraParam.RotationVectors) + " +/- ";
+ rvE = string(errors.ExtrinsicsErrors.RotVectorsError);
+ [size21 size22] = size(rotVecErr);
+ printf("%d %d \n", size21,size22);
+ for i=1:size21
+ for j=1:size22
+ rotVecErr(i,j) = rotVecErr(i,j) + rvE(i,j);
+ end
+ end
+
+ tranVecErr = string(cameraParam.TranslationVectors) + " +/- ";
+ tvE = string(errors.ExtrinsicsErrors.TransVectorsError);
+ [size31 size32] = size(tranVecErr);
+ printf("%d %d \n", size31,size32);
+ for i=1:size31
+ for j=1:size32
+ tranVecErr(i,j) = tranVecErr(i,j) + tvE(i,j);
+ end
+ end
+
+
+ printf("\n\t\t\tStandard Errors of Estimated Camera Parameters\n");
+ printf("\t\t\t----------------------------------------------\n\n");
+ printf(" Intrinsics\n");
+ printf(" ----------\n");
+ printf(" Focal length (pixels): [\t");
+ printf("%s\t\t%s\t]\n", focalErr(1), focalErr(2));
+ printf(" Principal point (pixels): [\t");
+ printf("%s\t\t%s\t]\n", prinErr(1), prinErr(2));
+ printf(" Radial distortion: [\t");
+ for i=1:size1
+ printf("%s\t\t", radErr(i));
+ end
+ printf("\t]\n\n");
+ printf(" Extrinsics\n");
+ printf(" ----------\n");
+ printf(" Rotation vectors:\n");
+ for i=1:size21
+ printf(" [\t");
+ for j=1:size22
+ printf("%s\t\t", rotVecErr(i,j));
+ end
+ printf("\t]\n");
+ end
+ if size21*size22==0 then
+ printf("\n");
+ end
+ printf(" Translation vectors (mm):\n");
+ for i=1:size21
+ printf(" [\t");
+ for j=1:size22
+ printf("%s\t\t", tranVecErr(i,j));
+ end
+ printf("\t]\n");
+
+ end
+ printf("\n");
+
+ else
+ stereoParam = varargin(2);
+ checkSCE(errors);
+ if ~isstruct(stereoParam) then
+ error(msprintf(" A Stereo Parameter Struct expected"))
+ end
+ jj = fieldnames(stereoParam)
+ [size4 zz] = size(jj);
+ if size4~=10 then
+ error(msprintf("A Stereo Parameters Struct Expected"))
+ end
+ checkStereoParam(stereoParam);
+ focalErr1 = string(stereoParam.CameraParameters1.FocalLength) + " +/- ";
+ fE1 = string(errors.Camera1IntrinsicsErrors.FocalLengthError) ;
+ prinErr1 = string(stereoParam.CameraParameters1.PrincipalPoint) + " +/- ";
+ pE1 = string(errors.Camera1IntrinsicsErrors.PrincipalPointError);
+ radErr1 = string(stereoParam.CameraParameters1.RadialDistortion) + " +/- ";
+ rdE1 = string(errors.Camera1IntrinsicsErrors.RadDistortionError);
+ for i=1:2
+ focalErr1(i) = focalErr1(i) + fE1(i);
+ prinErr1(i) = prinErr1(i) + pE1(i);
+ end
+ [size11 xx] = size(radErr1);
+ size11 =size11*xx;
+ for i=1:size11
+ radErr1(i) = radErr1(i) + rdE1(i);
+ end
+
+ focalErr2 = string(stereoParam.CameraParameters2.FocalLength) + " +/- ";
+ fE2 = string(errors.Camera2IntrinsicsErrors.FocalLengthError) ;
+ prinErr2 = string(stereoParam.CameraParameters2.PrincipalPoint) + " +/- ";
+ pE2 = string(errors.Camera2IntrinsicsErrors.PrincipalPointError);
+ radErr2 = string(stereoParam.CameraParameters2.RadialDistortion) + " +/- ";
+ rdE2 = string(errors.Camera2IntrinsicsErrors.RadDistortionError);
+ for i=1:2
+ focalErr2(i) = focalErr2(i) + fE2(i);
+ prinErr2(i) = prinErr2(i) + pE2(i);
+ end
+ [size12 xx] = size(radErr2);
+ size12 =size12*xx;
+ for i=1:size12
+ radErr2(i) = radErr2(i) + rdE2(i);
+ end
+
+ rotVecErr = string(stereoParam.CameraParameters1.RotationVectors) + " +/- ";
+ rvE = string(errors.Camera1ExtrinsicsErrors.RotVectorsError);
+ [size21 size22] = size(rotVecErr);
+ printf("%d %d \n", size21,size22);
+ for i=1:size21
+ for j=1:size22
+ rotVecErr(i,j) = rotVecErr(i,j) + rvE(i,j);
+ end
+ end
+
+ tranVecErr = string(stereoParam.CameraParameters1.TranslationVectors) + " +/- ";
+ tvE = string(errors.Camera1ExtrinsicsErrors.TransVectorsError);
+ [size31 size32] = size(tranVecErr);
+ printf("%d %d \n", size31,size32);
+ for i=1:size31
+ for j=1:size32
+ tranVecErr(i,j) = tranVecErr(i,j) + tvE(i,j);
+ end
+ end
+
+ rotOfCam = stereoParam.RotationOfCamera2;
+ rotOfCamErr = string([rotOfCam(1,1) rotOfCam(2,1) rotOfCam(3,1)]) + " +/- ";
+ rotE = string(errors.RotationOfCamera2Error);
+ for i=1:3
+ rotOfCamErr(i) = rotOfCamErr(i) + rotE(i);
+ end
+
+ transOfCamErr = string(stereoParam.TranslationOfCamera2) + " +/- ";
+ toCE = string(errors.TransOfCamera2Error) ;
+ for i=1:3
+ transOfCamErr(i) = transOfCamErr(i) + toCE(i);
+ end
+
+
+
+ printf("\n\t\t\tStandard Errors of Estimated Stereo Camera Parameters\n");
+ printf("\t\t\t-----------------------------------------------------\n\n");
+ printf(" Camera 1 Intrinsics\n");
+ printf(" -------------------\n");
+ printf(" Focal length (pixels): [\t");
+ printf("%s\t\t%s\t]\n", focalErr1(1), focalErr1(2));
+ printf(" Principal point (pixels): [\t");
+ printf("%s\t\t%s\t]\n", prinErr1(1), prinErr1(2));
+ printf(" Radial distortion: [\t");
+ for i=1:size11
+ printf("%s\t\t", radErr1(i));
+ end
+ printf("\t]\n\n");
+ printf(" Camera 1 Extrinsics\n");
+ printf(" -------------------\n");
+ printf(" Rotation vectors:\n");
+ for i=1:size21
+ printf(" [\t");
+ for j=1:size22
+ printf("%s\t\t", rotVecErr(i,j));
+ end
+ printf("\t]\n");
+ end
+ if size21*size22==0 then
+ printf("\t]\n");
+ end
+ printf(" Translation vectors (mm):\n");
+ for i=1:size21
+ printf(" [\t");
+ for j=1:size22
+ printf("%s\t\t", tranVecErr(i,j));
+ end
+ printf("\t]\n");
+ end
+ printf("\n");
+ printf(" Camera 2 Intrinsics\n");
+ printf(" -------------------\n");
+ printf(" Focal length (pixels): [\t");
+ printf("%s\t\t%s\t]\n", focalErr2(1), focalErr2(2));
+ printf(" Principal point (pixels): [\t");
+ printf("%s\t\t%s\t]\n", prinErr2(1), prinErr2(2));
+ printf(" Radial distortion: [\t");
+ for i=1:size12
+ printf("%s\t\t", radErr2(i));
+ end
+ printf("\t]\n\n");
+ printf(" Position And Orientation of Camera 2 Relative to Camera 1\n");
+ printf(" ---------------------------------------------------------\n");
+ printf(" Rotation of camera 2: [\t");
+ for i=1:3
+ printf("%s\t\t", rotOfCamErr(i));
+ end
+ printf("\t]\n");
+ printf(" Translation of camera 2 (mm): [\t");
+ for i=1:3
+ printf("%s\t\t", transOfCamErr(i));
+ end
+ printf("\t]\n");
+ end
+
+endfunction
diff --git a/macros/ellipse.sce b/macros/ellipse.sce
new file mode 100644
index 0000000..f6fc170
--- /dev/null
+++ b/macros/ellipse.sce
@@ -0,0 +1,9 @@
+function [out]=ellipse(input_image , x_coordinate_of_centre , y_coordinate_centre , first_axis, second_axis, angle, startAngle, endAngle, r_value,g_value,b_value,thickness,linetype,shift)
+input_image1=mattolist(input_image);
+ a=opencv_ellipse(input_image1 , x_coordinate_of_centre , y_coordinate_centre , first_axis, second_axis, angle, startAngle, endAngle, r_value,g_value,b_value,thickness,linetype,shift);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/ellipse2poly.bin b/macros/ellipse2poly.bin
new file mode 100644
index 0000000..77e4307
Binary files /dev/null and b/macros/ellipse2poly.bin differ
diff --git a/macros/ellipse2poly.sci b/macros/ellipse2poly.sci
new file mode 100644
index 0000000..da7b157
--- /dev/null
+++ b/macros/ellipse2poly.sci
@@ -0,0 +1,3 @@
+function [out] = ellipse2poly(centre_x,centre_y,width,height,angle,arcstart,arcend,delta)
+ out = opencv_ellipse2poly(centre_x,centre_y,width,height,angle,arcstart,arcend,delta);
+endfunction
diff --git a/macros/erode.bin b/macros/erode.bin
new file mode 100644
index 0000000..d2dd61b
Binary files /dev/null and b/macros/erode.bin differ
diff --git a/macros/erode.sci b/macros/erode.sci
new file mode 100644
index 0000000..336e220
--- /dev/null
+++ b/macros/erode.sci
@@ -0,0 +1,9 @@
+function [out]=erode(input_image ,kernel,actualkernel,anchorX,anchorY)
+input_image1=mattolist(input_image);
+ a=opencv_erode(input_image1 ,kernel,actualkernel,anchorX,anchorY);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/estimateFundamentalMatrix.bin b/macros/estimateFundamentalMatrix.bin
new file mode 100644
index 0000000..6c6b83e
Binary files /dev/null and b/macros/estimateFundamentalMatrix.bin differ
diff --git a/macros/estimateFundamentalMatrix.sci b/macros/estimateFundamentalMatrix.sci
new file mode 100644
index 0000000..433db08
--- /dev/null
+++ b/macros/estimateFundamentalMatrix.sci
@@ -0,0 +1,41 @@
+function [fundamentalMatrix]=estimateFundamentalMatrix(matchedPoints1,matchedPoints2,varargin)
+// It returns the 3-by-3 fundamental matrix corresponding to the input points
+//
+// Calling Sequence
+// fundamentalMat=estimateFundamentalMatrix(matchedPoints1,matchedPoints2);
+// fundamentalMat=estimateFundamentalMatrix(matchedPoints1,matchedPoints2,'method','RANSAC','param1',2,'param2',0.99);
+//
+// Parameters
+// matchedPoints1: M-by-2 array of first image points. These points can be SURFPoints, MSERRegions, cornerPoints.
+// matchedPoints2: M-by-2 array of the second image points of the same size and format as matchedPoints1.
+// method: method for computing fundamental matrix. Possible methods are 7POINT,8POINT,RANSAC,LMEDS and RANSAC is the default one.
+// param1: It indiacates maximum distance from a point to an epipolar line in pixels
+// param2: It specifies a desirable level of confidence
+//
+// Description
+// estimateFundamentalMatrix function calculates a fundamental matrix from the corresponding points in two images.
+//
+// Examples
+// I=imread("lena_left.jpeg");
+// cornerPoints1=detectMinEigenFeatures(I);
+// I2=imread("lena_right.jpeg");
+// cornerPoints2=detectMinEigenFeatures(I2);
+// fundamentalMat=(cornerPoints1.Location,cornerPoints2.Location);
+
+ [lhs rhs]=argn(0);
+ if rhs>10
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs,2)==0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ select rhs
+ case 2 then
+ [fundamentalMatrix]=opencv_estimateFundamentalMatrix(matchedPoints1,matchedPoints2);
+ case 4 then
+ [fundamentalMatrix]=opencv_estimateFundamentalMatrix(matchedPoints1,matchedPoints2,varargin(1),varargin(2));
+ case 6 then
+ [fundamentalMatrix]=opencv_estimateFundametanlMatrix(matchedPoints1,matchedPoints2,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 8 then
+ [fundamentalMatrix]=opencv_estimateFundamentalMatrix(matchedPoints1,matchedPoints2,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ end
+endfunction
diff --git a/macros/estimateGeometricTransform.bin b/macros/estimateGeometricTransform.bin
new file mode 100644
index 0000000..c501a9a
Binary files /dev/null and b/macros/estimateGeometricTransform.bin differ
diff --git a/macros/estimateGeometricTransform.sci b/macros/estimateGeometricTransform.sci
new file mode 100644
index 0000000..f0ef6fa
--- /dev/null
+++ b/macros/estimateGeometricTransform.sci
@@ -0,0 +1,5 @@
+function [output] = estimateGeometricTransform(img1,img2)
+ I1 = mattolist(img1);
+ I2 = mattolist(img2);
+ output = opencv_estimateGeometricTransform(I1,I2)
+endfunction
diff --git a/macros/estimateUncalibratedRectification.bin b/macros/estimateUncalibratedRectification.bin
new file mode 100644
index 0000000..38765cf
Binary files /dev/null and b/macros/estimateUncalibratedRectification.bin differ
diff --git a/macros/estimateUncalibratedRectification.sci b/macros/estimateUncalibratedRectification.sci
new file mode 100644
index 0000000..50867e9
--- /dev/null
+++ b/macros/estimateUncalibratedRectification.sci
@@ -0,0 +1,35 @@
+function [T1,T2]=estimateUncalibratedRectification(fundamentalMatrix,inlierPoints1,inlierPoints2,imageSize)
+// It returns projective transformation for rectifying stereo images
+//
+// Calling Sequence
+// [T1,T2]=estimateUncalibratedRectification((fundamentalMatrix,inlierPoints1,inlierPoints2,imageSize);
+//
+// Parameters
+// fundamentalMatrix: 3-by-3 fundamental matrix.
+// inlierPoints1: M-by-2 matrix
+// inlierPoints2: M-by-2 matrix
+// imageSize: 2 element vector, indicating size of the second image.
+//
+// Description
+// estimateUncalibratedRectification gives transformation of both images as 3-by-3 matrices
+//
+// Examples
+// I=imread("lena_left.jpeg");
+// cornerPoints1=detectMinEigenFeatures(I);
+// I2=imread("lena_right.jpeg");
+// cornerPoints2=detectMinEigenFeatures(I2);
+// fundamentalMat=(cornerPoints1.Location,cornerPoints2.Location);
+// [T1, T2]=estimateUncalibratedRectification(fundamentalMat,cornerPoints1.Location,cornerPoints2.Location,size(I2));
+
+ [lhs rhs]=argn(0);
+ if lhs>2
+ error(msprintf(" Too many output arguments"));
+ elseif rhs<2
+ error(msprintf(" More input arguments required"));
+ elseif rhs>4
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs,2)==0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ [T1 T2]=opencv_estimateUncalibratedRectification(fundamentalMatrix,inlierPoints1,inlierPoints2,imageSize);
+endfunction
diff --git a/macros/evaluate.bin b/macros/evaluate.bin
new file mode 100644
index 0000000..64831d7
Binary files /dev/null and b/macros/evaluate.bin differ
diff --git a/macros/evaluate.sci b/macros/evaluate.sci
new file mode 100644
index 0000000..9ab7d28
--- /dev/null
+++ b/macros/evaluate.sci
@@ -0,0 +1,31 @@
+function confMat = evaluate(classifier, imageSet)
+// This function is used to evaluate an image classifier.
+//
+// Calling Sequence
+// confMat = evaluate(classifier, imgSet)
+//
+// Parameters
+// confMat: Confusion matrix as a result of the evaluation
+// classifier: Image category classifer
+// imgSet: An imageSet struct to be evaluated
+//
+// Description
+// This function evaluates an image category classifier on an input image set.
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// categoryClassifier = trainImageCategoryClassifier(trainingSet, bag);
+// confMatrix = evaluate(categoryClassifer, testSet);
+//
+// Authors
+// Rohit Suri
+// Umang Agrawal
+
+ classifier_list = classifierToList(classifier)
+ imageSet_list = imageSetToList(imageSet)
+
+ confMat = opencv_evaluate(classifier_list, imageSet_list)
+
+endfunction
diff --git a/macros/evaluateImageRetrieval.bin b/macros/evaluateImageRetrieval.bin
new file mode 100644
index 0000000..6931451
Binary files /dev/null and b/macros/evaluateImageRetrieval.bin differ
diff --git a/macros/evaluateImageRetrieval.sci b/macros/evaluateImageRetrieval.sci
new file mode 100644
index 0000000..a8ac99d
--- /dev/null
+++ b/macros/evaluateImageRetrieval.sci
@@ -0,0 +1,104 @@
+function [varargout] = evaluateImageRetrieval(image, IndexImage, ExpectedID, varargin)
+// This function is used to evaluate the Image Search Results
+//
+// Calling Sequence
+// averagePrecision = evaluateImageRetrieval(queryImage, ImageIndex, expectedIDs, Name, Value... );
+// [averagePrecision imageID Scores] = evaluateImageRetrieval(queryImage, ImageIndex, expectedIDs);
+//
+// Parameters
+// queryImage: The query image, for which the similar image has to be found. Can be a grayscale or a RGB image
+// ImageIndex: imageIndex object that contains the data set of all the images to be compared
+// expectedIDs: A row or column vector containing the IDs of expected Similarity
+// NumResults [Optional Input Argument]: Maximum number of results to be returned. Value: any integer (20 default)
+// ROI [Optional Input Argument]: Query Image search region. Format [ x y width height ]. Default: [1 1 size(Image,2) size(Image,1)]
+// averagePrecision: Average Precision Metric. Value in the range [0 1]
+// imageID: M-by-1 vector consisting of Ranked Index of retrieved Images
+// Scores: M-by-1 vector containing the similarity metric in the range 0 to 1
+//
+// Description
+// It returns the average precision metric for measuring the accuracy of image search results for the queryImage.
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// imageindex = indexImages(trainingSet, bag);
+// queryImage = imread('sample.jpg');
+// imageIDs = retrieveImages(queryImage, imageindex);
+// exp_id = [3 4 1 2]; /*For a 4 element image set*/
+// precision = evaluateImageRetreival(queryImage, imageindex, exp_id);
+//
+// Authors
+// Umang Agrawal
+// Rohit Suri
+
+ /// varargout(1) = average_precision
+ /// varargout(2) = index
+ /// varargout(3) = score
+ [ lhs rhs ] = argn(0)
+ if rhs > 7 then
+ error(msprintf("Too many input arguments"))
+ end
+
+ if lhs > 3 then
+ error(msprintf("Too many output arguments"))
+ end
+ image_list = mattolist(image)
+
+ if lhs == 1 then
+ select rhs
+ case 3 then
+
+ average_precision= opencv_evalutateImageRetrieval(image_list, IndexImage, ExpectedID)
+
+ case 5 then
+
+ average_precision = opencv_evaluateImageRetrieval(image_list, IndexImage, ExpectedID, varargin(1), varargin(2))
+
+ case 7 then
+
+ average_precision = opencv_evaluateImageRetrieval(image_list, IndexImage, ExpectedID, varargin(1), varargin(2), varargin(3), varargin(4))
+ end
+
+ varargout(1) = average_precision
+
+ elseif lhs == 2 then
+ select rhs
+ case 3 then
+
+ [average_precision, index] = opencv_evalutateImageRetrieval(image_list, IndexImage, ExpectedID)
+
+ case 5 then
+
+ [average_precision, index] = opencv_evaluateImageRetrieval(image_list, IndexImage, ExpectedID, varargin(1), varargin(2))
+
+ case 7 then
+
+ [average_precision, index] = opencv_evaluateImageRetrieval(image_list, IndexImage, ExpectedID, varargin(1), varargin(2), varargin(3), varargin(4))
+ end
+
+ varargout(1) = average_precision
+ varargout(2) = index
+
+ elseif lhs == 3 then
+ select rhs
+ case 3 then
+
+ [average_precision, index, score] = opencv_evalutateImageRetrieval(image_list, IndexImage, ExpectedID)
+
+ case 5 then
+
+ [average_precision, index, score] = opencv_evaluateImageRetrieval(image_list, IndexImage, ExpectedID, varargin(1), varargin(2))
+
+ case 7 then
+
+ [average_precision, index, score] = opencv_evaluateImageRetrieval(image_list, IndexImage, ExpectedID, varargin(1), varargin(2), varargin(3), varargin(4))
+ end
+
+ varargout(1) = average_precision
+ varargout(2) = index
+ varargout(3) = score
+
+ end
+
+endfunction
diff --git a/macros/extractFeatures.bin b/macros/extractFeatures.bin
new file mode 100644
index 0000000..efd8414
Binary files /dev/null and b/macros/extractFeatures.bin differ
diff --git a/macros/extractFeatures.sci b/macros/extractFeatures.sci
new file mode 100644
index 0000000..8147891
--- /dev/null
+++ b/macros/extractFeatures.sci
@@ -0,0 +1,168 @@
+function [featureVector, ValidPoints]=extractFeatures(image,points,class,varargin)
+// This function is used to extract interest point descriptors
+//
+// Calling Sequence
+// [features, validPoints] = extractFeatures(Image, points, Class, Name, Value... )
+//
+// Parameters
+// Image: Input Image, should be a 2-D grayscale. The Input Image should be real
+// points: M-by-2 vector containing the list of Interest Points
+// Class: The Name of the feature detecting algorithm used for interest point detection
+// Method: The desired algorithm to be used for feature vector calculation
+// Metric: M-by-1 vector containing the strength of eack interest Point
+// BlockSize: An odd integer scalar for defining a square neighbourhood centered at each interest point for Block Detection Method
+// Upright: Rotation Invariance Flag specified as a boolean 'True' or 'False'. Default Value: False(0)
+// SURFSize: Length of SURF Feature Vector. Values: [64(default)|128]
+// Orientation: M-by-1 vector containing the orientation of the detected feature in radians
+// Axes: M-by-2 vector containing the axes length values detected for MSER Object
+// Scale: M-by-1 vector containing the scale of detection of each Interest Point
+// SignOfLaplacian: M-by-1 vector containing the values of Sign of Laplacian of a SURF Object
+// features: M-by-N Feature Matrix containing M feature vectors each of length N
+// validPoints: M-by-2 Matrix containing the set of valid points whose features have been extracted
+//
+// Description
+// The function derives the descriptors from pixels surrounding an interest point, where each interest point specifies the location of the detected region center.
+//
+// Examples
+// image = imread('sample.jpg');
+// [corners count metric] = detectHarrisFeatures(image);
+// [features, valid_corners] = extractFeatures(image, corners, "Class", "cornerPoints", "Metric", metric);
+//
+// Authors
+// Umang Agrawal
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if lhs>2
+ error(msprintf(" Too many output arguments"));
+ elseif rhs>13
+ error(msprintf(" Too many input arguments"));
+ end
+ imageList=mattolist(image);
+
+ //default values
+ blockSize=0;
+ upright=1;
+ surfSize=64;
+ if (class=="cornerPoints" | class=="BRISKPoints")
+ method="FREAK";
+ elseif (class=="MSERRegions" | class=="SURFPoints")
+ method="SURF";
+ elseif (class=="Matrix")
+ method="Block";
+ else
+ error(msprintf(" Invalid class type, check documentation for the list of valid types"));
+ end
+
+ //Count to ensure argument called only once
+ count_metric=0,count_orientation,count_scale,count_axes,count_signOfLaplacian;
+ count_method=0, count_block=0, count_surf=0, count_upright=0;
+
+ //Parsing input arguments
+ for i=1:rhs-3
+ if (varargin(i)=="Metric")
+ if(count_metric==0)
+ i=i+1;
+ metric=varargin(i);
+ else
+ error(msprintf(" Metric argument has been called twice"));
+ end
+ elseif (varargin(i)=="Orientation")
+ if(count_orientation==0)
+ i=i+1;
+ orientation=varargin(i);
+ else
+ error(msprintf(" Orientation argument has been called twice"));
+ end
+ elseif (varargin(i)=="Scale")
+ if(count_scale==0)
+ i=i+1;
+ scale=varargin(i);
+ else
+ error(msprintf(" Scale argument has been called twice"));
+ end
+ elseif (varargin(i)=="Axes")
+ if(count_axes==0)
+ i=i+1;
+ axes=varargin(i);
+ else
+ error(msprintf(" Axes argument has been called twice"));
+ end
+ elseif (varargin(i)=="SignOfLaplacian")
+ if(count_signOfLaplacian==0)
+ i=i+1;
+ signOfLaplacian=varargin(i);
+ else
+ error(msprintf("SignOfLaplacian argument has been called twice"));
+ end
+ elseif (varargin(i)=="Method")
+ if(count_method==0)
+ i=i+1;
+ method=varargin(i);
+ else
+ error(msprintf("Method argument has been called twice"));
+ end
+ elseif (varargin(i)=="BlockSize")
+ if(count_block==0)
+ i=i+1;
+ blockSize=varargin(i);
+ else
+ error(msprintf("BlockSize argument has been called twice"));
+ end
+ elseif (varargin(i)=="SurfSize")
+ if(count_surf==0)
+ i=i+1;
+ surfSize=varargin(i);
+ else
+ error(msprintf("SurfSize argument has been called twice"));
+ end
+ elseif (varargin(i)=="Upright")
+ if(count_upright==0)
+ i=i+1;
+ upright=varargin(i);
+ else
+ error(msprintf("Upright argument has been called twice"));
+ end
+ else
+ error(msprintf("Wrong argument, check documentation for the list of valid arguments"));
+ end
+ end
+
+
+ select class
+ case "cornerPoints" then
+ if(count_metric==0)
+ error(msprintf("For cornerPoints Class Metric argument is necessary"));
+ end
+ [featureVectors ValidPoints numBits numFeatures count metric]=extractFeatures(imageList, points, "Class", class, "Method", method, "surfSize", surfSize, "blockSize", blockSize, "upright", upright, "Metric",metric);
+
+ case "BRISKPoints" then
+ if(count_metric==0 | count_scale==0 | count_orientation==0)
+ error(msprintf("For BRISKPoints Class Metric, Orientation and Scale arguments are necessary"));
+ end
+ [featureVectors ValidPoints numBits numFeatures scale metrix orientation count]=extractFeatures(imageList, points, "Class", class, "Method", method, "surfSize", surfSize, "blockSize", blockSize, "upright", upright, "Metric",metric,"Orientation",orientation,"Scale",scale);
+
+ case "MSERRegions" then
+ if( count_orientation==0 | count_axes==0)
+ error(msprintf("For MSERRegions Class Orientation Matrix and Axes Matrix arguments are necessary."));
+ end
+ [featureVectors ValidPoints numBits numFeatures count axes orientation]=extractFeatures(imageList, points, "Class", class, "Method", method, "surfSize", surfSize, "blockSize", blockSize, "upright", upright, "Metric",metric,"Orientation",orientation,"Axes",axes);
+
+ case "SURFPoints" then
+ if(count_scale==0 | count_metric==0 | count_signOfLaplacian==0 | count_orientation==0)
+ error(msprintf("For SURFPoints Class Metric, Orientation, Scale and SignOfLaplacian arguments are necessary"));
+ end
+ [featureVectors ValidPoints numBits numFeatures count scale metrix signOfLaplacian orientation]=extractFeatures(imageList, points, "Class", class, "Method", method, "surfSize", surfSize, "blockSize", blockSize, "upright", upright, "Metric",metric,"Orientation",orientation,"Scale",scale,"SignOfLaplacian",signOfLaplacian);
+
+ case "Matrix" then
+ if(count_block==0)
+ error(msprintf("For Matrix Class BlockSize argument is necessary"));
+ end
+ [featureVectors ValidPoints numBits numFeatures]=extractFeatures(imageList, points, "Class", class, "Method", method, "surfSize", surfSize, "blockSize", blockSize, "upright", upright,"BlockSize",blockSize);
+ end
+
+
+
+ featureVector=struct("Type","binaryFeatures",'Features',featureVectors,'NumBits',numBits,'NumFeatures',numFeatures);
+
+endfunction
diff --git a/macros/extractHOGFeatures.bin b/macros/extractHOGFeatures.bin
new file mode 100644
index 0000000..df60285
Binary files /dev/null and b/macros/extractHOGFeatures.bin differ
diff --git a/macros/extractHOGFeatures.sci b/macros/extractHOGFeatures.sci
new file mode 100644
index 0000000..cf7aca6
--- /dev/null
+++ b/macros/extractHOGFeatures.sci
@@ -0,0 +1,24 @@
+function [featureVector] = extractHOGFeatuers(I, varargin)
+ img = mattolist(I);
+ [lhs rhs] = argn(0);
+ if rhs<1 then
+ error(msprintf("Not enough input arguments"));
+ end
+ if rhs>9 then
+ error(msprintf("Too many input arguments"));
+ end
+ l = rhs-1;
+ if(l==0) then
+ featureVector = opencv_extractHOGFeatures(img);
+ elseif (l==2) then
+ featureVector = opencv_extractHOGFeatures(img,varargin(0),varargin(1));
+ elseif (l==4) then
+ featureVector = opencv_extractHOGFeatures(img,varargin(0),varargin(1),varargin(2),varargin(3));
+ elseif (l==6) then
+ featureVector = opencv_extractHOGFeatures(img,varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5));
+ else
+ featureVector = opencv_extractHOGFeatures(img,varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7));
+ end
+
+endfunction
+
diff --git a/macros/extractLBPFeatures.bin b/macros/extractLBPFeatures.bin
new file mode 100644
index 0000000..d057c9b
Binary files /dev/null and b/macros/extractLBPFeatures.bin differ
diff --git a/macros/extractLBPFeatures.sci b/macros/extractLBPFeatures.sci
new file mode 100644
index 0000000..177e660
--- /dev/null
+++ b/macros/extractLBPFeatures.sci
@@ -0,0 +1,46 @@
+function [out]=extractLBPFeatures(input1,varargin)
+ [lhs rhs] = argn(0)
+ if rhs>13 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs==13 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9),varargin(10),varargin(11),varargin(12))
+ out(:,:,1)=a(1)
+ elseif rhs==12 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9),varargin(10),varargin(11))
+ out(:,:,1)=a(1)
+ elseif rhs==11 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9),varargin(10))
+ out(:,:,1)=a(1)
+ elseif rhs==10 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9))
+ out(:,:,1)=a(1)
+ elseif rhs==9 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8))
+ out(:,:,1)=a(1)
+ elseif rhs==8 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7))
+ out(:,:,1)=a(1)
+ elseif rhs==7 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6))
+ out(:,:,1)=a(1)
+ elseif rhs==6 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5))
+ out(:,:,1)=a(1)
+ elseif rhs==5 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3),varargin(4))
+ out(:,:,1)=a(1)
+ elseif rhs==4 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2),varargin(3))
+ out(:,:,1)=a(1)
+ elseif rhs==3 then
+ a=opencv_extractLBPFeatures(input1,varargin(1),varargin(2))
+ out(:,:,1)=a(1)
+ elseif rhs==2 then
+ a=opencv_extractLBPFeatures(input1,varargin(1))
+ out(:,:,1)=a(1)
+ elseif rhs==1 then
+ a=opencv_extractLBPFeatures(input1)
+ out(:,:,1)=a(1)
+ end,
+
+endfunction;
diff --git a/macros/fftshift.bin b/macros/fftshift.bin
new file mode 100644
index 0000000..d9858da
Binary files /dev/null and b/macros/fftshift.bin differ
diff --git a/macros/fftshift.sci b/macros/fftshift.sci
new file mode 100644
index 0000000..48b242a
--- /dev/null
+++ b/macros/fftshift.sci
@@ -0,0 +1,9 @@
+function [out]=fftshift(image)
+ image1=mattolist(image);
+ a=opencv_fftshift(image1);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/fillconvexpoly.bin b/macros/fillconvexpoly.bin
new file mode 100644
index 0000000..c8ddae8
Binary files /dev/null and b/macros/fillconvexpoly.bin differ
diff --git a/macros/fillconvexpoly.sci b/macros/fillconvexpoly.sci
new file mode 100644
index 0000000..ac40c8c
--- /dev/null
+++ b/macros/fillconvexpoly.sci
@@ -0,0 +1,8 @@
+function [out] = fillconvexpoly(img,pstData,npts,r_value,g_value,b_value,linetype,shift)
+ image = mattolist(img);
+ a = opencv_fillconvexpoly(image,pstData,npts,r_value,g_value,b_value,linetype,shift)
+ d = size(a);
+ for i=1:d
+ out(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/filter.bin b/macros/filter.bin
new file mode 100644
index 0000000..7c420be
Binary files /dev/null and b/macros/filter.bin differ
diff --git a/macros/filter.sci b/macros/filter.sci
new file mode 100644
index 0000000..e628942
--- /dev/null
+++ b/macros/filter.sci
@@ -0,0 +1,8 @@
+function [out]=filter(input_image,depth,kernel_matrix,anchor_x,anchor_y,delta)
+ input_image1=mattolist(input_image);
+ a=opencv_filter(input_image1,depth,kernel_matrix,anchor_x,anchor_y,delta);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/findcontours.bin b/macros/findcontours.bin
new file mode 100644
index 0000000..d331762
Binary files /dev/null and b/macros/findcontours.bin differ
diff --git a/macros/findcontours.sci b/macros/findcontours.sci
new file mode 100644
index 0000000..382aa88
--- /dev/null
+++ b/macros/findcontours.sci
@@ -0,0 +1,7 @@
+function [outputMat]= findcontours(inputImage, Mode, method, point_x, point_y)
+ inputList=mattolist(inputImage);
+ outputList=opencv_findcontours(inputList,Mode, method, point_x, point_y)
+ for i=1:size(outputList)
+ outputMat(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/fitellipse.bin b/macros/fitellipse.bin
new file mode 100644
index 0000000..7a3510b
Binary files /dev/null and b/macros/fitellipse.bin differ
diff --git a/macros/fitellipse.sci b/macros/fitellipse.sci
new file mode 100644
index 0000000..cb0331f
--- /dev/null
+++ b/macros/fitellipse.sci
@@ -0,0 +1,4 @@
+function [out]=fitellipse(InputArraypoints)
+ [t1 t2 t3 t4 t5]= opencv_fitellipse(InputArraypoints);
+ out=struct("size1",t1,"size2",t2,"center1",t3,"center2",t4,"angle",t3);
+endfunction;
diff --git a/macros/fsamp2.bin b/macros/fsamp2.bin
new file mode 100644
index 0000000..c1a77e7
Binary files /dev/null and b/macros/fsamp2.bin differ
diff --git a/macros/fsamp2.sci b/macros/fsamp2.sci
new file mode 100644
index 0000000..4c3b97a
--- /dev/null
+++ b/macros/fsamp2.sci
@@ -0,0 +1,31 @@
+// Function Name = Frequency sampling
+
+// Inputs = Frequency response Hd; frequency vectors f1, f2; dimension [m n]
+
+// Output = matrix h of dimension m x n, stores the filter coeff
+
+function[h] = fsamp2(Hd, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ select rhs
+ case 1 then
+ out = opencv_fsamp2(Hd)
+
+ case 2 then
+ out = opencv_fsamp2(Hd, varargin(1))
+
+ case 3 then
+ out = opencv_fsamp2(Hd, varargin(1), varargin(2))
+
+ case 4 then
+ out = opencv_fsamp2(Hd, varargin(1), varargin(2), varargin(3))
+ end
+
+ channel = size(out)
+
+ for i = 1: channel
+ h(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/ftrans2.bin b/macros/ftrans2.bin
new file mode 100644
index 0000000..1fdf531
Binary files /dev/null and b/macros/ftrans2.bin differ
diff --git a/macros/ftrans2.sci b/macros/ftrans2.sci
new file mode 100644
index 0000000..233e9cc
--- /dev/null
+++ b/macros/ftrans2.sci
@@ -0,0 +1,25 @@
+// Function Name = Frequency Transformation
+
+// Inputs = 1-D FIR filter b; Transform t(varargin(1))
+
+// Output = 2-D FIR filter h
+
+function[h] = ftrans2(b, t)
+
+ [lhs, rhs] = argn(0)
+
+ select rhs
+ case 1 then
+ out = opencv_ftrans2(b)
+
+ case 2 then
+ out = opencv_ftrans2(b, varargin(1))
+ end
+
+ channel = size(out)
+
+ for i = 1: channel
+ h(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/gabor.bin b/macros/gabor.bin
new file mode 100644
index 0000000..68a9800
Binary files /dev/null and b/macros/gabor.bin differ
diff --git a/macros/gabor.sci b/macros/gabor.sci
new file mode 100644
index 0000000..02e6ea9
--- /dev/null
+++ b/macros/gabor.sci
@@ -0,0 +1,6 @@
+function [outputImg]=gabor(wavelength,orientation)
+ outputList=opencv_gabor(wavelength,orientation);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/gaussianblur.bin b/macros/gaussianblur.bin
new file mode 100644
index 0000000..50872a6
Binary files /dev/null and b/macros/gaussianblur.bin differ
diff --git a/macros/gaussianblur.sci b/macros/gaussianblur.sci
new file mode 100644
index 0000000..8b6b0c1
--- /dev/null
+++ b/macros/gaussianblur.sci
@@ -0,0 +1,7 @@
+function [outputImg]= gaussianblur(inputImage,ksize_height,ksize_width,sigmaX,sigmaY)
+ inputList=mattolist(inputImage);
+ outputList=opencv_gaussianblur(inputList,ksize_height,ksize_width,sigmaX,sigmaY);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/genCheckerboardPoints.bin b/macros/genCheckerboardPoints.bin
new file mode 100644
index 0000000..e7a42a8
Binary files /dev/null and b/macros/genCheckerboardPoints.bin differ
diff --git a/macros/genCheckerboardPoints.sci b/macros/genCheckerboardPoints.sci
new file mode 100644
index 0000000..53528bc
--- /dev/null
+++ b/macros/genCheckerboardPoints.sci
@@ -0,0 +1,26 @@
+function [ worldPoints ] = genCheckerboardPoints(boardSize, squareSize)
+// This function returns list of checkerboard corner points.
+//
+// Calling Sequence
+// worldPoints = genCheckerboardPoints(boardSize, squareSize);
+//
+// Parameters
+// worldPoints: A list of size N-by-2 matrix containing x and y co-ordinates of the checkerboard corner points. The origin is set to lower-right corner of the top-left square.
+// boardSize: Size of the checkerboard.
+// squareSize: Size of each of square in the checkerboard.
+//
+// Description
+// Return a list of size N-by-2, which contains the corner points of all squares of a checkerboard.
+//
+// Examples
+// boardSize = [10 10];
+// squareSize = 8;
+// worldPoints = genCheckerboardPoints(boardSize, squareSize);
+//
+// Authors
+// Tanmay Chaudhari
+
+ a=opencv_genCheckerboardPoints(boardSize, squareSize);
+ worldPoints(:,:,1)=a(1);
+
+endfunction
diff --git a/macros/geometricshearer.bin b/macros/geometricshearer.bin
new file mode 100644
index 0000000..2da1efb
Binary files /dev/null and b/macros/geometricshearer.bin differ
diff --git a/macros/geometricshearer.sci b/macros/geometricshearer.sci
new file mode 100644
index 0000000..8d8e72a
--- /dev/null
+++ b/macros/geometricshearer.sci
@@ -0,0 +1,33 @@
+function [out] = GeometricShearer(inputimage,direction,value)
+// Shear the image
+//
+// Calling Sequence
+// output_image = GeometricShearer(inputimage,direction,value);
+//
+// Parameters
+//
+// inputimage : image matrix on which geometric shear has to be applied
+// direction : An input string that like. 'Horizontal' to shear the image in horizontal direction or 'Vertical' to shear the image in vertical direction
+// value : A scalar value i.e amount to want shift the pixel of image
+// output_image : sheared image
+//
+// Description
+// This function returns the sheared image.It shears the image by shifting the rows or columns of image.
+//
+// Examples
+// a = imread('lena.jpeg');
+// b = GeometricShearer(a,'Horzontal',5);
+// imshow(b);
+//
+// Authors:
+//
+//Diwakar Bhardwaj
+
+ inputimage1=mattolist(inputimage);
+ a = opencv_GeometricShearer(inputimage1,direction,value);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/getStructuringElement.bin b/macros/getStructuringElement.bin
new file mode 100644
index 0000000..e579a01
Binary files /dev/null and b/macros/getStructuringElement.bin differ
diff --git a/macros/getStructuringElement.sci b/macros/getStructuringElement.sci
new file mode 100644
index 0000000..23b384c
--- /dev/null
+++ b/macros/getStructuringElement.sci
@@ -0,0 +1,5 @@
+function structuring_element = getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+
+ structuring_element = opencv_getStructuringElement(gettype, cols, rows, anchorX, anchorY)
+
+endfunction
diff --git a/macros/getTextSize.bin b/macros/getTextSize.bin
new file mode 100644
index 0000000..89bb3f6
Binary files /dev/null and b/macros/getTextSize.bin differ
diff --git a/macros/getTextSize.sci b/macros/getTextSize.sci
new file mode 100644
index 0000000..a8c911a
--- /dev/null
+++ b/macros/getTextSize.sci
@@ -0,0 +1,3 @@
+function [textSize,baseLine]= getTextSize(inputtext,fontface,fontscale,thickness)
+ [textSize,baseLine]=opencv_getTextSize(inputtext,fontface,fontscale,thickness)
+endfunction
diff --git a/macros/getgaussiankernel.bin b/macros/getgaussiankernel.bin
new file mode 100644
index 0000000..1845109
Binary files /dev/null and b/macros/getgaussiankernel.bin differ
diff --git a/macros/getgaussiankernel.sci b/macros/getgaussiankernel.sci
new file mode 100644
index 0000000..4fcf144
--- /dev/null
+++ b/macros/getgaussiankernel.sci
@@ -0,0 +1,5 @@
+function output = getGaussianKernel(ksize, sigma, ktype)
+
+ output = opencv_getGaussianKernel(ksize, sigma, ktype)
+
+endfunction
diff --git a/macros/getkerneltype.bin b/macros/getkerneltype.bin
new file mode 100644
index 0000000..c87cddf
Binary files /dev/null and b/macros/getkerneltype.bin differ
diff --git a/macros/getkerneltype.sci b/macros/getkerneltype.sci
new file mode 100644
index 0000000..fafe18d
--- /dev/null
+++ b/macros/getkerneltype.sci
@@ -0,0 +1,4 @@
+function [out]=getkerneltype(InputArray,pointpx,pointpy)
+ out=opencv_getkerneltype(InputArray,pointpx,pointpy);
+
+endfunction;
diff --git a/macros/getrectsubpix.bin b/macros/getrectsubpix.bin
new file mode 100644
index 0000000..9f533ec
Binary files /dev/null and b/macros/getrectsubpix.bin differ
diff --git a/macros/getrectsubpix.sci b/macros/getrectsubpix.sci
new file mode 100644
index 0000000..792be36
--- /dev/null
+++ b/macros/getrectsubpix.sci
@@ -0,0 +1,13 @@
+function new_image = getrectsubpix(image, alpha, beta, centerX, centerY, patchType)
+
+ image_list = mattolist(image)
+
+ out = opencv_getrectsubpix(image_list, alpha, beta, centerX, centerY, patchType)
+
+ sz = size(out)
+
+ for i = 1 : sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/getrotationmatrix2d.bin b/macros/getrotationmatrix2d.bin
new file mode 100644
index 0000000..fe238e3
Binary files /dev/null and b/macros/getrotationmatrix2d.bin differ
diff --git a/macros/getrotationmatrix2d.sci b/macros/getrotationmatrix2d.sci
new file mode 100644
index 0000000..f1cc44f
--- /dev/null
+++ b/macros/getrotationmatrix2d.sci
@@ -0,0 +1,3 @@
+function [out]=getrotationmatrix2d(Point2fcenter, doubleangle, doublescale)
+ out=opencv_getrotationmatrix2d(Point2fcenter, doubleangle, doublescale);
+endfunction;
diff --git a/macros/goodfeaturestotrack.bin b/macros/goodfeaturestotrack.bin
new file mode 100644
index 0000000..0b21763
Binary files /dev/null and b/macros/goodfeaturestotrack.bin differ
diff --git a/macros/goodfeaturestotrack.sci b/macros/goodfeaturestotrack.sci
new file mode 100644
index 0000000..d8bb5bc
--- /dev/null
+++ b/macros/goodfeaturestotrack.sci
@@ -0,0 +1,7 @@
+function corner_points = goodfeaturestotrack(image, maxcorners, qualityLevel, minDistance, blocksize, usedetector, k)
+
+ image_list = mattolist(image)
+
+ corner_points = opencv_goodfeaturestotrack(image_list, maxcorners, qualityLevel, minDistance, blocksize, usedetector, k)
+
+endfunction
diff --git a/macros/grayconnected.bin b/macros/grayconnected.bin
new file mode 100644
index 0000000..839bdbd
Binary files /dev/null and b/macros/grayconnected.bin differ
diff --git a/macros/grayconnected.sci b/macros/grayconnected.sci
new file mode 100644
index 0000000..09a7289
--- /dev/null
+++ b/macros/grayconnected.sci
@@ -0,0 +1,21 @@
+function [out]=grayconnected(input1,input2,input3,varargin)
+ inputn=mattolist(input1);
+ [lhs rhs] = argn(0)
+ if rhs>4 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs==4 then
+ a=opencv_grayconnected(inputn,input2,input3,varargin(1));
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+ else
+ a=opencv_grayconnected(inputn,input2,input3);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+ end,
+
+endfunction;
+
diff --git a/macros/graycoprops.bin b/macros/graycoprops.bin
new file mode 100644
index 0000000..694912a
Binary files /dev/null and b/macros/graycoprops.bin differ
diff --git a/macros/graycoprops.sci b/macros/graycoprops.sci
new file mode 100644
index 0000000..d33c2a0
--- /dev/null
+++ b/macros/graycoprops.sci
@@ -0,0 +1,19 @@
+function[stats] = graycoprops(srcImg, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 1 then
+ out = graycoprops(srcMat)
+ case 2 then
+ out = graycoprops(srcMat, varargin(1))
+ end
+
+ channels = size(out)
+
+ for i = 1:channels
+ stats(:,:,1) = out(1)
+ end
+endfunction
diff --git a/macros/graydiffweight.bin b/macros/graydiffweight.bin
new file mode 100644
index 0000000..d809d37
Binary files /dev/null and b/macros/graydiffweight.bin differ
diff --git a/macros/graydiffweight.sci b/macros/graydiffweight.sci
new file mode 100644
index 0000000..443a79f
--- /dev/null
+++ b/macros/graydiffweight.sci
@@ -0,0 +1,9 @@
+function [out]=graydiffweight(image,refgrayval)
+ image1=mattolist(image);
+ a=opencv_graydiffweight(image1,refgrayval);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/graydist.bin b/macros/graydist.bin
new file mode 100644
index 0000000..bb5187d
Binary files /dev/null and b/macros/graydist.bin differ
diff --git a/macros/graydist.sci b/macros/graydist.sci
new file mode 100644
index 0000000..fc3c081
--- /dev/null
+++ b/macros/graydist.sci
@@ -0,0 +1,13 @@
+function[dstImg] = graydist(srcImg, mask)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_graydist(srcMat, mask)
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/has_frame.bin b/macros/has_frame.bin
new file mode 100644
index 0000000..92ca7ca
Binary files /dev/null and b/macros/has_frame.bin differ
diff --git a/macros/has_frame.sci b/macros/has_frame.sci
new file mode 100644
index 0000000..158fb73
--- /dev/null
+++ b/macros/has_frame.sci
@@ -0,0 +1,22 @@
+function [out]=hasFrame()
+// This function is used to check whether there is a frame to read in the current video, read through VideoReader.
+//
+// Calling Sequence
+// results = hasFrame();
+//
+// Parameters
+// results: A boolean. True if there is a frame to read and false if not.
+//
+// Description
+// This is a helper function for VideoReader and readFrame() function. It returns true if the video has a
+// frame to read, else it returns false.
+//
+// Examples
+// videoStr = VideoReader('sample.mp4');
+// hasFrame();
+//
+// Authors
+// Shashank Shekhar
+// Tanmay Chaudhari
+ out=ocv_hasFrame();
+endfunction;
diff --git a/macros/histeq.bin b/macros/histeq.bin
new file mode 100644
index 0000000..8b6c28b
Binary files /dev/null and b/macros/histeq.bin differ
diff --git a/macros/histeq.sci b/macros/histeq.sci
new file mode 100644
index 0000000..398facf
--- /dev/null
+++ b/macros/histeq.sci
@@ -0,0 +1,9 @@
+function [out]=histeq(image)
+ image1=mattolist(image);
+ a=opencv_histeq(image1);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/houghcircles.bin b/macros/houghcircles.bin
new file mode 100644
index 0000000..85a767c
Binary files /dev/null and b/macros/houghcircles.bin differ
diff --git a/macros/houghcircles.sci b/macros/houghcircles.sci
new file mode 100644
index 0000000..b5ada30
--- /dev/null
+++ b/macros/houghcircles.sci
@@ -0,0 +1,7 @@
+function outputImg= houghcircles(inputImage , dp , mindist , param1, param2 ,minradius, maxradius)
+ inputList=mattolist(inputImage)
+ outputList=opencv_houghcircles(inputList , dp , mindist , param1, param2 ,minradius, maxradius)
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/houghlines.bin b/macros/houghlines.bin
new file mode 100644
index 0000000..c74e2b8
Binary files /dev/null and b/macros/houghlines.bin differ
diff --git a/macros/houghlines.sci b/macros/houghlines.sci
new file mode 100644
index 0000000..ae9bc1c
--- /dev/null
+++ b/macros/houghlines.sci
@@ -0,0 +1,4 @@
+function [out]=houghlines(image,rho, theta, threshold, srn, stn)
+ image1=mattolist(image);
+ out=opencv_houghlines(image1,rho, theta, threshold, srn, stn);
+endfunction;
diff --git a/macros/houghlinesp.bin b/macros/houghlinesp.bin
new file mode 100644
index 0000000..5656868
Binary files /dev/null and b/macros/houghlinesp.bin differ
diff --git a/macros/houghlinesp.sci b/macros/houghlinesp.sci
new file mode 100644
index 0000000..81007aa
--- /dev/null
+++ b/macros/houghlinesp.sci
@@ -0,0 +1,7 @@
+function output = houghlinesp(image, rho, theta, threshold, minLineLength, maxLineGap)
+
+ image_list = mattolist(image)
+
+ output = opencv_houghlinesp(image_list, rho, theta, threshold, minLineLength, maxLineGap)
+
+endfunction
diff --git a/macros/ifftshift.bin b/macros/ifftshift.bin
new file mode 100644
index 0000000..db03f31
Binary files /dev/null and b/macros/ifftshift.bin differ
diff --git a/macros/ifftshift.sci b/macros/ifftshift.sci
new file mode 100644
index 0000000..0d79a51
--- /dev/null
+++ b/macros/ifftshift.sci
@@ -0,0 +1,12 @@
+function new_image = ifftshift(image)
+
+ image_list = mattolist(image)
+
+ out = opencv_ifftshift(image_list)
+
+ sz = size(out)
+ for i = 1 : sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/im2double.bin b/macros/im2double.bin
new file mode 100644
index 0000000..79ad7f0
Binary files /dev/null and b/macros/im2double.bin differ
diff --git a/macros/im2double.sci b/macros/im2double.sci
new file mode 100644
index 0000000..7f8e585
--- /dev/null
+++ b/macros/im2double.sci
@@ -0,0 +1,13 @@
+function[doubleMat] = im2double(matA)
+
+ srcMat = mattolist(matA)
+
+ out = opencv_im2double(srcMat)
+
+ ch = size(out)
+
+ for i = 1:ch
+ doubleMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imadd.bin b/macros/imadd.bin
new file mode 100644
index 0000000..8c14b1a
Binary files /dev/null and b/macros/imadd.bin differ
diff --git a/macros/imadd.sci b/macros/imadd.sci
new file mode 100644
index 0000000..93e1273
--- /dev/null
+++ b/macros/imadd.sci
@@ -0,0 +1,7 @@
+function[sum] = imadd(matA, matB)
+
+ [lhs, rhs] = argn(0)
+
+ sum = opencv_imadd(matA, matB)
+
+endfunction
diff --git a/macros/imageSet.bin b/macros/imageSet.bin
new file mode 100644
index 0000000..aa7de86
Binary files /dev/null and b/macros/imageSet.bin differ
diff --git a/macros/imageSet.sci b/macros/imageSet.sci
new file mode 100644
index 0000000..55a4e03
--- /dev/null
+++ b/macros/imageSet.sci
@@ -0,0 +1,47 @@
+function [imgSet]=imageSet(imageFolder,varargin)
+// This function is used to create a collection of images.
+//
+// Calling Sequence
+// imgSet = imageSet(location)
+// imgSet = imageSet(location, 'recursive')
+//
+// Parameters
+// imgSet: Structure containing collection of images
+// location: Address of the folder from which collection is to be created
+//
+// Description
+// This function creates an imageSet structure with the following attributes- Description, ImageLocation, and Count.
+//
+// Examples
+// imgSet = imageSet(directory);
+//
+// imgSet = imageSet(directory,'recursive');
+//
+// Authors
+// Rohit Suri
+
+ [lhs rhs]=argn(0);
+ if lhs>1
+ error(msprintf(" Too many output arguments"));
+ elseif rhs<1
+ error(msprintf(" Not enough input arguments"));
+ elseif rhs>2
+ error(msprintf(" Too many input arguments"));
+ end
+ if rhs==1 then
+ imgSetList=opencv_imageSet(imageFolder);
+ for i=1:imgSetList(3)
+ imgLocations(i)=imgSetList(4)(1)(1,i);
+ end
+ imgSet=struct('Description',imgSetList(2),'ImageLocation',imgLocations,'Count',double(imgSetList(3)));
+ else
+ imgSetList=opencv_imageSet(imageFolder,varargin(1));
+ for i=1:length(imgSetList(3))
+ for j=1:imgSetList(3)(i)
+ imgLocations(j)=imgSetList(4)(i)(1,j);
+ end
+ imgSet(1,i)=struct('Description',imgSetList(2)(i),'ImageLocation',imgLocations,'Count',int32(imgSetList(3)(i)));
+ imgLocations=[];
+ end
+ end
+endfunction
diff --git a/macros/imageSetToList.bin b/macros/imageSetToList.bin
new file mode 100644
index 0000000..09d3aca
Binary files /dev/null and b/macros/imageSetToList.bin differ
diff --git a/macros/imageSetToList.sci b/macros/imageSetToList.sci
new file mode 100644
index 0000000..1e7a461
--- /dev/null
+++ b/macros/imageSetToList.sci
@@ -0,0 +1,30 @@
+function imgSetList=imageSetToList(imageSet)
+ if isstruct(imageSet)<> %T then
+ error(msprintf("Error: The input argument is not of type imageSet."));
+ end
+ fieldNamesActual=["Description";"ImageLocation";"Count"];
+ fieldNamesInput=fieldnames(imageSet);
+ if fieldNamesActual <> fieldNamesInput then
+ error(msprintf("Error: The input argument is not of type imageSet, Wrong field names"));
+ end
+ if size(imageSet) == [1 1] then
+ locationList=list();
+ Desc=imageSet.Description;
+ Count=int32(imageSet.Count);
+ for j=1:imageSet.Count
+ tempMat(1,j)=imageSet.ImageLocation(j);
+ end
+ locationList($+1)=tempMat;
+ else
+ locationList=list();
+ for i=1:size(imageSet.Count)
+ Desc(i)=imageSet(i).Description;
+ Count(i)=int32(imageSet(i).Count);
+ for j=1:imageSet(i).Count
+ tempMat(1,j)=imageSet(i).ImageLocation(j);
+ end
+ locationList($+1)=tempMat;
+ end
+ end
+ imgSetList=list("imageSet",Desc,Count,locationList);
+endfunction
diff --git a/macros/imboxfilt3.bin b/macros/imboxfilt3.bin
new file mode 100644
index 0000000..d464164
Binary files /dev/null and b/macros/imboxfilt3.bin differ
diff --git a/macros/imboxfilt3.sci b/macros/imboxfilt3.sci
new file mode 100644
index 0000000..cf27438
--- /dev/null
+++ b/macros/imboxfilt3.sci
@@ -0,0 +1,28 @@
+//1) box_filtered_image = imboxfilt3(input_img);
+ //In this usage, the default filter size of 3x3 is used.
+
+// 2) box_filtered_image = imboxfilt3(input_img, filter_height, filter_width);
+
+function[dstMat] = imboxfilt3(srcImg, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 1 then
+ out = opencv_imboxfilt3(srcMat)
+
+ case 2 then
+ out = opencv_imboxfilt3(srcMat, varargin(1))
+
+ case 3 then
+ out = opencv_imboxfilt3(srcMat, varargin(1), varargin(2))
+ end
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imcomplement.bin b/macros/imcomplement.bin
new file mode 100644
index 0000000..e01330a
Binary files /dev/null and b/macros/imcomplement.bin differ
diff --git a/macros/imcomplement.sci b/macros/imcomplement.sci
new file mode 100644
index 0000000..426e871
--- /dev/null
+++ b/macros/imcomplement.sci
@@ -0,0 +1,13 @@
+function[compMat] = imcomplement(srcImg)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_imcomplement(srcMat)
+
+ ch = size(out)
+
+ for i=1:ch
+ compMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imcontour.bin b/macros/imcontour.bin
new file mode 100644
index 0000000..41999d6
Binary files /dev/null and b/macros/imcontour.bin differ
diff --git a/macros/imcontour.sci b/macros/imcontour.sci
new file mode 100644
index 0000000..df41b0f
--- /dev/null
+++ b/macros/imcontour.sci
@@ -0,0 +1,7 @@
+function[contourMat] = imcontour(matA)
+
+ srcMat = mattolist(matA)
+
+ contourMat = opencv_imcontour(srcMat)
+
+endfunction
diff --git a/macros/imcontrast.bin b/macros/imcontrast.bin
new file mode 100644
index 0000000..2ef7cb7
Binary files /dev/null and b/macros/imcontrast.bin differ
diff --git a/macros/imcontrast.sci b/macros/imcontrast.sci
new file mode 100644
index 0000000..2666c0f
--- /dev/null
+++ b/macros/imcontrast.sci
@@ -0,0 +1,7 @@
+function[contrastMat] = imcontrast(srcImg, alpha, beta)
+
+ srcMat = mattolist(srcImg)
+
+ contrastMat = opencv_imcontrast(srcMat, alpha, beta)
+
+endfunction
diff --git a/macros/imcrop.bin b/macros/imcrop.bin
new file mode 100644
index 0000000..71a459a
Binary files /dev/null and b/macros/imcrop.bin differ
diff --git a/macros/imcrop.sci b/macros/imcrop.sci
new file mode 100644
index 0000000..ac1cb5f
--- /dev/null
+++ b/macros/imcrop.sci
@@ -0,0 +1,5 @@
+function[cropImg] = imcrop(srcImg, xcoor, ycoor, width, height)
+ srcMat = mattolist(srcImg)
+// disp(srcMat)
+ cropImg = opencv_imcrop(srcMat, xcoor, ycoor, width, height)
+endfunction
diff --git a/macros/imcrop.sci~ b/macros/imcrop.sci~
new file mode 100644
index 0000000..7af043f
--- /dev/null
+++ b/macros/imcrop.sci~
@@ -0,0 +1,5 @@
+function[cropImg] = imcrop(srcImg, xcoor, ycoor, width, height)
+ srcMat = mattolist(srcImg)
+ disp(srcMat)
+ cropImg = opencv_imcrop(srcMat, xcoor, ycoor, width, height)
+endfunction
diff --git a/macros/imdivide.bin b/macros/imdivide.bin
new file mode 100644
index 0000000..b542bc6
Binary files /dev/null and b/macros/imdivide.bin differ
diff --git a/macros/imdivide.sci b/macros/imdivide.sci
new file mode 100644
index 0000000..11f8ca9
--- /dev/null
+++ b/macros/imdivide.sci
@@ -0,0 +1,5 @@
+function[divideMat] = imdivide(matA, matB)
+
+ divideMat = opencv_imdivide(matA, matB)
+
+endfunction
diff --git a/macros/imextendedmax.bin b/macros/imextendedmax.bin
new file mode 100644
index 0000000..9331ee3
Binary files /dev/null and b/macros/imextendedmax.bin differ
diff --git a/macros/imextendedmax.sci b/macros/imextendedmax.sci
new file mode 100644
index 0000000..450e290
--- /dev/null
+++ b/macros/imextendedmax.sci
@@ -0,0 +1,13 @@
+function[dstMat] = imextendedmax(srcImg, Hmax)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_imfill(srcMat, Hmax)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imextendedmin.bin b/macros/imextendedmin.bin
new file mode 100644
index 0000000..a7ef048
Binary files /dev/null and b/macros/imextendedmin.bin differ
diff --git a/macros/imextendedmin.sci b/macros/imextendedmin.sci
new file mode 100644
index 0000000..bd7ef80
--- /dev/null
+++ b/macros/imextendedmin.sci
@@ -0,0 +1,13 @@
+function[dstMat] = imextendedmin(srcImg, Hmin)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_imextendedmin(srcMat, Hmin)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imfill.bin b/macros/imfill.bin
new file mode 100644
index 0000000..f1dbb7e
Binary files /dev/null and b/macros/imfill.bin differ
diff --git a/macros/imfill.sci b/macros/imfill.sci
new file mode 100644
index 0000000..c8136fb
--- /dev/null
+++ b/macros/imfill.sci
@@ -0,0 +1,20 @@
+function[dstMat] = imfill(srcImg, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 1 then
+ out = opencv_imfill(srcMat)
+ case 2 then
+ out = opencv_imfill(srcMat, varargin(1))
+ end
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imfindcircles.bin b/macros/imfindcircles.bin
new file mode 100644
index 0000000..ac578cb
Binary files /dev/null and b/macros/imfindcircles.bin differ
diff --git a/macros/imfindcircles.sci b/macros/imfindcircles.sci
new file mode 100644
index 0000000..c8f7491
--- /dev/null
+++ b/macros/imfindcircles.sci
@@ -0,0 +1,25 @@
+function [points, varargout] = imfindcircles(image, Rmin, Rmax)
+
+ [lhs, rhs] = argn(0)
+
+ image_list = mattolist(image)
+
+ select lhs
+ case 1 then
+ out_centres = opencv_imfindcircles(image_list, Rmin, Rmax)
+
+ case 2 then
+ [out_centres radii] = opencv_imfindcircles(image_list, Rmin, Rmax)
+
+ varargout(1) = radii
+ end
+
+ total_points = size(out_centres(1),'c')
+
+
+ for i=1:total_points
+ points(i, 1) = out_centres(1)(1, i)
+ points(i, 2) = out_centres(2)(1, i)
+ end
+
+endfunction
diff --git a/macros/imfuse.bin b/macros/imfuse.bin
new file mode 100644
index 0000000..818c7ec
Binary files /dev/null and b/macros/imfuse.bin differ
diff --git a/macros/imfuse.sci b/macros/imfuse.sci
new file mode 100644
index 0000000..b86e8e3
--- /dev/null
+++ b/macros/imfuse.sci
@@ -0,0 +1,13 @@
+function new_image = imfuse(image1, image2, method, scaling)
+
+ image_list1 = mattolist(image1)
+ image_list2 = mattolist(image2)
+ out = opencv_imfuse(image_list1, image_list2, method, scaling)
+
+ sz = size(out)
+
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imgSetToList.bin b/macros/imgSetToList.bin
new file mode 100644
index 0000000..b3b7877
Binary files /dev/null and b/macros/imgSetToList.bin differ
diff --git a/macros/imgSetToList.sci b/macros/imgSetToList.sci
new file mode 100644
index 0000000..fcbc37c
--- /dev/null
+++ b/macros/imgSetToList.sci
@@ -0,0 +1,50 @@
+function imgSetList=imageSetToList(imageSet)
+ if isstruct(imageSet)<> %T then
+ error(msprintf("Error: The input argument is not of type imageSet."));
+ end
+ fieldNamesActual=["Description";"ImageLocation";"Count"];
+ fieldNamesInput=fieldnames(imageSet);
+ if fieldNamesActual <> fieldNamesInput then
+ error(msprintf("Error: The input argument is not of type imageSet, Wrong field names"));
+ end
+ if size(imageSet) == [1 1] then
+ if type(imageSet.Description)<> 10 | size(imageSet.Description) <> [1 1] then
+ error(msprintf("Error: The input argument is not of type imageSet, Description field must be string"));
+ end
+ if type(imageSet.Count)<> 1 | size(imageSet.Count) <> [1 1] then
+ error(msprintf("Error: The input argument is not of type imageSet, Count field must be integer"));
+ end
+ if type(imageSet.ImageLocation)<> 10 & size(imageSet.ImageLocation,'c') <> 1 then
+ error(msprintf("Error: The input argument is not of type imageSet, ImageLocation must be strings"));
+ end
+ locationList=list();
+ Desc=imageSet.Description;
+ Count=int32(imageSet.Count);
+ for j=1:imageSet.Count
+ tempMat(1,j)=imageSet.ImageLocation(j);
+ end
+ locationList($+1)=tempMat;
+ else
+ for i=1:size(imageSet.Count)
+ if type(imageSet(i).Description)<> 10 | size(imageSet(i).Description) <> [1 1] then
+ error(msprintf("Error: The input argument is not of type imageSet, Description field must be string"));
+ end
+ if type(imageSet(i).Count)<> 1 | size(imageSet(i).Count) <> [1 1] then
+ error(msprintf("Error: The input argument is not of type imageSet, Count field must be integer"));
+ end
+ if type(imageSet(i).ImageLocation)<> 10 & size(imageSet(i).ImageLocation,'c') <> 1 then
+ error(msprintf("Error: The input argument is not of type imageSet, ImageLocation must be strings"));
+ end
+ end
+ locationList=list();
+ for i=1:size(imageSet.Count)
+ Desc(i)=imageSet(i).Description;
+ Count(i)=int32(imageSet(i).Count);
+ for j=1:imageSet(i).Count
+ tempMat(1,j)=imageSet(i).ImageLocation(j);
+ end
+ locationList($+1)=tempMat;
+ end
+ end
+ imgSetList=list("imageSet",Desc,Count,locationList);
+endfunction
diff --git a/macros/imgaborfit.bin b/macros/imgaborfit.bin
new file mode 100644
index 0000000..0061f67
Binary files /dev/null and b/macros/imgaborfit.bin differ
diff --git a/macros/imgaborfit.sci b/macros/imgaborfit.sci
new file mode 100644
index 0000000..3adfbf8
--- /dev/null
+++ b/macros/imgaborfit.sci
@@ -0,0 +1,13 @@
+function new_image = imgaborfit(image, wavelength, orientation)
+
+ image_list = mattolist(image)
+
+ out = opencv_imgaborfit(image_list, wavelength, orientation)
+
+ sz = size(out)
+
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imgaussfilt3.bin b/macros/imgaussfilt3.bin
new file mode 100644
index 0000000..b21c402
Binary files /dev/null and b/macros/imgaussfilt3.bin differ
diff --git a/macros/imgaussfilt3.sci b/macros/imgaussfilt3.sci
new file mode 100644
index 0000000..7995f8e
--- /dev/null
+++ b/macros/imgaussfilt3.sci
@@ -0,0 +1,7 @@
+function [outputImg]=imgaussfilt3(inputImage, filter_height, filter_width, sigmaX, sigmaY)
+ inputList=mattolist(inputImage);
+ outputList=opencv_imgaussfilt3(inputList, filter_height, filter_width, sigmaX, sigmaY);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/imguidedfilter.bin b/macros/imguidedfilter.bin
new file mode 100644
index 0000000..43e2bd6
Binary files /dev/null and b/macros/imguidedfilter.bin differ
diff --git a/macros/imguidedfilter.sci b/macros/imguidedfilter.sci
new file mode 100644
index 0000000..13f2236
--- /dev/null
+++ b/macros/imguidedfilter.sci
@@ -0,0 +1,26 @@
+function guidedFiltered_image = imguidedfilter(varargin)
+
+ [lhs, rhs] = argn(0)
+
+ image_list = mattolist(varargin(1))
+
+ select rhs
+ case 1
+ out = opencv_imguidedfilter(image_list)
+
+ case 2
+ out = opencv_imguidedfilter(image_list, varargin(2))
+
+ case 3
+ out = opencv_imguidedfilter(image_list, varargin(2), varargin(3))
+
+ case 4
+ out = opencv_imguidedfilter(image_list, varargin(2), varargin(3), varargin(4))
+ end
+
+ sz = size(out)
+ for i=1:sz
+ guidedFiltered_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imhistmatch.bin b/macros/imhistmatch.bin
new file mode 100644
index 0000000..5deb479
Binary files /dev/null and b/macros/imhistmatch.bin differ
diff --git a/macros/imhistmatch.sci b/macros/imhistmatch.sci
new file mode 100644
index 0000000..0792aef
--- /dev/null
+++ b/macros/imhistmatch.sci
@@ -0,0 +1,17 @@
+function [outputImg]=imhistmatch(inputImage,refImage,varargin)
+ [lhs rhs]=argn(0);
+ if rhs>3
+ error(msprintf(" Too many input arguments"));
+ end
+ inputList=mattolist(inputImage);
+ refList=mattolist(refImage);
+ select rhs
+ case 2 then
+ outputList=opencv_imhistmatch(inputList,refList);
+ case 3 then
+ outputList=opencv_imhistmatch(inputList,refList,varargin(1));
+ end
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/imhmin.bin b/macros/imhmin.bin
new file mode 100644
index 0000000..6d6bcf0
Binary files /dev/null and b/macros/imhmin.bin differ
diff --git a/macros/imhmin.sci b/macros/imhmin.sci
new file mode 100644
index 0000000..441efce
--- /dev/null
+++ b/macros/imhmin.sci
@@ -0,0 +1,15 @@
+function[dstMat] = imfill(srcImg, Hmin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_imfill(srcMat, Hmin)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imhmin.sci~ b/macros/imhmin.sci~
new file mode 100644
index 0000000..d57e774
--- /dev/null
+++ b/macros/imhmin.sci~
@@ -0,0 +1,15 @@
+unction[dstMat] = imfill(srcImg, H-min)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_imfill(srcMat, H-min)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imimposemin.bin b/macros/imimposemin.bin
new file mode 100644
index 0000000..9fd4151
Binary files /dev/null and b/macros/imimposemin.bin differ
diff --git a/macros/imimposemin.sci b/macros/imimposemin.sci
new file mode 100644
index 0000000..1d0d582
--- /dev/null
+++ b/macros/imimposemin.sci
@@ -0,0 +1,11 @@
+function[dstMat] = imimposemin(maskImg, markerImg)
+
+ out = opencv_imimposemin(maskImg, markerImg)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/immultiply.bin b/macros/immultiply.bin
new file mode 100644
index 0000000..451d045
Binary files /dev/null and b/macros/immultiply.bin differ
diff --git a/macros/immultiply.sci b/macros/immultiply.sci
new file mode 100644
index 0000000..542d9d5
--- /dev/null
+++ b/macros/immultiply.sci
@@ -0,0 +1,10 @@
+function[multiplyMat] = immultiply(matA, matB)
+
+ out = opencv_immultiplyt(matA, matB)
+
+ channel = size(out)
+
+ for i = 1: channel
+ multiplyMat(:,:,i) = out(i)
+ end
+endfunction
diff --git a/macros/impixel.bin b/macros/impixel.bin
new file mode 100644
index 0000000..7bf530d
Binary files /dev/null and b/macros/impixel.bin differ
diff --git a/macros/impixel.sci b/macros/impixel.sci
new file mode 100644
index 0000000..64afe5f
--- /dev/null
+++ b/macros/impixel.sci
@@ -0,0 +1,5 @@
+function [out]=impixel(image,value1,value2)
+ image1=mattolist(image);
+ out=opencv_impixel(image1,value1,value2);
+
+endfunction;
diff --git a/macros/imread.bin b/macros/imread.bin
new file mode 100644
index 0000000..2394659
Binary files /dev/null and b/macros/imread.bin differ
diff --git a/macros/imread.sci b/macros/imread.sci
new file mode 100644
index 0000000..7770a58
--- /dev/null
+++ b/macros/imread.sci
@@ -0,0 +1,11 @@
+function[dstMat] = imread(matA)
+
+ out = opencv_imread(matA)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = (out(i))
+ end
+ dstMat=double(dstMat)
+endfunction
diff --git a/macros/imread.sci~ b/macros/imread.sci~
new file mode 100644
index 0000000..bfc3aae
--- /dev/null
+++ b/macros/imread.sci~
@@ -0,0 +1,11 @@
+function[dstMat] = imread(matA)
+
+ out = opencv_imread(matA)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = double(out(i))
+ end
+
+endfunction
diff --git a/macros/imrect.bin b/macros/imrect.bin
new file mode 100644
index 0000000..d02e8cd
Binary files /dev/null and b/macros/imrect.bin differ
diff --git a/macros/imrect.sci b/macros/imrect.sci
new file mode 100644
index 0000000..a1ed7fa
--- /dev/null
+++ b/macros/imrect.sci
@@ -0,0 +1,8 @@
+function [output] = imrect(img,pstDataX,pstDataY)
+ image = mattolist(img);
+ a = opencv_imrect(image,pstDataX,pstDataY)
+ d = size(a);
+ for i=1:size
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/imresize.bin b/macros/imresize.bin
new file mode 100644
index 0000000..18dcdb9
Binary files /dev/null and b/macros/imresize.bin differ
diff --git a/macros/imresize.sci b/macros/imresize.sci
new file mode 100644
index 0000000..6570005
--- /dev/null
+++ b/macros/imresize.sci
@@ -0,0 +1,8 @@
+function [out]=imresize(image,alpha,beta)
+ image1=mattolist(image);
+ a=opencv_imresize(image1,alpha,beta);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/imsharpen.bin b/macros/imsharpen.bin
new file mode 100644
index 0000000..5f5f066
Binary files /dev/null and b/macros/imsharpen.bin differ
diff --git a/macros/imsharpen.sci b/macros/imsharpen.sci
new file mode 100644
index 0000000..4c4a4be
--- /dev/null
+++ b/macros/imsharpen.sci
@@ -0,0 +1,18 @@
+function[dstMat] = imsharpen(SrcImg)
+
+ srcMat = mattolist(SrcImg)
+// [rows cols channels]=size(SrcImg);
+// imgList=list();
+// for i=1:channels
+// imgList(i)=SrcImg(:,:,i);
+// end
+// disp(imgList(i))
+// out = opencv_imsharpen(imgList)
+ out = opencv_imsharpen(srcMat)
+ [rows cols channel] = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imsharpen.sci~ b/macros/imsharpen.sci~
new file mode 100644
index 0000000..4c4a4be
--- /dev/null
+++ b/macros/imsharpen.sci~
@@ -0,0 +1,18 @@
+function[dstMat] = imsharpen(SrcImg)
+
+ srcMat = mattolist(SrcImg)
+// [rows cols channels]=size(SrcImg);
+// imgList=list();
+// for i=1:channels
+// imgList(i)=SrcImg(:,:,i);
+// end
+// disp(imgList(i))
+// out = opencv_imsharpen(imgList)
+ out = opencv_imsharpen(srcMat)
+ [rows cols channel] = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/imshow.bin b/macros/imshow.bin
new file mode 100644
index 0000000..fd6d82d
Binary files /dev/null and b/macros/imshow.bin differ
diff --git a/macros/imshow.sci b/macros/imshow.sci
new file mode 100644
index 0000000..ceedd8e
--- /dev/null
+++ b/macros/imshow.sci
@@ -0,0 +1,26 @@
+function[] =imshow(Image) //retrieving list and creating 3 dimensional matrix out of it
+ dimensions=size(Image)
+ if dimensions==3 then
+ [c d]=size(Image(1));
+ r=matrix(Image(1),c,d);
+ g=matrix(Image(2),c,d);
+ b=matrix(Image(3),c,d);
+ z(:,:,1)=r;
+ z(:,:,2)=g;
+ z(:,:,3)=b;
+ [NumberOfRows NumberOfColumns NumberOfChannels] = size(z);
+ NumberOfPixels = NumberOfRows * NumberOfColumns;
+ MaxGrayValue = 2 ^ 8 - 1;
+ ColorMap = double(matrix(z, NumberOfPixels, NumberOfChannels)) ...
+ / MaxGrayValue;
+ Img = matrix(1 : NumberOfPixels, NumberOfRows, NumberOfColumns);
+ elseif dimensions==1 then
+ [c d]=size(Image(1));
+ Img=matrix(Image(1),c,d);
+ //Img=Img';
+ MaxUInt8 = 2 ^ 8 - 1;
+ MaximumGrayValue = MaxUInt8;
+ ColorMap = graycolormap(double(MaximumGrayValue + 1));
+ end;
+ show(Img,ColorMap);
+endfunction
diff --git a/macros/imshowpair.bin b/macros/imshowpair.bin
new file mode 100644
index 0000000..39a70bd
Binary files /dev/null and b/macros/imshowpair.bin differ
diff --git a/macros/imshowpair.sci b/macros/imshowpair.sci
new file mode 100644
index 0000000..0df086a
--- /dev/null
+++ b/macros/imshowpair.sci
@@ -0,0 +1,8 @@
+function [outputImg]=imshowpair(inputImage1,inputImage2,method,scale)
+ inputList1=mattolist(inputImage1);
+ inputList2=mattolist(inputImage2);
+ outputList=opencv_imshowpair(inputList1,inputList2,method,scale);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/imsubtract.bin b/macros/imsubtract.bin
new file mode 100644
index 0000000..22eb98f
Binary files /dev/null and b/macros/imsubtract.bin differ
diff --git a/macros/imsubtract.sci b/macros/imsubtract.sci
new file mode 100644
index 0000000..2edaa1f
--- /dev/null
+++ b/macros/imsubtract.sci
@@ -0,0 +1,5 @@
+function [matC] = imsubtract(matA, matB)
+
+ matC = opencv_imsubtract(matA, matB)
+
+endfunction
diff --git a/macros/imwarp.bin b/macros/imwarp.bin
new file mode 100644
index 0000000..92da630
Binary files /dev/null and b/macros/imwarp.bin differ
diff --git a/macros/imwarp.sci b/macros/imwarp.sci
new file mode 100644
index 0000000..a920ffa
--- /dev/null
+++ b/macros/imwarp.sci
@@ -0,0 +1,8 @@
+function [output] = imwarp(img,matrix)
+ image = mattolist(img);
+ a = imwarp(image,matrix)
+ d = size(a)
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/imwrite.bin b/macros/imwrite.bin
new file mode 100644
index 0000000..2315134
Binary files /dev/null and b/macros/imwrite.bin differ
diff --git a/macros/imwrite.sci b/macros/imwrite.sci
new file mode 100644
index 0000000..24e9100
--- /dev/null
+++ b/macros/imwrite.sci
@@ -0,0 +1,4 @@
+function imwrite(img,pstData)
+ image = mattolist(img)
+ opencv_imwrite(image,pstData)
+endfunction
diff --git a/macros/ind2gray.bin b/macros/ind2gray.bin
new file mode 100644
index 0000000..36816bd
Binary files /dev/null and b/macros/ind2gray.bin differ
diff --git a/macros/ind2gray.sci b/macros/ind2gray.sci
new file mode 100644
index 0000000..d2c8eee
--- /dev/null
+++ b/macros/ind2gray.sci
@@ -0,0 +1,8 @@
+function [output] = ind2gray(img,colormap)
+ image = mattolist(img);
+ a = opencv_ind2gray(image,colormap)
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/indexImages.bin b/macros/indexImages.bin
new file mode 100644
index 0000000..c1622de
Binary files /dev/null and b/macros/indexImages.bin differ
diff --git a/macros/indexImages.sci b/macros/indexImages.sci
new file mode 100644
index 0000000..8a6dc8c
--- /dev/null
+++ b/macros/indexImages.sci
@@ -0,0 +1,54 @@
+function [imageIndex]=indexImages(imgSet,varargin)
+// This function creates image search index
+//
+// Calling Sequence
+// imageIndex = indexImages(imgSet, bagOfFeatures, Name, Value... );
+//
+// Parameters
+// imgSet: Collection of images with their location and labels
+// bagOfFeatures: Bag of Visual Words
+// Verbose [Optional Input Argument]: Enable Progress display to Screen
+// SaveFeatureLocations [Optional Input Argument]: A boolean value indicating whether feature locations has to be saved or not. Values: [True(default)|False]
+// imageIndex: Search Index Object containing the mapping of visual vocabulary to each image in the image set
+//
+// Description
+// Creates a search Index Object that has been mapped to visual words that can be used for retrieve Images
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// imageindex = indexImages(trainingSet, bag);
+//
+// With Optional Arguments:
+// imageindex = indexImages(trainingSet, bag, "Verbose", 1);
+//
+// Authors
+// Umang Agrawal
+// Rohit Suri
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if rhs>6
+ error(msprintf(" Too many input arguments"));
+ end
+ imageSetList=imageSetStructToList(imageSet);
+ if modulo(lhs,2)==0
+ bagList=bagStructToList(varargin(1));
+ select rhs
+ case 1 then
+ [imageIndexList]=opencv_indexImages(imgSetList);
+ case 2 then
+ [imageIndexList]=opencv_indexImages(imgSetList,bagList);
+ case 3 then
+ [imageIndexList]=opencv_indexImages(imgSetList,varargin(1),varargin(2));
+ case 4 then
+ [imageIndexList]=opencv_indexImages(imgSetList,bagList,varargin(2),varargin(3));
+ case 5 then
+ [imageIndexList]=opencv_indexImages(imgSetList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [imageIndexList]=opencv_indexImages(imgSetList,bagList,varargin(2),varargin(3),varargin(4),varargin(5));
+ end
+ end
+
+endfunction
diff --git a/macros/indexImages.sci~ b/macros/indexImages.sci~
new file mode 100644
index 0000000..567a90d
--- /dev/null
+++ b/macros/indexImages.sci~
@@ -0,0 +1,53 @@
+function [imageIndex]=indexImages(imgSet,varargin)
+// This function creates image search index
+//
+// Calling Sequence
+// imageIndex = indexImages(imgSet, bagOfFeatures, Name, Value... );
+//
+// Parameters
+// imgSet: Collection of images with their location and labels
+// bagOfFeatures: Bag of Visual Words
+// Verbose [Optional Input Argument]: Enable Progress display to Screen
+// SaveFeatureLocations [Optional Input Argument]: A boolean value indicating whether feature locations has to be saved or not. Values: [True(default)|False]
+// imageIndex: Search Index Object containing the mapping of visual vocabulary to each image in the image set
+//
+// Description
+// Creates a search Index Object that has been mapped to visual words that can be used for retrieve Images
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// imageindex = indexImages(trainingSet, bag);
+//
+// With Optional Arguments:
+// imageindex = indexImages(trainingSet, bag, "Verbose", 1);
+//
+// Authors
+// Umang Agrawal
+// Rohit Suri
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if rhs>6
+ error(msprintf(" Too many input arguments"));
+ end
+ imageSetList=imageSetStructToList(imageSet);
+ if modulo(lhs,2)==0
+ bagList=bagStructToList(varargin(1));
+ select rhs
+ case 1 then
+ [imageIndexList]=opencv_indexImages(imgSetList);
+ case 2 then
+ [imageIndexList]=opencv_indexImages(imgSetList,bagList);
+ case 3 then
+ [imageIndexList]=opencv_indexImages(imgSetList,varargin(1),varargin(2));
+ case 4 then
+ [imageIndexList]=opencv_indexImages(imgSetList,bagList,varargin(2),varargin(3));
+ case 5 then
+ [imageIndexList]=opencv_indexImages(imgSetList,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [imageIndexList]=opencv_indexImages(imgSetList,bagList,varargin(2),varargin(3),varargin(4),varargin(5));
+ end
+
+endfunction
diff --git a/macros/integralFilter.bin b/macros/integralFilter.bin
new file mode 100644
index 0000000..e382416
Binary files /dev/null and b/macros/integralFilter.bin differ
diff --git a/macros/integralFilter.sci b/macros/integralFilter.sci
new file mode 100644
index 0000000..1e7e19f
--- /dev/null
+++ b/macros/integralFilter.sci
@@ -0,0 +1,29 @@
+function [out]=integralFilter(intimage,bbox,weights,filterSize)
+// Integral Image based Filter.
+//
+// Calling Sequence
+// filter = integralFilter(intimage,bbox,weights,filterSize);
+//
+// Parameters
+// intimage: Integral Image, which can be obtained from the function integralImage.
+// bbox: Bounding box of the filter object, which can be obtained from integralKernel function.
+// weight: Weights of the bounding box, which can be obtained from integralKernel function.
+// filterSize: Size of the filter, which can be obtained from integralKernel function.
+//
+// Description
+// This function filters image using box filters and integral images.
+//
+// Examples
+// i = imread("lena.jpg");
+// intImg = integralImage(i);
+// kernel = integralKernel([2 2 11 11], 1/51);
+// filter = integralKernel(intImg, kernel.bbox, kernel.weights, kernel.filterSize);
+//
+// Authors
+// Tanmay Chaudhari
+
+ inputimage1=mattolist(inputimage);
+ a=opencv_integralFilter(inputimage1,bbox,weights,filterSize);
+ out(:,:,1)=a(1);
+
+endfunction
diff --git a/macros/integralImage.bin b/macros/integralImage.bin
new file mode 100644
index 0000000..38b5e6c
Binary files /dev/null and b/macros/integralImage.bin differ
diff --git a/macros/integralImage.sci b/macros/integralImage.sci
new file mode 100644
index 0000000..00801cb
--- /dev/null
+++ b/macros/integralImage.sci
@@ -0,0 +1,20 @@
+function[dstMat] = integralImage(srcImg, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 1 then
+ out = opencv_integralImage(srcMat)
+ case 3 then
+ out = opencv_integralImage(srcMat, varargin(1))
+ end
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/integralImage.sci~ b/macros/integralImage.sci~
new file mode 100644
index 0000000..cc528a0
--- /dev/null
+++ b/macros/integralImage.sci~
@@ -0,0 +1,20 @@
+unction[dstMat] = integralImage(srcImg, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ select rhs
+ case 1 then
+ out = opencv_integralImage(srcMat)
+ case 3 then
+ out = opencv_integralImage(srcMat, varargin(1))
+ end
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/integralKernel.bin b/macros/integralKernel.bin
new file mode 100644
index 0000000..e1ba577
Binary files /dev/null and b/macros/integralKernel.bin differ
diff --git a/macros/integralKernel.sci b/macros/integralKernel.sci
new file mode 100644
index 0000000..7276e27
--- /dev/null
+++ b/macros/integralKernel.sci
@@ -0,0 +1,27 @@
+function [ kernel ] = integralKernel(bbox, weights)
+// This function creates a filter to be used with integral images.
+//
+// Calling Sequence
+// results = intergralKernel(bbox, weight);
+//
+// Parameters
+// results: A structure kernel which contains bounding boxes, weights, filter coefficients, center of filter, size of filter, orientation of filter
+// bboxes: bounding boxes that define the filter
+// weights: weights corresponding to each of the bbox
+//
+// Description
+// Integral kernel creates box filter which can be used with integral images.
+//
+// Examples
+// bbox = [1 2 3 4; 5 6 7 8];
+// weights = [10 11];
+// results = integralKernel(bbox, weights);
+//
+// Authors
+// Tanmay Chaudhari
+
+ [t1 t2 t3 t4 t5] = opencv_integralKernel(bbox, weights)
+
+ kernel = struct("bbox",t1(1),"weights",t2,"coefficients",t3(1),"centre",t4(1),"filterSize",t5)
+
+endfunction
diff --git a/macros/invertedIndexImages.bin b/macros/invertedIndexImages.bin
new file mode 100644
index 0000000..14a3ee8
Binary files /dev/null and b/macros/invertedIndexImages.bin differ
diff --git a/macros/invertedIndexImages.sci b/macros/invertedIndexImages.sci
new file mode 100644
index 0000000..a92b728
--- /dev/null
+++ b/macros/invertedIndexImages.sci
@@ -0,0 +1,32 @@
+function [invertedImageIndexStruct]=invertedIndexImages(imgSet,bagOfFeatures)
+// This function creates image search index
+//
+// Calling Sequence
+// imageIndex = invertedIndexImages(imgSet, bagOfFeatures );
+//
+// Parameters
+// imgSet: Collection of images with their location and labels
+// bagOfFeatures: Bag of Visual Words
+// SaveFeatureLocations [Optional Input Argument]: A boolean value inicating whether feature locations has to be saved or not. Values: [True(default)|False]
+// imageIndex: Search Index Object containing the mapping of visual vocabulary to each image in the image set
+//
+// Description
+// Creates a search Index Object that has been mapped to visual words that can be used for retrieve Images
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// imageindex = invertedIndexImages(trainingSet, bag);
+//
+// With Optional Arguments:
+// imageindex = invertedIndexImages(trainingSet, bag, "SaveFeatureLocations", 1);
+//
+// Authors
+// Umang Agrawal
+// Rohit Suri
+// Sridhar Reddy
+
+ invertedImageIndexList=indexImages(imgSet,bagOfFeatures);
+ invertedImageIndexStruct=struct('Type','invertedImageIndex','ImageLocation',invertedImageIndexList(5), 'ImageWords',invertedImageIndexList(2), 'WordFrequency',invertedImageIndexList(3),'BagOfFeatures',bagOfFeatures,)
+endfunction
diff --git a/macros/isEpipoleInImage.bin b/macros/isEpipoleInImage.bin
new file mode 100644
index 0000000..d9a3155
Binary files /dev/null and b/macros/isEpipoleInImage.bin differ
diff --git a/macros/isEpipoleInImage.sci b/macros/isEpipoleInImage.sci
new file mode 100644
index 0000000..b2d48d0
--- /dev/null
+++ b/macros/isEpipoleInImage.sci
@@ -0,0 +1,48 @@
+function [isepi, varargout ] = isEpipoleInImage(fundamental_matrix, imagesize)
+// Find whether image contains epipole.
+//
+// Calling Sequence
+// isepi = isEpipoleInImage(F, imagesize)
+// [isepi, epipole] = isEpipoleInImage(F, imagesize)
+//
+// Parameters
+// F : A 3 * 3 fundamental matrix computed from stereo images. It should be double or single
+// imagesize : The size of the image
+// isepi : Logical value true / false denoting whether the image contains epipole
+// epipole : Location of the epipole. It is 1 * 2 vector.
+//
+// Description
+// The function determines whether the image with fundamental matrix F contains the epipole or not. It also gives the position of the epipole.
+//
+// Examples
+// F = estimateFundamentalMatrix(matchedPoints1, matchedPoints2)
+// imageSize = [200 300]
+// isepi = isEpipoleInImage(F, imagesize)
+// [isepi, epipole] = isEpipoleInImage(F, imagesize)
+//
+// Authors
+// Suraj Prakash
+
+ [ lhs, rhs ] = argn(0)
+
+ if lhs > 2 then
+ error(msprintf("Too many output arguments"));
+ end
+ /// If there is more than one output parameter
+ [rows cols] = size(fundamental_matrix)
+ if rows ~= 3 | cols ~=3 then
+ error(msprintf("Invalid size of fundamental matrix\n"));
+ end
+ [rows1 col2] = size(imagesize)
+ if rows1 ~=1 | cols ~= 2 then
+ error(msprintf("Invalid image size matrix\n"));
+ end
+ if lhs == 2 then
+ [isepi, temp ] = opencv_isEpipoleInImage(fundamental_matrix, imagesize);
+ varargout(1) = temp;
+ /// if there is only one output parameter
+ else
+ isepi = opencv_isEpipoleInImage(fundamental_matrix, imagesize);
+ end
+
+endfunction
diff --git a/macros/lab2double.bin b/macros/lab2double.bin
new file mode 100644
index 0000000..7b4d0db
Binary files /dev/null and b/macros/lab2double.bin differ
diff --git a/macros/lab2double.sci b/macros/lab2double.sci
new file mode 100644
index 0000000..83203a3
--- /dev/null
+++ b/macros/lab2double.sci
@@ -0,0 +1,7 @@
+function [output] = lab2double(pstData)
+ a = opencv_lab2double(pstData);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/lab2rgb.bin b/macros/lab2rgb.bin
new file mode 100644
index 0000000..a837573
Binary files /dev/null and b/macros/lab2rgb.bin differ
diff --git a/macros/lab2rgb.sci b/macros/lab2rgb.sci
new file mode 100644
index 0000000..622d442
--- /dev/null
+++ b/macros/lab2rgb.sci
@@ -0,0 +1,7 @@
+function [output] = lab2rgb(pstData)
+ a = opencv_lab2rgb(pstData);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/lab2uint16.bin b/macros/lab2uint16.bin
new file mode 100644
index 0000000..04b6f9a
Binary files /dev/null and b/macros/lab2uint16.bin differ
diff --git a/macros/lab2uint16.sci b/macros/lab2uint16.sci
new file mode 100644
index 0000000..14cb352
--- /dev/null
+++ b/macros/lab2uint16.sci
@@ -0,0 +1,7 @@
+function [output] = lab2uint16(pstData)
+ a = opencv_lab2uint16(pstData);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/lab2uint8.bin b/macros/lab2uint8.bin
new file mode 100644
index 0000000..300e6b0
Binary files /dev/null and b/macros/lab2uint8.bin differ
diff --git a/macros/lab2uint8.sci b/macros/lab2uint8.sci
new file mode 100644
index 0000000..d0408b5
--- /dev/null
+++ b/macros/lab2uint8.sci
@@ -0,0 +1,7 @@
+function [output] = lab2uint8(pstData)
+ a = opencv_lab2uint8(pstData);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/lab2xyz.bin b/macros/lab2xyz.bin
new file mode 100644
index 0000000..b5a6e73
Binary files /dev/null and b/macros/lab2xyz.bin differ
diff --git a/macros/lab2xyz.sci b/macros/lab2xyz.sci
new file mode 100644
index 0000000..ae2cd7b
--- /dev/null
+++ b/macros/lab2xyz.sci
@@ -0,0 +1,20 @@
+function [output] = lab2xyz(vartype,varargin)
+ [lhs rhs] = argn(0);
+ if(rhs>3)
+ eror(msprintf("Too many input arguments"));
+ end
+ select rhs
+ case 1 then
+ a = opencv_lab2xyz(vartype);
+ case 2 then
+ a = opencv_lab2xyz(vartype,varargin(0));
+ case 3 then
+ a = opencv_lab2xyz(vartype,varargin(0),varargin(1));
+ end
+
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
+
diff --git a/macros/laplacian.bin b/macros/laplacian.bin
new file mode 100644
index 0000000..62a2bb8
Binary files /dev/null and b/macros/laplacian.bin differ
diff --git a/macros/laplacian.sci b/macros/laplacian.sci
new file mode 100644
index 0000000..5cd9b04
--- /dev/null
+++ b/macros/laplacian.sci
@@ -0,0 +1,7 @@
+function outputImg= laplacian(inputImage , depth , ksize , scale, delta)
+ inputList=mattolist(inputImage);
+ outputList=opencv_laplacian(inputList , depth , ksize , scale, delta)
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/lib b/macros/lib
new file mode 100644
index 0000000..29fe244
Binary files /dev/null and b/macros/lib differ
diff --git a/macros/line.bin b/macros/line.bin
new file mode 100644
index 0000000..cb709f1
Binary files /dev/null and b/macros/line.bin differ
diff --git a/macros/line.sci b/macros/line.sci
new file mode 100644
index 0000000..df1d19f
--- /dev/null
+++ b/macros/line.sci
@@ -0,0 +1,7 @@
+function outputImg= line(inputImage , x1 , y1 , x2,y2,r_value,g_value,b_value,thickness,linetype,shift)
+ inputList=mattolist(inputImage);
+ outputList=opencv_line(inputList , x1 , y1 , x2,y2,r_value,g_value,b_value,thickness,linetype,shift)
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/lineToBorderPoints.bin b/macros/lineToBorderPoints.bin
new file mode 100644
index 0000000..25b050b
Binary files /dev/null and b/macros/lineToBorderPoints.bin differ
diff --git a/macros/lineToBorderPoints.sci b/macros/lineToBorderPoints.sci
new file mode 100644
index 0000000..eab84ef
--- /dev/null
+++ b/macros/lineToBorderPoints.sci
@@ -0,0 +1,29 @@
+function [points] = lineToBorderPoints(lines,isize)
+
+// Points of intersection of line(s) with the image border
+//
+// Calling Sequence
+// points = lineToBorderPoints(lines,isize)
+//
+// Parameters
+// lines : It is a MX3 matrix. If a line is represented by A*x + B*y + C = 0, then each row is of the form [A B C] and M is the number of lines.
+// isize : It is the size of the image. It is of the form as that returned by the function size.
+// points : It is a MX4 matrix. It returns the points of intersection of the line with the image border. Each row is of the form [x1,y1,x2,y2] where (x1,y1) and (x2,y2) are the two points of intersection. If a given line does not intersect the image border, the function returns [-1 -1 -1 -1].
+//
+// Description
+// The function calculates the points of intersection of one or more lines with the image border.
+//
+// Examples
+// // Load an image
+// I = imread('rice.png');
+// // Define a line : 2*x + y = 300
+// line = [2 1 -300];
+// // Calculate the points of intersection
+// points = lineToBorderPoints(line,size(I(1)))
+//
+// Authors
+// Asmita Bhar
+//
+
+ points = opencv_lineToBorderPoints(lines,isize)
+endfunction
diff --git a/macros/localMaximaFinder.bin b/macros/localMaximaFinder.bin
new file mode 100644
index 0000000..7fff1fd
Binary files /dev/null and b/macros/localMaximaFinder.bin differ
diff --git a/macros/localMaximaFinder.sci b/macros/localMaximaFinder.sci
new file mode 100644
index 0000000..45e0806
--- /dev/null
+++ b/macros/localMaximaFinder.sci
@@ -0,0 +1,118 @@
+function [location]=localMaximaFinder(inputMatrix,neighborhood,maxNoOfMaxima,threshold)
+// Returns local maxima in input matrices
+//
+// 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 the M-by-2 matrix where M is the number of local maxima and each row represents one local maximum
+//
+// Examples
+// I=imread("lena.jpeg");
+// grayImage=rgb2gray(I);
+// location=localMaximaFinder(grayImage);
+// mat=[1 6 3;4 8 2;9 7 5];
+// loc=localMaximaFinder(mat,[1 3],4,3);
+
+ [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 ~isreal(inputMatrix) | ~isreal(neighborhood)
+ error(msprintf(" Wrong input argument,complex matrix is not expected"))
+ elseif ~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
+ location(k,1)=max_yIn;
+ location(k,2)=max_xIn;
+ 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/makecform.bin b/macros/makecform.bin
new file mode 100644
index 0000000..d12a095
Binary files /dev/null and b/macros/makecform.bin differ
diff --git a/macros/makecform.sci b/macros/makecform.sci
new file mode 100644
index 0000000..ac51464
--- /dev/null
+++ b/macros/makecform.sci
@@ -0,0 +1,4 @@
+function[out_string] = makecform(srcImg)
+ srcMat = mattolist(srcImg)
+ out_string = opencv_makecform(srcMat)
+endfunction
diff --git a/macros/matchFeatures.bin b/macros/matchFeatures.bin
new file mode 100644
index 0000000..c137e32
Binary files /dev/null and b/macros/matchFeatures.bin differ
diff --git a/macros/matchFeatures.sci b/macros/matchFeatures.sci
new file mode 100644
index 0000000..649e68a
--- /dev/null
+++ b/macros/matchFeatures.sci
@@ -0,0 +1,62 @@
+function [indexPairs,varargout]=matchFeatures(features1,features2,varargin)
+// This function is used to find the corresponding matches between two features sets
+//
+// Calling Sequence
+// [ indexPairs ] = matchFeatures( features1, features2, Name, Value... )
+// [ indexPairs matchMetric ] = matchFeatures( features1, features2, Name, Value... )
+//
+// Parameters
+// features1: Feature Set 1, a set of M1-by-N Matrix, M1 corresponding to number of features and N corresponds to length of each feature vector
+// features2: Feature Set 2, a set of M2-by-N Matrix, M2 corresponding to number of features and N corresponds to length of each feature vector
+// Method [Optional Input Argument]: Method of matching to be used. Values: ['Exhaustive' (default) | 'Approximate']
+// MatchThreshold [Optional Input Argument]: Matching Threshold for selecting the percentage of strongest matches. Values in range [0 100], default - 10.0
+// Unique [Optional Input Argument]: Boolean value for selecting only unique matches between features. Default-False(0)
+// Metric [Optional Input Argument]: Metric to be used for matching features. Values: ['SSD'(default)|'SAD'|'Hamming'|'Hamming_2']
+// indexPairs: P-by-2 matrix containing the indices of corresponding features matched between two input feature sets
+// matchMetric: P-by-1 Vector containing the distance metric between matched Features
+//
+// Description
+// MatchFeatures function takes in the Feature Descriptors value of two images as its input and finds the best match between each feature vector of the first image to that of the second image and returns the corresponding indices of each feature matrix
+//
+// Examples
+// image_1 = imread('sample1.jpg');
+// image_2 = imread('sample2.jpg');
+// points_1 = detectFASTFeatures(image_1);
+// points_2 = detectFASTFeatures(image_2);
+// [ f1 vpts_1 ] = extractFeatures(image_1, points_1);
+// [ f2 vpts_2 ] = extractFeatures(image_2, points_2);
+// indexPairs = matchFeatures(f1, f2);
+// matchedPoints_1 = vpts_1(indexPairs(:,1));
+// matchedPoints_2 = vpts_2(indexPairs(:,2));
+//
+// With Optional Arguments:
+// [indexPairs matchMetric] = matchFeatures(f1, f2, "Metric", "SAD");
+//
+// Authors
+// Umang Agrawal
+// Sridhar Reddy
+
+ [lhs rhs]=argn(0);
+ if lhs>2
+ error(msprintf(" Too many output arguments"));
+ elseif rhs>10
+ error(msprintf(" Too many input arguments"));
+ elseif modulo(rhs,2)<>0
+ error(msprintf("Either Argument Name or its Value missing"));
+ end
+ select rhs-2
+ case 0 then
+ [indexPairs, matchmetric]=opencv_matchFeatures(features1,features2);
+ case 2 then
+ [indexPairs, matchmetric]=opencv_matchFeatures(features1,features2,varargin(1),varargin(2));
+ case 4 then
+ [indexPairs, matchmetric]=opencv_matchFeatures(features1,features2,varargin(1),varargin(2),varargin(3),varargin(4));
+ case 6 then
+ [indexPairs, matchmetric]=opencv_matchFeatures(features1,features2,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6));
+ case 8 then
+ [indexPairs, matchmetric]=opencv_matchFeatures(features1,features2,varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8));
+ end
+ if lhs==2 then
+ varargout(1)=matchmetric;
+ end
+endfunction
diff --git a/macros/mattolist.bin b/macros/mattolist.bin
new file mode 100644
index 0000000..cc09fd5
Binary files /dev/null and b/macros/mattolist.bin differ
diff --git a/macros/mattolist.sci b/macros/mattolist.sci
new file mode 100644
index 0000000..8795ebd
--- /dev/null
+++ b/macros/mattolist.sci
@@ -0,0 +1,9 @@
+function [imgList]=mattolist(imgMat)
+ [rows cols channels]=size(imgMat);
+ imgList=list();
+ for i=1:channels
+ imgList($+1)=imgMat(:,:,i);
+// disp(imgList(i))
+ end
+
+endfunction
diff --git a/macros/mattolist.sci~ b/macros/mattolist.sci~
new file mode 100644
index 0000000..77a6b2c
--- /dev/null
+++ b/macros/mattolist.sci~
@@ -0,0 +1,9 @@
+function [imgList]=mattolist(imgMat)
+ [rows cols channels]=size(imgMat);
+ imgList=list();
+ for i=1:channels
+ imgList($+1)=imgMat(:,:,i);
+ disp(imgList(i))
+ end
+
+endfunction
diff --git a/macros/mean.bin b/macros/mean.bin
new file mode 100644
index 0000000..9d43669
Binary files /dev/null and b/macros/mean.bin differ
diff --git a/macros/mean.sci b/macros/mean.sci
new file mode 100644
index 0000000..0b3bdf9
--- /dev/null
+++ b/macros/mean.sci
@@ -0,0 +1,4 @@
+function [out]=mean1(image)
+ image1=mattolist(image);
+ out=opencv_mean1(image1);
+endfunction;
diff --git a/macros/medianblur.bin b/macros/medianblur.bin
new file mode 100644
index 0000000..85c2ccc
Binary files /dev/null and b/macros/medianblur.bin differ
diff --git a/macros/medianblur.sci b/macros/medianblur.sci
new file mode 100644
index 0000000..128edcd
--- /dev/null
+++ b/macros/medianblur.sci
@@ -0,0 +1,7 @@
+function outputImg= medianblur(inputImage,ksize)
+ inputList=mattolist(inputImage);
+ outputList=opencv_medianblur(inputList,ksize)
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/minAreaRect.bin b/macros/minAreaRect.bin
new file mode 100644
index 0000000..5216ab9
Binary files /dev/null and b/macros/minAreaRect.bin differ
diff --git a/macros/minAreaRect.sci b/macros/minAreaRect.sci
new file mode 100644
index 0000000..a0a48ad
--- /dev/null
+++ b/macros/minAreaRect.sci
@@ -0,0 +1,4 @@
+function [out]=integralKernel(InputArraypoints)
+ [t1 t2 t3 t4 t5]= opencv_integralKernel(InputArraypoints);
+ out=struct("size1",t1,"size2",t2,"center1",t3,"center2",t4,"angle",t5);
+endfunction;
diff --git a/macros/minimumenclosingcirlce.bin b/macros/minimumenclosingcirlce.bin
new file mode 100644
index 0000000..f11df6e
Binary files /dev/null and b/macros/minimumenclosingcirlce.bin differ
diff --git a/macros/minimumenclosingcirlce.sci b/macros/minimumenclosingcirlce.sci
new file mode 100644
index 0000000..61aee6b
--- /dev/null
+++ b/macros/minimumenclosingcirlce.sci
@@ -0,0 +1,4 @@
+function [out]=minimumenclosingcirlce(InputArraypoints)
+ [t1 t2 t3]= opencv_minimumenclosingcirlce(InputArraypoints);
+ out=struct("centerx",t1,"centery",t2,"radius",t3);
+endfunction;
diff --git a/macros/montage.bin b/macros/montage.bin
new file mode 100644
index 0000000..e653df7
Binary files /dev/null and b/macros/montage.bin differ
diff --git a/macros/montage.sci b/macros/montage.sci
new file mode 100644
index 0000000..dbed292
--- /dev/null
+++ b/macros/montage.sci
@@ -0,0 +1,8 @@
+function [out]=montage(DataR,DataB,DataG)
+ a=opencv_montage(DataR,DataB,DataG);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/morphologyEx.bin b/macros/morphologyEx.bin
new file mode 100644
index 0000000..a77b193
Binary files /dev/null and b/macros/morphologyEx.bin differ
diff --git a/macros/morphologyEx.sci b/macros/morphologyEx.sci
new file mode 100644
index 0000000..ef1a93b
--- /dev/null
+++ b/macros/morphologyEx.sci
@@ -0,0 +1,15 @@
+function new_image = morphologyEx(image, operation, kernel, anchorX, anchorY, iterations, borderType)
+
+
+ image_list = mattolist(image)
+
+
+ out = opencv_morphologyEx(image_list, operation, kernel, anchorX, anchorY, iterations, borderType)
+
+ sz = size(out)
+
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/names b/macros/names
new file mode 100644
index 0000000..74f5605
--- /dev/null
+++ b/macros/names
@@ -0,0 +1,219 @@
+BRISKPoints
+CascadeObjectDetector
+DCT
+Deinterlacer
+FFT
+ForegroundDetector
+IDCT
+IFFT
+KalmanFilter
+SURFPoints
+TemplateMatcher
+VideoReader
+adapthisteq
+affine2d
+approxpolyDP
+arclength
+arrowedline
+autoCorrelator
+bagOfFeatures
+bagStructToList
+bbox2points
+bboxOverlapRatio
+bilateralFilter
+binaryFeatures
+blobAnalysis
+blur
+borderInterpolate
+boundingRect
+boxfilter
+bundleAdjustment
+bwlookup
+bwulterode
+cameraMatrix
+cameraParameters
+canny
+checkCCE
+checkCEE
+checkCIE
+checkSCE
+checkStereoParam
+circle
+classifierToList
+clipline
+contourarea
+convexhull
+convmtx2
+convolver
+copymakeborder
+corner
+cornerEigenValsAndVecs
+cornerHarris
+cornerMinEigenVal
+crossCorrelator
+cvHoughLines
+cvMaximum
+cvMean
+cvMedian
+cvMinimum
+cvStandardDeviation
+cvVariance
+cv_imread
+cvtColor
+dctmtx
+decorrstretch
+demosaic
+detectBRISKFeatures
+detectCheckerboardPoints
+detectFASTFeatures
+detectHarrisFeatures
+detectMSERFeatures
+detectMinEigenFeatures
+detectSURFFeatures
+dilate
+displayErrors
+ellipse2poly
+erode
+estimateFundamentalMatrix
+estimateGeometricTransform
+estimateUncalibratedRectification
+evaluate
+evaluateImageRetrieval
+extractFeatures
+extractHOGFeatures
+extractLBPFeatures
+fftshift
+fillconvexpoly
+filter
+findcontours
+fitellipse
+fsamp2
+ftrans2
+gabor
+gaussianblur
+genCheckerboardPoints
+geometricshearer
+getStructuringElement
+getTextSize
+getgaussiankernel
+getkerneltype
+getrectsubpix
+getrotationmatrix2d
+goodfeaturestotrack
+grayconnected
+graycoprops
+graydiffweight
+graydist
+has_frame
+histeq
+houghcircles
+houghlines
+houghlinesp
+ifftshift
+im2double
+imadd
+imageSet
+imageSetToList
+imboxfilt3
+imcomplement
+imcontour
+imcontrast
+imcrop
+imdivide
+imextendedmax
+imextendedmin
+imfill
+imfindcircles
+imfuse
+imgSetToList
+imgaborfit
+imgaussfilt3
+imguidedfilter
+imhistmatch
+imhmin
+imimposemin
+immultiply
+impixel
+imread
+imrect
+imresize
+imsharpen
+imshow
+imshowpair
+imsubtract
+imwarp
+imwrite
+ind2gray
+indexImages
+integralFilter
+integralImage
+integralKernel
+invertedIndexImages
+isEpipoleInImage
+lab2double
+lab2rgb
+lab2uint16
+lab2uint8
+lab2xyz
+laplacian
+line
+lineToBorderPoints
+localMaximaFinder
+makecform
+matchFeatures
+mattolist
+mean
+medianblur
+minAreaRect
+minimumenclosingcirlce
+montage
+morphologyEx
+ntsc2rgb
+ocr
+opencv_imread
+opticalFlowFarneback
+partition
+peopleDetector
+predict
+puttext
+pyrDown
+pyrMeanShiftFiltering
+pyrUp
+pyramid
+readForegroundMask
+readframe
+rectangle
+rectifyStereoImages
+regionfill
+retrieveImages
+rgb2lab
+rgb2ntsc
+rgb2xyz
+roifill
+roipoly
+rotationVectorToMatrix
+scharr
+selectStrongestBbox
+sepFilter2D
+show
+showMatchedFeatures
+showReprojectionErrors
+sobel
+ssim
+stereoParameters
+threshold
+trainCascadeObjectDetector
+trainImageCategoryClassifier
+triangulatePoints
+undistort
+undistortImage
+undistortPoints
+viscircle
+warpaffine
+watershed
+whitepoint
+wiener2
+xyz2double
+xyz2lab
+xyz2rgb
+xyz2uint16
diff --git a/macros/ntsc2rgb.bin b/macros/ntsc2rgb.bin
new file mode 100644
index 0000000..25404e6
Binary files /dev/null and b/macros/ntsc2rgb.bin differ
diff --git a/macros/ntsc2rgb.sci b/macros/ntsc2rgb.sci
new file mode 100644
index 0000000..9752bc7
--- /dev/null
+++ b/macros/ntsc2rgb.sci
@@ -0,0 +1,7 @@
+function [output] = ntsc2rgb(pstDataR,pstDataG,pstDataB)
+ a = opencv_ntsc2rgb(pstDataR,pstDataG,pstDataB);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/ocr.bin b/macros/ocr.bin
new file mode 100644
index 0000000..3675d04
Binary files /dev/null and b/macros/ocr.bin differ
diff --git a/macros/ocr.sci b/macros/ocr.sci
new file mode 100644
index 0000000..7e0ed5b
--- /dev/null
+++ b/macros/ocr.sci
@@ -0,0 +1,27 @@
+function [ txt ] = ocr(image)
+// This function is used to identify the text in an image.
+//
+// Calling Sequence
+// results = ocr(image);
+//
+// Parameters
+// results: OCR Text Struct which contains text, characterBoundingBoxes, words and wordConfidences
+// image: Input image to the OCR
+//
+// Description
+// OCR stands for Optical Character Recognition. It is used for scanning documents which contain text and to convert them into documents that can be edited.
+//
+// Examples
+// image = imread('sample.jpg');
+// results = ocr(image);
+//
+// Authors
+// Rohit Suri
+
+ image_list = mattolist(image)
+
+ [ text, characterBoundingBoxes, words, WordConfidences ] = opencv_ocr(image_list)
+
+ txt = struct("Text", text, "characterBoundingBoxes", characterBoundingBoxes, "Words", words, "WordConfidences", WordConfidences)
+
+endfunction
diff --git a/macros/opencv_imread.bin b/macros/opencv_imread.bin
new file mode 100644
index 0000000..5e5b482
Binary files /dev/null and b/macros/opencv_imread.bin differ
diff --git a/macros/opencv_imread.sci b/macros/opencv_imread.sci
new file mode 100644
index 0000000..3dd72d9
--- /dev/null
+++ b/macros/opencv_imread.sci
@@ -0,0 +1,11 @@
+function[dstMat] = opencv_imread(matA)
+
+ out = opencv_imread(matA)
+
+ channel = size(out)
+
+ for i = 1: channel
+ dstMat(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/opticalFlowFarneback.bin b/macros/opticalFlowFarneback.bin
new file mode 100644
index 0000000..cfb63fd
Binary files /dev/null and b/macros/opticalFlowFarneback.bin differ
diff --git a/macros/opticalFlowFarneback.sci b/macros/opticalFlowFarneback.sci
new file mode 100644
index 0000000..1bc2ccf
--- /dev/null
+++ b/macros/opticalFlowFarneback.sci
@@ -0,0 +1,21 @@
+function opticalFlowFarneback(varargin)
+ [lhs rhs] = argn(0);
+ if(rhs>12)
+ error(msprintf("Too many input arguments"));
+ end
+ if(rhs==0) then
+ opencv_opticalFlowFarneback();
+ elseif (rhs==2) then
+ opencv_opticalFlowFarneback(varargin(0),varargin(1));
+ elseif(rhs==4) then
+ opencv_opticalFlowFarneback(varargin(0),varargin(1),varargin(2),varargin(3));
+ elseif(rhs==6) then
+ opencv_opticalFlowFarneback(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5));
+ elseif(rhs==8) then
+ opencv_opticalFlowFarneback(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7));
+ elseif(rhs==10) then
+ opencv_opticalFlowFarneback(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9));
+ elseif(rhs==12) then
+ opencv_opticalFlowFarneback(varargin(0),varargin(1),varargin(2),varargin(3),varargin(4),varargin(5),varargin(6),varargin(7),varargin(8),varargin(9),varargin(10),varargin(11));
+ end
+endfunction
diff --git a/macros/partition.bin b/macros/partition.bin
new file mode 100644
index 0000000..83c9bbe
Binary files /dev/null and b/macros/partition.bin differ
diff --git a/macros/partition.sci b/macros/partition.sci
new file mode 100644
index 0000000..b830597
--- /dev/null
+++ b/macros/partition.sci
@@ -0,0 +1,52 @@
+function [varargout]=partition(imageSet,groupSizesOrPercentages,varargin)
+// This function is used to split an imageSet.
+//
+// Calling Sequence
+// [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(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+//
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[5], 'randomized');
+//
+// Authors
+// Rohit Suri
+
+ [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);
+ //sets=list();`
+ select rhs
+ case 2 then
+ sets=opencv_partition(imgSetList,groupSizesOrPercentages);
+ case 3 then
+ sets=opencv_partition(imgSetList,groupSizesOrPercentages,varargin(1));
+ end
+ for i=1:lhs
+ for j=1:size(sets(i)(4)(1),'r')
+ imgLocations(j)=sets(i)(4)(1)(j,1);
+ end
+ varargout(i)=struct('Description',sets(i)(2),'ImageLocation',imgLocations,'Count',int32(sets(i)(3)));
+ imgLocations=[]
+ end
+endfunction
diff --git a/macros/peopleDetector.bin b/macros/peopleDetector.bin
new file mode 100644
index 0000000..ed37ffb
Binary files /dev/null and b/macros/peopleDetector.bin differ
diff --git a/macros/peopleDetector.sci b/macros/peopleDetector.sci
new file mode 100644
index 0000000..1770ae3
--- /dev/null
+++ b/macros/peopleDetector.sci
@@ -0,0 +1,79 @@
+function bboxes = peopleDetector(image, varargin)
+// Detects people in an image
+//
+// Calling Sequence
+// [bboxes] = peopleDetector(image)
+// [bboxes] = peopleDetector(image, ["Parameter1", value1, ["Parameter2", value2 ... ]])
+//
+// Parameters
+// image : input image
+// hitThreshold : threshold for distance between features and SVM classifying plane. Default value is 0.
+// winStride : Window stride. Multiple of block stride. Default value (8, 8)
+// padding : Default value (16, 16).
+// scale : Coefficient of the detection window increase. Default value 1.05
+// finalThreshold : Coefficient to regulate the similarity threshold. Some people may cover more boxex. To regulate that it is used. Default value 2.
+// useMeanshiftGrouping : Default value false.
+// bboxes : M * 4 matrix denoting M bounding boxes for detected people
+//
+// Description
+// The peopleDetector function detects standing people in the image using the Histogram of Oriented Gradient (HOG) features and a trained Support Vector Machine
+// (SVM) classifier. It detects standing peole in the image. It returns M * 4 matrix having M detected people in the image. Each row of matrix contains
+// [x, y, width, height] field. x, y represent the upper left corner point of the bounding box. width and height represent the width and height of the bounding box
+// respectively.
+//
+// Examples
+// I = imread('standing.jpg')
+// [bboxes] = peopleDetector(I)
+// I = imread('standing.jpg')
+// [bboxes] = peopleDetector(I, "scale", 1.02)
+//
+// Authors
+// Suraj Prakash
+
+
+
+ [ lhs rhs ] = argn(0)
+
+ if lhs > 1 then
+ error(msprintf("Too many output arguments"))
+ end
+
+ if rhs > 13 then
+ error(msprintf("Too many input arguments"))
+ end
+
+ if modulo(rhs, 2) <> 1 then
+ error(msprintf("Wrong number of input arguments"))
+ end
+
+ image_list = mattolist(image)
+
+ if rhs == 1 then
+
+ bboxes = opencv_peopleDetector(image_list)
+
+ elseif rhs == 3 then
+
+ bboxes = opencv_peopleDetecotr(image_list, varargin(1), varargin(2))
+
+ elseif rhs == 5 then
+
+ bboxes = opencv_peopleDetector(image_list, varargin(1), varargin(2), varargin(3), varargin(4))
+
+ elseif rhs == 7 then
+
+ bboxes = opencv_peopleDetector(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6))
+
+ elseif rhs == 9 then
+
+ bboxes = opencv_peopleDetector(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varagin(7), varagin(8))
+
+ elseif rhs == 11 then
+
+ bboxes = opencv_peopleDetector(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10))
+
+ elseif rhs == 13 then
+ bboxes = opencv_peopleDetector(image_list, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12))
+ end
+
+endfunction
diff --git a/macros/predict.bin b/macros/predict.bin
new file mode 100644
index 0000000..5ebccdc
Binary files /dev/null and b/macros/predict.bin differ
diff --git a/macros/predict.sci b/macros/predict.sci
new file mode 100644
index 0000000..99a701e
--- /dev/null
+++ b/macros/predict.sci
@@ -0,0 +1,32 @@
+function classifierDescription = predict(Categoryclassifier, image)
+// This function is used to predict the category of an image using an image classifier.
+//
+// Calling Sequence
+// label = predict(classifier, image)
+//
+// Parameters
+// label: Evaluated label of the input image
+// classifier: Image category classifier
+// image: Input image
+//
+// Description
+// This function predicts the category of an image based on the category classifier provided.
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// categoryClassifier = trainImageCategoryClassifier(trainingSet, bag);
+// image = imread('sample.jpg');
+// label = predict(categoryClassifier, image);
+//
+// Authors
+// Rohit Suri
+// Umang Agrawal
+
+ image_list = mattolist(image)
+ Categoryclassifier_list = classifierToList(Categoryclassifier);
+
+ classifierDescription = opencv_predict(Categoryclassifier_list, image_list)
+
+endfunction
diff --git a/macros/puttext.bin b/macros/puttext.bin
new file mode 100644
index 0000000..4658fc0
Binary files /dev/null and b/macros/puttext.bin differ
diff --git a/macros/puttext.sci b/macros/puttext.sci
new file mode 100644
index 0000000..06a0c2b
--- /dev/null
+++ b/macros/puttext.sci
@@ -0,0 +1,31 @@
+function new_image = puttext(image, x1, y1, fontscale, r_value, g_value, b_value, text, fontface, varargin)
+
+ /// varargin(1) = thickness = 1,
+ /// varargin(2) = linetype = 8,
+ /// varargin(3) = bottomleft = false
+
+ [ lhs, rhs ] = argn(0)
+
+ image_list = mattolist(image)
+
+ select rhs
+ case 9 then
+ out = opencv_puttext(image_list, x1, y1, fontscale, r_value, g_value, b_value, text, fontface)
+
+ case 10 then
+ out = opencv_puttext(image_list, x1, y1, fontscale, r_value, g_value, b_value, text, fontface, varargin(1))
+
+ case 11 then
+ out = opencv_puttext(image_list, x1, y1, fontscale, r_value, g_value, b_value, text, fontface, varargin(1), varargin(2))
+
+ case 12 then
+ out = opencv_puttext(image_list, x1, y1, fontscale, r_value, g_value, b_value, text, fontface, varargin(1), varargin(2), varargin(3))
+ end
+
+ sz = size(out)
+
+ for i = 1 : sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/pyrDown.bin b/macros/pyrDown.bin
new file mode 100644
index 0000000..c6031e3
Binary files /dev/null and b/macros/pyrDown.bin differ
diff --git a/macros/pyrDown.sci b/macros/pyrDown.sci
new file mode 100644
index 0000000..999adb8
--- /dev/null
+++ b/macros/pyrDown.sci
@@ -0,0 +1,9 @@
+function [out]=pyrDown(input_image, dstsize_width, distsize_height, border)
+ input_image1=mattolist(input_image);
+ a=opencv_pyrDown(input_image1, dstsize_width, distsize_height, border);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/pyrMeanShiftFiltering.bin b/macros/pyrMeanShiftFiltering.bin
new file mode 100644
index 0000000..7edaf41
Binary files /dev/null and b/macros/pyrMeanShiftFiltering.bin differ
diff --git a/macros/pyrMeanShiftFiltering.sci b/macros/pyrMeanShiftFiltering.sci
new file mode 100644
index 0000000..63b6d8e
--- /dev/null
+++ b/macros/pyrMeanShiftFiltering.sci
@@ -0,0 +1,8 @@
+function [outputImg]=pyrMeanShiftFiltering(inputImage,sp,sr)
+ inputList=mattolist(inputImage);
+ outputList=opencv_pyrMeanShiftFiltering(inputList,sp,sr);
+
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/pyrMeanShiftFiltering.sci~ b/macros/pyrMeanShiftFiltering.sci~
new file mode 100644
index 0000000..02d6e7e
--- /dev/null
+++ b/macros/pyrMeanShiftFiltering.sci~
@@ -0,0 +1,8 @@
+function [outputImg]=pyrMeanShiftFiltering(inputImage,sp,sr)
+ inputList=mattolist(inputImage);
+ outputList=opencv_pyrMeanShiftFiltering(inputList,sp,sr);
+ end
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/pyrUp.bin b/macros/pyrUp.bin
new file mode 100644
index 0000000..41ad975
Binary files /dev/null and b/macros/pyrUp.bin differ
diff --git a/macros/pyrUp.sci b/macros/pyrUp.sci
new file mode 100644
index 0000000..b84b0b9
--- /dev/null
+++ b/macros/pyrUp.sci
@@ -0,0 +1,9 @@
+function [out]=pyrUp(input_image, dstsize_width, distsize_height, border)
+ input_image1=mattolist(input_image);
+ a=opencv_pyrUp(input_image1, dstsize_width, distsize_height, border);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/pyramid.bin b/macros/pyramid.bin
new file mode 100644
index 0000000..7615a51
Binary files /dev/null and b/macros/pyramid.bin differ
diff --git a/macros/pyramid.sci b/macros/pyramid.sci
new file mode 100644
index 0000000..29d6c1e
--- /dev/null
+++ b/macros/pyramid.sci
@@ -0,0 +1,35 @@
+function [out]=pyramid(inputimage,direction,level)
+// 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 expansion
+//
+// 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('lena.jpeg');
+// a=opencv_pyramid(inputimage1,'expand',2);
+// imshow(a);
+//
+// Authors:
+//
+//Diwakar Bhardwaj
+
+
+
+ inputimage1=mattolist(inputimage);
+ a=opencv_pyramid(inputimage1,direction,level);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/readForegroundMask.bin b/macros/readForegroundMask.bin
new file mode 100644
index 0000000..a962df3
Binary files /dev/null and b/macros/readForegroundMask.bin differ
diff --git a/macros/readForegroundMask.sci b/macros/readForegroundMask.sci
new file mode 100644
index 0000000..12db37e
--- /dev/null
+++ b/macros/readForegroundMask.sci
@@ -0,0 +1,37 @@
+function varargout=readForegroundMask(varargin)
+// This function computes the foreground mask for the input image.
+//
+// Calling Sequence
+// mask = readForegroundMask(image)
+//
+// Parameters
+// mask: the computed foreground mask.
+// image : the input image
+//
+//
+// Description
+// This function returns the foreground mask for an image using Gaussian Mixed Models.
+//
+// Examples
+// myStr = ForegroundDetector()
+// myVideo = VideoReader('sample.mp4');
+// while hasFrame()
+// frame = readFrame();
+// mask = readForegroundMask(frame);
+// end
+//
+//
+// Authors
+// Shashank Shekhar
+[lhs,rhs]=argn(0)
+ if rhs<1 then
+ error(msprintf(" Not enough input arguments"))
+ end
+ if rhs>1 then
+ error(msprintf(" Too many input arguments to the function"))
+ end
+ if lhs>1 then
+ error(msprintf(" Too many output arguments"))
+ end
+ varargout(1) = ocv_readForegroundMask(varargin(1));
+endfunction
diff --git a/macros/readframe.bin b/macros/readframe.bin
new file mode 100644
index 0000000..1ae7401
Binary files /dev/null and b/macros/readframe.bin differ
diff --git a/macros/readframe.sci b/macros/readframe.sci
new file mode 100644
index 0000000..747c4de
--- /dev/null
+++ b/macros/readframe.sci
@@ -0,0 +1,23 @@
+function [out]=readFrame(input)
+// This function is used to return the next frame pointed to by the CurrentTime Property of A VideoReader Struct.
+//
+// Calling Sequence
+// results = readFrame();
+//
+// Parameters
+// results: Frame of video.
+//
+// Description
+// This function checks whether there is a next frame to grab in the video read through VideoReader and returns the frame.
+//
+// Examples
+// videoStr = VideoReader('sample.mp4');
+// if(hasFrame()) then
+// frame = readFrame()
+// end
+//
+// Authors
+// Shashank Shekhar
+// Tanmay Chaudhari
+ out=ocv_readFrame();
+endfunction;
diff --git a/macros/rectangle.bin b/macros/rectangle.bin
new file mode 100644
index 0000000..892d563
Binary files /dev/null and b/macros/rectangle.bin differ
diff --git a/macros/rectangle.sci b/macros/rectangle.sci
new file mode 100644
index 0000000..b8c6857
--- /dev/null
+++ b/macros/rectangle.sci
@@ -0,0 +1,9 @@
+function [out]=rectangle(input_image , x_coordinate_of_point1 , y_coordinate_point1, x_coordinate_of_point2 , y_coordinate_point2 , r_value,g_value,b_value,thickness,linetype,shift)
+ input_image1=mattolist(input_image);
+ a=opencv_rectangle(input_image , x_coordinate_of_point1 , y_coordinate_point1, x_coordinate_of_point2 , y_coordinate_point2 , r_value,g_value,b_value,thickness,linetype,shift);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+
+endfunction;
diff --git a/macros/rectifyStereoImages.bin b/macros/rectifyStereoImages.bin
new file mode 100644
index 0000000..c96dc09
Binary files /dev/null and b/macros/rectifyStereoImages.bin differ
diff --git a/macros/rectifyStereoImages.sci b/macros/rectifyStereoImages.sci
new file mode 100644
index 0000000..a6f16fe
--- /dev/null
+++ b/macros/rectifyStereoImages.sci
@@ -0,0 +1,59 @@
+function [out]=rectifyStereoImages(input_image1,cameramatrix1,Distortion_coff1,input_image2,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector)
+// Rectify the pair of image taken by stereo camera
+//
+// Calling Sequence
+// [left_image,right_image] = rectifyStereoImages (input_image1,cameramatrix1,Distortion_coff1,input_image2,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector)
+// left_image = rectified input_image1
+// right_image = rectified input_image2
+//
+// Parameters
+//
+// input_image1 : First Stereo image on which rectification has to be performed
+// Cameramatrix1 : An input matrix of 3*3
+// Distortion_coff1 : A vector of size 4 ,5 or 8
+// input_image2 : Second Stereo image on which rectification has to be performed
+// Cameramatrix2 : An input matrix of 3*3
+// Distortion_coff2 : A vector of size 4 ,5 or 8
+// Translationvector : A vector of size 3
+// Rotationvector : An input matrix of 3*3
+// left_image : rectified input_image1
+// right_image : rectfied input_image2
+//
+// Description
+// This function first undistorted and then rectified the both image1 and image2.It uses camera parameters,respective rotation,translation of both camera.
+//
+// Examples
+// a = imread('lena.jpeg')
+// cameramatrix1 = [1 0 1;0 1 1;0 0 1];
+// Distortion_coff1 = [200 200 400 300];
+// b = imread('lena.jpeg')
+// cameramatrix2 = [2 0 1;0 1 1;0 0 1];
+// Distortion_coff2 = [205 240 410 370];
+// Translationvector = [1 2 3];
+// Rotationvector = [0 0 2;1 4 5;6 7 8];
+// [left_image,right_image] = rectifyStereoImages(a,cameramatrix1,Distortion_coff1,b,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector);
+// imshow(left_image);
+// imshow(right_image);
+//
+// Authors.
+//
+//Diwakar Bhardwaj
+
+ input_image3=mattolist(input_image1);
+ input_image4=mattolist(input_image2);
+ [left_image right_image]=rectifyStereoImages(input_image3,cameramatrix1,Distortion_coff1,input_image4,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector);
+
+ dimension1=size(left_image)
+ for i = 1:dimension1
+ left_out(:,:,i)=left_image(i);
+ end
+
+ dimension2=size(right_image)
+ for j = 1:dimension2
+ right_out(:,:,j)=right_image(j);
+ end
+
+
+ out=struct("left_rectifyimage",left_out,"right_rectifyimage",right_out);
+
+endfunction;
diff --git a/macros/rectifyStereoImages.sci~ b/macros/rectifyStereoImages.sci~
new file mode 100644
index 0000000..2cd9c54
--- /dev/null
+++ b/macros/rectifyStereoImages.sci~
@@ -0,0 +1,59 @@
+function [out]=rectifyStereoImages(input_image1,cameramatrix1,Distortion_coff1,input_image2,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector)
+// Rectify the pair of image taken by stereo camera
+//
+// Calling Sequence
+// [left_image,right_image] = rectifyStereoImages (input_image1,cameramatrix1,Distortion_coff1,input_image2,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector)
+// left_image = rectified input_image1
+// right_image = rectified input_image2
+//
+// Parameters
+//
+// input_image1 : First Stereo image on which rectification has to be performed
+// Cameramatrix1 : An input matrix of 3*3
+// Distortion_coff1 : A vector of size 4 ,5 or 8
+// input_image2 : Second Stereo image on which rectification has to be performed
+// Cameramatrix2 : An input matrix of 3*3
+// Distortion_coff2 : A vector of size 4 ,5 or 8
+// Translationvector : A vector of size 3
+// Rotationvector : An input matrix of 3*3
+// left_image : rectified input_image1
+// right_image : rectfied input_image2
+//
+// Description
+// This function first undistorted and then rectified the both image1 and image2.It uses camera parameters,respective rotation,translation of both camera.
+//
+// Examples
+// a = imread('lena.jpeg')
+// cameramatrix1 = [1 0 1;0 1 1;0 0 1];
+// Distortion_coff1 = [200 200 400 300];
+// b = imread('lena.jpeg')
+// cameramatrix2 = [2 0 1;0 1 1;0 0 1];
+// Distortion_coff2 = [205 240 410 370];
+// Translationvector = [1 2 3];
+// Rotationvector = [0 0 2;1 4 5;6 7 8];
+// [left_image,right_image] = rectifyStereoImages(a,cameramatrix1,Distortion_coff1,b,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector);
+// imshow(left_image);
+// imshow(right_image);
+//
+// Authors.
+//
+//Diwakar Bhardwaj
+
+ input_image3=mattolist(input_image1);
+ input_image4=mattolist(input_image2);
+ [left_image right_image]=rectifyStereoImages(input_image3,cameramatrix1,Distortion_coff1,input_image4,cameramatrix2,Distortioncoff2,Translationvector,Rotationvector);
+
+ dimension1=size(left_image)
+ for i = 1:dimension1
+ left_out(:,:,i)=left_image(i);
+ end
+
+ dimension2=size(right_image)
+ for j = 1:dimension2
+ right_out(:,:,j)=right_image(j);
+ end
+
+
+ out=struct("left_rectifyimage",left_out,"right_rectifyimage",right_out);
+
+endfunction;*
diff --git a/macros/regionfill.bin b/macros/regionfill.bin
new file mode 100644
index 0000000..fa7e696
Binary files /dev/null and b/macros/regionfill.bin differ
diff --git a/macros/regionfill.sci b/macros/regionfill.sci
new file mode 100644
index 0000000..74c4779
--- /dev/null
+++ b/macros/regionfill.sci
@@ -0,0 +1,18 @@
+function[dstImg] = regionfill(srcImg, varargin)
+
+ [lhs, rhs] = argn(0)
+
+ srcMat = mattolist(srcImg)
+
+ if rhs == 2 then
+ out = opencv_regionfill(srcMat, varargin(1))
+ elseif rhs == 2 then
+ out = opencv_regionfill(srcMat, varargin(1), varargin(2))
+ end
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+endfunction
diff --git a/macros/retrieveImages.bin b/macros/retrieveImages.bin
new file mode 100644
index 0000000..a0cd3bf
Binary files /dev/null and b/macros/retrieveImages.bin differ
diff --git a/macros/retrieveImages.sci b/macros/retrieveImages.sci
new file mode 100644
index 0000000..0c8f8a2
--- /dev/null
+++ b/macros/retrieveImages.sci
@@ -0,0 +1,103 @@
+function [varargout] = retrieveImages(QueryImage, IndexImage, varargin)
+// This function searches for similar image in a given image set
+//
+// Calling Sequence
+// [imageID Score ImageWord] = retrieveImage(QueryImage, IndexImage, Name, Value... )
+//
+// Parameters
+// QueryImage: The query image, for which the similar image has to be found. Can be a grayscale or a RGB image
+// IndexImage: imageIndex object that contains the data set of all the images to be compared
+// NumResults [Optional Input Argument]: Maximum number of results to be returned. Value: any integer (20 default)
+// ROI [Optional Input Argument]: Query Image search region. Format [ x y width height ]. Default: [1 1 size(Image,2) size(Image,1)]
+// imageID: M-by-1 vector consisting of Ranked Index of retrieved Images
+// Score: M-by-1 vector containing the similarity metric in the range 0 to 1
+// ImageWord: Visual Word mapped object for the Query Image
+//
+// Description
+// Returns the indices corresponding to Images within imageIndex that are visually similar to the query Image
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// imageindex = indexImages(trainingSet, bag);
+// queryImage = imread('sample.jpg');
+// imageIDs = retrieveImages(queryImage, imageindex);
+//
+// With Optional Arguments:
+// imageIDs = retrieveImages(queryImage, imageindex, "NumResults", 10);
+//
+// Authors
+// Umang Agrawal
+// Rohit Suri
+
+ /// varargout(1) = index
+ /// varargout(2) = score
+ /// varargout(3) = Imageword
+
+ [ lhs rhs ] = argn(0)
+
+ if rhs > 6 then
+ error(msprintf("Too many input arguments"))
+ end
+
+ if lhs > 3 then
+ error(msprintf("Too many output arguments"))
+ end
+
+ QueryImage_list = mattolist(QueryImage)
+
+ if lhs == 1 then
+ select rhs
+ case 2 then
+
+ index = opencv_retrieveImages(QueryImage_list, IndexImage)
+
+ case 4 then
+
+ index = opencv_retrieveImages(QueryImage_list, IndexImage, varargin(1), varargin(2))
+
+ case 6 then
+ index = opencv_retrieveImages(QueryImage_list, IndexImage, varargin(1), varargin(2), varagin(3), varargin(4))
+ end
+
+ varargout(1) = index
+
+ elseif lhs == 2 then
+ select rhs
+ case 2 then
+
+ [index, score] = opencv_retrieveImages(QueryImage_list, IndexImage)
+
+ case 4 then
+
+ [index, score] = opencv_retrieveImages(QueryImage_list, IndexImage, varargin(1), varargin(2))
+
+ case 6 then
+ [index, score] = opencv_retrieveImages(QueryImage_list, IndexImage, varargin(1), varargin(2), varagin(3), varargin(4))
+ end
+
+ varargout(1) = temp
+ varargout(2) = score
+
+ elseif lhs == 3 then
+ select rhs
+ case 2 then
+
+ [index, score, Imageword] = opencv_retrieveImages(QueryImage_list, IndexImage)
+
+ case 4 then
+
+ [index, score, Imageword] = opencv_retrieveImages(QueryImage_list, IndexImage, varargin(1), varargin(2))
+
+ case 6 then
+ [index, score, Imageword] = opencv_retrieveImages(QueryImage_list, IndexImage, varargin(1), varargin(2), varagin(3), varargin(4))
+ end
+
+ varargout(1) = index
+ varargout(2) = score
+ del = struct("WordIndex", Imageword(1), "Location", Imageword(2), "Vocab_size", Imageword(3), "Count", Imageword(4))
+ varargout(3) = del
+ end
+
+endfunction
diff --git a/macros/rgb2lab.bin b/macros/rgb2lab.bin
new file mode 100644
index 0000000..9c4261a
Binary files /dev/null and b/macros/rgb2lab.bin differ
diff --git a/macros/rgb2lab.sci b/macros/rgb2lab.sci
new file mode 100644
index 0000000..0035bd5
--- /dev/null
+++ b/macros/rgb2lab.sci
@@ -0,0 +1,10 @@
+//Author- Sridhar Reddy
+//inputImage should be matrix
+function [outputImg]=rgb2lab(inputImage)
+ inputList=mattolist(inputImage);
+ outputList=opencv_rgb2lab(inputList);
+ disp(outputList(2));
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/rgb2ntsc.bin b/macros/rgb2ntsc.bin
new file mode 100644
index 0000000..9fd18dd
Binary files /dev/null and b/macros/rgb2ntsc.bin differ
diff --git a/macros/rgb2ntsc.sci b/macros/rgb2ntsc.sci
new file mode 100644
index 0000000..6fdcede
--- /dev/null
+++ b/macros/rgb2ntsc.sci
@@ -0,0 +1,8 @@
+function [output] = rgb2ntsc(img)
+ image = mattolist(img);
+ a = opencv_rgb2ntsc(image);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/rgb2xyz.bin b/macros/rgb2xyz.bin
new file mode 100644
index 0000000..9ab02d5
Binary files /dev/null and b/macros/rgb2xyz.bin differ
diff --git a/macros/rgb2xyz.sci b/macros/rgb2xyz.sci
new file mode 100644
index 0000000..b15d2ce
--- /dev/null
+++ b/macros/rgb2xyz.sci
@@ -0,0 +1,8 @@
+function [output] = rgb2xyz(img)
+ image = mattolist(img);
+ a = opencv_rgb2xyz(image);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/roifill.bin b/macros/roifill.bin
new file mode 100644
index 0000000..cf3fa1b
Binary files /dev/null and b/macros/roifill.bin differ
diff --git a/macros/roifill.sci b/macros/roifill.sci
new file mode 100644
index 0000000..b69288a
--- /dev/null
+++ b/macros/roifill.sci
@@ -0,0 +1,28 @@
+function new_image = roifill(image, mask_orig, varargin)
+
+ [ lhs, rhs ] = argn(0)
+
+ if rhs < 2 then
+ error(msprintf("Too less input arguments"))
+ elseif rhs > 3 then
+ error(msprintf("Too many input arguments"))
+ end
+
+
+ image_list = mattolist(image)
+
+
+ select rhs
+ case 2
+ out = opencv_roifill(image_list, mask_orig)
+
+ case 3
+ out = opencv_roifill(image_list, mask_orig, varargin(1))
+ end
+
+ sz = size(out)
+ for i=1 : sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/roipoly.bin b/macros/roipoly.bin
new file mode 100644
index 0000000..770dca6
Binary files /dev/null and b/macros/roipoly.bin differ
diff --git a/macros/roipoly.sci b/macros/roipoly.sci
new file mode 100644
index 0000000..4323812
--- /dev/null
+++ b/macros/roipoly.sci
@@ -0,0 +1,13 @@
+function[dstImg] = roipoly(srcImg, col_list, row_list)
+
+ srcMat = mattolist(srcImg)
+
+ out = opencv_roipoly(srcMat, col_list, row_list)
+
+ channels = size(out)
+
+ for i = 1:channels
+ dstImg(:,:,i) = out(i)
+ end
+
+endfunction
diff --git a/macros/rotationVectorToMatrix.bin b/macros/rotationVectorToMatrix.bin
new file mode 100644
index 0000000..252c686
Binary files /dev/null and b/macros/rotationVectorToMatrix.bin differ
diff --git a/macros/rotationVectorToMatrix.sci b/macros/rotationVectorToMatrix.sci
new file mode 100644
index 0000000..abe97f9
--- /dev/null
+++ b/macros/rotationVectorToMatrix.sci
@@ -0,0 +1,24 @@
+function [ matrix ] = rotationVectorToMatrix(vector)
+// Returns rotation matrix.
+//
+// Calling Sequence
+// matrix = rotationVectorToMatrix(vector);
+//
+// Parameters
+// matrix: rotation matrix
+// vector: 3-D rotation vector
+//
+// Description
+// Converts rotation vector to rotation matrix.
+//
+// Examples
+// vector = pi/4 * [1, 2, 3];
+// matrix = rotationVectorToMatrix(vector);
+//
+// Authors
+// Tanmay Chaudhari
+
+ a=opencv_rotationVectorToMatrix(vector);
+ matrix(:,:,1)=a(1);
+
+endfunction
diff --git a/macros/scharr.bin b/macros/scharr.bin
new file mode 100644
index 0000000..f803903
Binary files /dev/null and b/macros/scharr.bin differ
diff --git a/macros/scharr.sci b/macros/scharr.sci
new file mode 100644
index 0000000..53d1903
--- /dev/null
+++ b/macros/scharr.sci
@@ -0,0 +1,13 @@
+function new_image = scharr(image, ddepth, dx, dy, scale, delta)
+
+ image_list = mattolist(image)
+
+ out = opencv_scharr(image_list, ddepth, dx, dy, scale, delta)
+
+ sz = size(out)
+
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/selectStrongestBbox.bin b/macros/selectStrongestBbox.bin
new file mode 100644
index 0000000..c9c3502
Binary files /dev/null and b/macros/selectStrongestBbox.bin differ
diff --git a/macros/selectStrongestBbox.sci b/macros/selectStrongestBbox.sci
new file mode 100644
index 0000000..57c3ac4
--- /dev/null
+++ b/macros/selectStrongestBbox.sci
@@ -0,0 +1,147 @@
+function [selectedBbox,selectedScore,varargout]=selectStrongestBbox(bBox,score,varargin)
+// Selecting strongest bounding boxes
+//
+// Calling Sequence
+// [selectedBbox, selectedScore]= selectStrongestBbox(bBox,score);
+// [selectedBbox, selectedScore]= selectStrongestBbox(bBox,score,Name,Value);
+// [selectedBbox, selectedScore, selectionIndex]= selectStrongestBbox(bBox,score,Name,Value);
+//
+// Parameters
+// bBox: Each row represents one bounding box specified as [x y width height];
+// score: Confidence Score of bounding box
+// varargin: optinal (Name,Value) pair arguments
+// Optional arguments can be
+//
+// RatioType: method to compute the ratio of the intersection area between two boxes and it is specified as string, possile values are 'Union', 'Min'
+// overlapThreshold: It specifies maximum overlap ratio, if overlap ration is more than this corresponding bounding box will be removed, possible range is 0 to 1
+//
+//
+// Description
+// Returns strongest bounding boxes as per the given RatioType and OverlapThreshold and additionally it returns the index of the selected boxes
+//
+// Examples
+// box(1)=[100 200 150 140];
+// box(2)=[100 180 140 160];
+// score(1)=0.03;
+// score(2)=0.05;
+// [sb ss]=selectStrongestBbox(box,score);
+
+ [lhs,rhs]=argn(0)
+
+ if rhs<2 then
+ error(msprintf(" Not enough input arguments"))
+ elseif rhs>6 then
+ error(msprintf(" Too many input arguments to the function"))
+ elseif lhs<2 then
+ error(msprintf(" Not enough output arguments"))
+ elseif lhs>3 then
+ error(msprintf(" Too many output arguments"))
+ end
+ [bBoxRows bBoxCols]=size(bBox);
+ [scoreRows scoreCols]=size(score);
+ if ~bBoxCols==4 then
+ error(msprintf("bounding box matrix must be M*4"))
+ elseif ~scoreCols==1 then
+ error(msprintf(" score matrix must be M*1"))
+ elseif ~bBoxRows==scoreRows then
+ error(msprintf(" The number of bounding boxes and scores should be same"))
+ elseif ~isreal(bBox)
+ error(msprintf(" Wrong input argument,complex matrix is not expected"))
+ end
+ for i=1:bBoxRows
+ if bBox(i,3)<0 | bBox(i,4)<0
+ error(msprintf(" The width and height of the bounded box must be positive"))
+ end
+ end
+
+ ratioType=1;
+ overlapThreshold=0.5;
+ for i=1:2:rhs-2
+ if strcmpi(varargin(i),"RatioType")==0 then
+ i=i+1;
+ if strcmpi(varargin(i),'union')== 0 then
+ ratioType=1;//1-union
+ elseif strcmpi(varargin(i),'min')==0 then
+ ratioType=0;//0-min
+ else
+ error(msprintf(" wrong value for the ratio type,it must be union or min"))
+ end
+ elseif strcmpi(varargin(i),'OverlapThreshold')==0 then
+ i=i+1;
+ if 0<=varargin(i) & varargin(i)<=1 then
+ overlapThreshold=varargin(i)
+ else
+ error(msprintf("wrong value for the overlapThreshold,it must be in between 0 and 1"))
+ end
+ else
+ error(msprintf(_(" Wrong value for input argument")));
+ end
+ end
+ for i=1:bBoxRows
+ index(i)=i;
+ end
+ score_temp=score(:,1);
+ for i=1:bBoxRows
+ for j=i+1:bBoxRows
+ if score_temp(i,1) overlapThreshold
+ selection(j) = 0;
+ end
+ end
+ end
+ end
+ end
+ k=1;
+ for i=1:bBoxRows
+ if selection(i)
+ selectionIndex(k)=i;
+ indexOriginal(k)=index(i);
+ k=k+1;
+ end
+ end
+ //disp(indexOriginal);
+ [selectedIndexRows selectedIndexRows]=size(selectionIndex)
+ for i=1:selectedIndexRows
+ for j=i+1:selectedIndexRows
+ if indexOriginal(i)>indexOriginal(j)
+ temp=indexOriginal(i);
+ indexOriginal(i)=indexOriginal(j)
+ indexOriginal(j)=temp;
+ end
+ end
+ end
+ //disp("original indexes");
+ //disp(indexOriginal);
+ selectedBbox=bBox(indexOriginal,:);
+ selectedScore=score(indexOriginal,:);
+ varargout(1)=indexOriginal;
+endfunction
diff --git a/macros/sepFilter2D.bin b/macros/sepFilter2D.bin
new file mode 100644
index 0000000..b6fd319
Binary files /dev/null and b/macros/sepFilter2D.bin differ
diff --git a/macros/sepFilter2D.sci b/macros/sepFilter2D.sci
new file mode 100644
index 0000000..2edfee1
--- /dev/null
+++ b/macros/sepFilter2D.sci
@@ -0,0 +1,13 @@
+function new_image = sepFilter2D(image, ddepth, kernel_x, kernel_y, anchor_x, anchor_y, delta, border)
+
+ image_list = mattolist(image)
+
+ out = opencv_sepFilter2D(image_list, ddepth, kernel_x, kernel_y, anchor_x, anchor_y, delta, border)
+
+ sz = size(out)
+
+ for i = 1 : sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/show.bin b/macros/show.bin
new file mode 100644
index 0000000..960ba2d
Binary files /dev/null and b/macros/show.bin differ
diff --git a/macros/show.sci b/macros/show.sci
new file mode 100644
index 0000000..aec4db8
--- /dev/null
+++ b/macros/show.sci
@@ -0,0 +1,18 @@
+ function[] =show(Img,ColorMap)
+ FigureHandle = gcf();
+ drawlater();
+ FigureHandle.color_map = ColorMap
+ FigureHandle.background = -2; // sets the background to white
+ FigureHandle.figure_name = "Title";
+ [NumberOfRows NumberOfColumns] = size(Img);
+ FigureHandle.axes_size = [NumberOfColumns NumberOfRows];
+ delete(gca()); // previous image is deleted
+ Diagram = gca();
+ [NumberOfRows NumberOfColumns] = size(Img);
+ Diagram.data_bounds = [1, 1; NumberOfColumns, NumberOfRows];
+ Diagram.axes_visible = ['off' 'off' 'off'];
+ Diagram.isoview = 'on';
+ Options = '082'; // Box is drawn around image.
+ Matplot(Img, Options);
+ drawnow();
+ endfunction
diff --git a/macros/showMatchedFeatures.bin b/macros/showMatchedFeatures.bin
new file mode 100644
index 0000000..edf37bc
Binary files /dev/null and b/macros/showMatchedFeatures.bin differ
diff --git a/macros/showMatchedFeatures.sci b/macros/showMatchedFeatures.sci
new file mode 100644
index 0000000..f1608f5
--- /dev/null
+++ b/macros/showMatchedFeatures.sci
@@ -0,0 +1,10 @@
+function [output] = showMatchedFeatuers(image1,image2)
+ img1 = mattolist(image1);
+ img2 = mattolist(image2);
+ a = opencv_showMatchedFeatures(img1,img2)
+ d = size(a);
+ for i = 1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
+
diff --git a/macros/showReprojectionErrors.bin b/macros/showReprojectionErrors.bin
new file mode 100644
index 0000000..2652cc1
Binary files /dev/null and b/macros/showReprojectionErrors.bin differ
diff --git a/macros/showReprojectionErrors.sci b/macros/showReprojectionErrors.sci
new file mode 100644
index 0000000..94a77af
--- /dev/null
+++ b/macros/showReprojectionErrors.sci
@@ -0,0 +1,57 @@
+function showReprojectionErrors(cameraParameters)
+// It displays reprojection errors using bar graph
+//
+// Calling Sequence
+// showReprojectionErrors(cameraParameters)
+//
+// Parameters
+// cameraParameters: cameraParameters strucure
+//
+// Description
+// It visualizes reprojection errors for a single camera or stereo pair if cameras.
+//
+// Examples
+// showReprojectionErrors(cameraParameters);
+ [lhs rhs]=argn(0)
+ if rhs<1 then
+ error(msprintf("Need atleat one argument"));
+ elseif ~isstruct(cameraParameters) then
+ error(msprintf("Given input is not a valid cameraParameters structure"));
+ end
+
+ ReprojectionErrors=cameraParameters.ReprojectionErrors;
+ if ~isempty(ReprojectionErrors) then
+ ReprojectedPoints=cameraParameters.ReprojectedPoints;
+ ReprojectionErrors=cameraParameters.ReprojectionErrors;
+ ImagePoints=ReprojectedPoints-ReprojectionErrors;
+ totalErr=0;
+ rvRows=size(cameraParameters.RotationVectors,'r');
+ wpRows=size(cameraParameters.WorldPoints,'r');
+ for i=1:rvRows
+ err=0;
+ for j=1:wpRows
+ err=err+((ReprojectedPoints(j,1,i)-ImagePoints(j,1,i))+(ReprojectedPoints(j,2,i)-ImagePoints(j,2,i))).^2;
+ end
+ totalErr=totalErr+err;
+ errors(i)=sqrt(err/wpRows);
+ end
+ totalPoints=rvRows*wpRows;
+ meanReprojectionError=sqrt(totalErr/totalPoints);
+ end
+ da=gda();
+ da.title.text="Mean Reprojection Errors per Image"
+ da.title.foreground = 12;
+ da.title.font_size = 5;
+ da.x_label.text="Images";
+ da.x_label.font_style = 3;
+ da.x_label.font_size = 3;
+ da.x_label.foreground = 3;
+ da.x_location = "bottom";
+ da.y_label.text="Mean Reprojection Errors";
+ da.y_label.font_style = 3;
+ da.y_label.font_size = 3;
+ da.y_label.foreground = 3;
+ da.y_location = "left";
+ a=gca();
+ bar(a,errors,0.2); //0.2- width of each bar
+endfunction
diff --git a/macros/sobel.bin b/macros/sobel.bin
new file mode 100644
index 0000000..75cca5c
Binary files /dev/null and b/macros/sobel.bin differ
diff --git a/macros/sobel.sci b/macros/sobel.sci
new file mode 100644
index 0000000..17af909
--- /dev/null
+++ b/macros/sobel.sci
@@ -0,0 +1,13 @@
+function new_image = sobel(image, ddepth, dx, dy, ksize, scale, delta)
+
+ image_list = mattolist(image)
+
+ out = opencv_sobel(image_list, ddepth, dx, dy, ksize, scale, delta)
+
+ sz = size(out)
+
+ for i=1:sz
+ new_image(:, :, i) = out(i)
+ end
+
+endfunction
diff --git a/macros/ssim.bin b/macros/ssim.bin
new file mode 100644
index 0000000..698d61d
Binary files /dev/null and b/macros/ssim.bin differ
diff --git a/macros/ssim.sci b/macros/ssim.sci
new file mode 100644
index 0000000..5972816
--- /dev/null
+++ b/macros/ssim.sci
@@ -0,0 +1,7 @@
+function[ssim_val] = ssim(srcImg, reference)
+
+ srcMat = mattolist(srcImg)
+
+ ssim_val = opencv_ssim(srcMat, reference)
+
+endfunction
diff --git a/macros/stereoParameters.bin b/macros/stereoParameters.bin
new file mode 100644
index 0000000..48889dc
Binary files /dev/null and b/macros/stereoParameters.bin differ
diff --git a/macros/stereoParameters.sci b/macros/stereoParameters.sci
new file mode 100644
index 0000000..502217c
--- /dev/null
+++ b/macros/stereoParameters.sci
@@ -0,0 +1,85 @@
+function varargout=stereoParameters(varargin)
+ [lhs rhs]=argn(0);
+ if lhs<1 then
+ error(msprintf(" Not enough output arguments. One expected"))
+ elseif lhs>1 then
+ error(msprintf(" Too many onput arguments. One expected"))
+ end
+
+ if rhs~=4 then
+ error(msprintf(" Invalid number of input arguments"))
+ end
+
+ EssentialMatrix = [];
+ FundamentalMatrix = [];
+ MeanReprojectionError = 0;
+ NumPatterns = 0;
+ WorldPoints=[];
+ WorldUnits='mm';
+
+ cameraParam1 = varargin(1);
+ cameraParam2 = varargin(2);
+
+ if ~isstruct(cameraParam1) then
+ error(msprintf(" A Camera Parameter object expected"))
+ end
+
+ if ~isstruct(cameraParam2) then
+ error(msprintf(" A Camera Parameter object expected"))
+ end
+
+ xz = fieldnames(cameraParam1);
+ [size1 zz] = size(xz);
+ xz = fieldnames(cameraParam2);
+ [size2 zz] = size(xz);
+
+ if size1~=18 | size2~=18 then
+ error(msprintf(" Invalid Camera Parameter Object"))
+ end
+
+ checkCameraParam(cameraParam1);
+ checkCameraParam(cameraParam2);
+ // checking third input
+
+ rotationOfCam = varargin(3);
+ [type3] = type(rotationOfCam);
+
+ if type3~=1 | ~isreal(rotationOfCam) then
+ error(msprintf(" Invalid Input Argument. A real 3x3 Matrix expected."))
+ end
+
+ [rows cols] = size(rotationOfCam);
+
+ if rows*cols~=9 then
+ error(msprintf(" Invalid Input Argument. A 3x3 Matrix expected."))
+ end
+
+ // checking 4th input
+
+ translationOfCam = varargin(4);
+ [type4] = type(translationOfCam);
+
+ if type4~=1 | ~isreal(translationOfCam) then
+ error(msprintf(" Invalid Input Argument. A real list of 3 expected. "))
+ end
+
+ [rows cols] = size(translationOfCam);
+
+ if rows*cols~=3 then
+ error(msprintf(" Invalid Input Argument. A 3x3 Matrix expected."))
+ end
+
+
+ g = translationOfCam;
+ gx = [0 -g(3) g(2); g(3) 0 -g(1); -g(2) g(1) 0];
+ EssentialMatrix = rotationOfCam*gx;
+ FundamentalMatrix = cameraParam1.IntrinsicMatrix \ EssentialMatrix / (cameraParam2.IntrinsicMatrix)';
+ MeanReprojectionError = (cameraParam1.meanReprojectionError + cameraParam2.meanReprojectionError)/2;
+ NumPatterns = cameraParam1.NumPatterns;
+ WorldPoints = cameraParam1.WorldPoints;
+ WorldUnits = cameraParam1.WorldUnits;
+
+ varargout(1) = struct('CameraParameters1', cameraParam1, 'CameraParameters2', cameraParam2, 'RotationOfCamera2', rotationOfCam, 'TranslationOfCamera2', translationOfCam, 'FundamentalMatrix', FundamentalMatrix, 'EssentialMatrix', EssentialMatrix,'MeanReprojectionError', MeanReprojectionError, 'NumPatterns', NumPatterns, 'WorldPoints', WorldPoints, 'WorldUnits', WorldUnits);
+
+endfunction
+
diff --git a/macros/threshold.bin b/macros/threshold.bin
new file mode 100644
index 0000000..c62923a
Binary files /dev/null and b/macros/threshold.bin differ
diff --git a/macros/threshold.sci b/macros/threshold.sci
new file mode 100644
index 0000000..d9439d6
--- /dev/null
+++ b/macros/threshold.sci
@@ -0,0 +1,7 @@
+function [outputImg,res]= threshold(inputImage, threshold_value, max_value,thresholdType)
+ inputList=mattolist(inputImage);
+ [outputList,res]=opencv_threshold(inputList, threshold_value, max_value,thresholdType)
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/trainCascadeObjectDetector.bin b/macros/trainCascadeObjectDetector.bin
new file mode 100644
index 0000000..d103c5d
Binary files /dev/null and b/macros/trainCascadeObjectDetector.bin differ
diff --git a/macros/trainCascadeObjectDetector.sci b/macros/trainCascadeObjectDetector.sci
new file mode 100644
index 0000000..eb5369a
--- /dev/null
+++ b/macros/trainCascadeObjectDetector.sci
@@ -0,0 +1,163 @@
+function trainCascadeObjectDetector(outputFolder,positiveInstances,negativeImages,varargin)
+// It creates trained cascade XML file
+//
+// Calling Sequence
+// trainCascadeObjectDetector(outputFolder,positiveInstances,"negativeImages")
+//
+// Parameters
+// outputFolder: Folder name to store trained cascade (cascade.xml) and intermediate files
+// positiveInstances: Array of structure with image file names (including path) and an M-by-4 matrix of bounding box.
+// negativeImages: path to a negative images folder
+// numPos: number of positive samples. Default-30
+// numNeg: number of negative samples. Default- 20
+// nsplits: number of splits. Default- 2
+// numStages: number of cascade stages to be trained. Default- 30
+// featureType: Type of features to be used, possible types are HAAR, LBP, HOG. Default-HAAR
+// minHitRate: Minimal desired hit rate for each stage of the classifier and value in the range 0 and 1 inclusive. Default- 0.995
+// maxFalseAlarmRate: Maximal desired false alarm rate for each stage of the classifier and value in the range 0 and 1 inclusive. Default- 0.5
+// w: Width of training samples (in pixels). Default-25
+// h: Height of training samples (in pixels). Default-25
+//
+// Description
+// It produces dataset of positive samples in a file with .vec extension and negative samples are enumerated in a special text file in
+// which each line contains an image filename of negative sample image. Negative images must not contain detected objects.
+//
+// By using these two files trainCascade will create cascade.xml file inside the outputFolder which is used to detect objects in an image.
+//
+// Examples
+// positiveInstances(1)=struct("path",'image1.jpg',"bbox",[1 5 2 3]);
+// positiveInstances(2)=struct("path",'image2.jpg',"bbox",[2 7 4 2]);
+// trainCascadeObjectDetector("data",positiveInstances,"negativeImagesFolder");
+// trainCascadeObjectDetector("data",positiveInstances,"negativeImagesFolder","numStages",35,"featureType","HOG");
+// trainCascadeObjectDetector("data",positiveInstances,"negativeImagesFolder","minHitRate",0.9,"numPos",8,"numNeg",5);
+
+ [lhs rhs]=argn(0);
+ if rhs<3 then
+ error(msprintf(" Not enough input arguments"))
+ elseif rhs>21 then
+ error(msprintf(" Too many input arguments to the function"))
+ elseif modulo(rhs-3,2)
+ error(msprintf(" wrong number of input arguments,name-value pairs not macthed"))
+ end
+
+ //validating variables
+ if ~isdir(outputFolder) then
+ error(msprintf(" wrong input argument #1, existing directory expected"))
+ elseif ~isdir(negativeImages)
+ error(msprintf(" wrong input argument #3,existing directory expected"))
+ end
+
+ //default values
+ numPos=30;
+ numNeg=20;
+ numStages=30;
+ nsplits=2;
+ featureType="HAAR"
+ minHitRate=0.995
+ maxFalseAlarmRate=0.5
+ w=25
+ h=25
+
+ for i=1:2:rhs-3
+ if strcmpi(varargin(i),"numPos")==0 then
+ i=i+1;
+ numPos=varargin(i);
+ if numPos<0 then
+ error(msprintf(" numPos value must be positive"))
+ end
+ elseif strcmpi(varargin(i),'numNeg')==0 then
+ i=i+1;
+ numNeg=varargin(i);
+ if numNeg<0 then
+ error(msprintf(" numNeg value must be positive"))
+ end
+
+ elseif strcmpi(varargin(i),'numStages')==0 then
+ i=i+1;
+ numStages=varargin(i);
+ if numStages<0 then
+ error(msprintf(" numStages value must be positive"))
+ end
+
+ elseif strcmpi(varargin(i),'nslits')==0 then
+ i=i+1;
+ nsplits=varargin(i);
+ if nsplits<0 then
+ error(msprintf(" nsplits value must be positive"))
+ end
+
+ elseif strcmpi(varargin(i),'featureType')==0 then
+ i=i+1;
+ featureType=varargin(i);
+ if strcmpi(featureType,'haar') & strcmpi(featureType,'lbp') & strcmpi(featureType,'hog')
+ error(msprintf(" wrong input argument #%d,featureType not matched",i));
+ end
+
+ elseif strcmpi(varargin(i),'minHitRate')==0 then
+ i=i+1;
+ minHitRate=varargin(i);
+ if minHitRate<0 | minHitRate>1 then
+ error(msprintf(" minHitRate value must lie in between 0 and 1"))
+ end
+
+ elseif strcmpi(varargin(i),'maxFalseAlarmRate')==0 then
+ i=i+1;
+ maxFalseAlarmRate=varargin(i);
+ if maxFalseAlarmRate<0 | minFalseRate>1 then
+ error(msprintf(" maxFalseAlarmRate value must lie in between 0 and 1"))
+ end
+
+ elseif strcmpi(varargin(i),'w')==0 then
+ i=i+1;
+ w=varargin(i);
+ if h<0 then
+ error(msprintf(" w value must be positive"))
+ end
+
+ elseif strcmpi(varargin(i),'h')==0 then
+ i=i+1;
+ h=varargin(i);
+ if h<0 then
+ error(msprintf(" h value must be positive"))
+ end
+ else
+ error(msprintf(_(" Wrong value for input argument #%d",i)));
+ end
+ end
+
+ [nRows noOfPositiveInstances]=size(positiveInstances);
+ fields=fieldnames(positiveInstances);
+ fd = mopen('positive.txt','wt');
+ for i=1:noOfPositiveInstances
+ mfprintf(fd,'%s 1',getfield(fields(1),positiveInstances(i)));
+ boxVals=getfield(fields(2),positiveInstances(i));
+ for j=1:4
+ mfprintf(fd,' %d',boxVals(j));
+ end
+ mfprintf(fd,'\n');
+ end
+ mclose(fd);
+
+ disp("Creating positive samples:");
+ cmd=sprintf("opencv_createsamples -info positive.txt -num%d -vec positive.vec -w %d -h %d",numPos,w,h);
+ unix_w(cmd);
+ if isdir(negativeImages)
+ if getos()=="Linux"
+ temp=strcat(["ls ",negativeImages])
+ elseif getos()=="Windows"
+ temp=strcat(["dir ",negativeImages])
+ end
+ s=unix_g(temp);
+ [noOfFilesInFolder noOfCols]=size(s);
+ fd = mopen('negative.txt','wt');
+ for i=1:noOfFilesInFolder
+ [path,fname,extension]=fileparts(s(i))
+ if ~strcmp(extension,".jpg") | ~strcmp(extension,".jpeg") | ~strcmp(extension,".png") | ~strcmp(extension,".bmp") | ~strcmp(extension,".pgm") | ~strcmp(extension,".JPG") | ~strcmp(extension,".JPEG") | ~strcmp(extension,".PNG") | ~strcmp(extension,".BMP") | ~strcmp(extension,".PGM")
+ mfprintf(fd,'%s/%s\n',negativeImages,s(i));
+ end
+ end
+ end
+ disp("Training Cascade:");
+ cmd=sprintf("opencv_traincascade -data %s -vec positive.vec -bg negative.txt -numPos %d -numNeg %d -numStages %d -nsplits %d -featureType %s -minHitRate %d -maxFalseAlarmRate %d -w %d -h %d",outputFolder,numPos,numNeg,numStages,nsplits,featureType,minHitRate,maxFalseAlarmRate,w,h);
+ unix_w(cmd);
+endfunction;
diff --git a/macros/trainImageCategoryClassifier.bin b/macros/trainImageCategoryClassifier.bin
new file mode 100644
index 0000000..01ca87f
Binary files /dev/null and b/macros/trainImageCategoryClassifier.bin differ
diff --git a/macros/trainImageCategoryClassifier.sci b/macros/trainImageCategoryClassifier.sci
new file mode 100644
index 0000000..46ccce8
--- /dev/null
+++ b/macros/trainImageCategoryClassifier.sci
@@ -0,0 +1,31 @@
+function classifier = trainImageCategoryClassifier(imgSets, bag)
+// This function is used to train an image classifier.
+//
+// Calling Sequence
+// classifier = trainImageCategoryClassifier(imgSets, bag)
+//
+// Parameters
+// classifier: Image category classifier
+// imgSets: Input imageSet to train the classifier on
+// bag: The bagOfFeatures of the imageSet provided
+//
+// Description
+// This function trains an image category classifier which can be used to predict categories of images given to it as input using the predict() function.
+//
+// Examples
+// imgSet = imageSet(directory,'recursive');
+// [trainingSet testSet] = partition(imgSet,[0.8]);
+// bag = bagOfFeatures(trainingSet);
+// categoryClassifier = trainImageCategoryClassifier(trainingSet, bag);
+//
+// Authors
+// Rohit Suri
+// Umang Agrawal
+ bag_list = bagStructToList(bag);
+
+ imgSets_list = imageSetToList(imgSets);
+ temp = opencv_trainImageCategoryClassifier(imgSets_list, bag_list);
+
+ classifier = struct("ClassifierLocation", temp(2), "BagofFeaturesLocation", temp(3), "Description", temp(4))
+
+endfunction
diff --git a/macros/triangulatePoints.bin b/macros/triangulatePoints.bin
new file mode 100644
index 0000000..e7d3d33
Binary files /dev/null and b/macros/triangulatePoints.bin differ
diff --git a/macros/triangulatePoints.sci b/macros/triangulatePoints.sci
new file mode 100644
index 0000000..5b56061
--- /dev/null
+++ b/macros/triangulatePoints.sci
@@ -0,0 +1,40 @@
+function [worldPoints] = triangulatePoints(projMat1, projMat2, points1, points2)
+// Returns the worldPoint coordinates of the feature points.
+//
+// Calling Sequence
+// [worldPoints] = triangulatePoints(projMat1, projMat2, points1, points2)
+//
+// Parameters
+// projMat1: 3X4 projection matrix for the first Camera matrix
+// projMat2: 3X4 projection matrix for the second Camera matrix
+// points1: 2xN array of feature points in the 1st image. In case of c++ version it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1
+// points2: 2xN array of feature points in the 2nd image. In case of c++ version it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1
+// worldPoints: 4XN array or matrix of reconstructed points
+//
+// Description
+// Returns 4D location of the matched feature points from the two projected matrices. The 4D location of the feature points is reconstructed using triangulation.
+//
+// Examples
+// [projMat1] = [12 21 21 19; 34 12 0 2; 112 431 890 32.1]
+// [projMat2] = [16 17 32 1; 64 90 12 11; 123 43.5 895 9.8]
+// [points1] = [1 2 3 4;5 6 7 8]
+// [points2] = [32 1 3 5; 9 8 3 4]
+// [worldPoints] = triangulatePoints(projMat1, projMat2, points1, points2)
+//
+//
+// Authors
+// Deepshikha
+
+// code for the above function
+//
+
+ output = opencv_triangulatePoints(projMat1, projMat2, points1, points2)
+
+ channels = size(output)
+
+ for i = 1:channels
+ worldPoints(:,:,1) = output(1)
+ end
+
+endfunction
+
diff --git a/macros/undistort.bin b/macros/undistort.bin
new file mode 100644
index 0000000..83a9564
Binary files /dev/null and b/macros/undistort.bin differ
diff --git a/macros/undistort.sci b/macros/undistort.sci
new file mode 100644
index 0000000..53fc8c6
--- /dev/null
+++ b/macros/undistort.sci
@@ -0,0 +1,7 @@
+function [outputImg]=undistort(inputImage,cameraMatrix,distCoeffActual,newCameraMatrix)
+ inputList=mattolist(inputImage);
+ outputList=opencv_undistort(inputList,cameraMatrix,distCoeffActual,newCameraMatrix);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/undistortImage.bin b/macros/undistortImage.bin
new file mode 100644
index 0000000..d315543
Binary files /dev/null and b/macros/undistortImage.bin differ
diff --git a/macros/undistortImage.sci b/macros/undistortImage.sci
new file mode 100644
index 0000000..9fccd42
--- /dev/null
+++ b/macros/undistortImage.sci
@@ -0,0 +1,68 @@
+function new_image = undistortImage(image, cameramatrix, varargin)
+// Transforms an image to compensate for lens distortion.
+//
+// Calling Sequence
+// newimage = undistortImage(image, cameramatrix)
+// newimage = undistortImage(image, cameramatrix, ["Parameter1", value1,["Parameter2", value2]])
+//
+// Parameters
+// image : Distorted input image
+// cameramatrix : Input 3 * 3 cameramatrix
+// distcoeffs : Input vector of distortion coefficients of 4, 5, or 8 elements. If the vector is empty, the zero distortion coefficients are assumed.
+// newCameraMatrix : Camera matrix of the distorted image. By default, it is same as cameramatrix.
+// newimage : Corrected image that has same size and type as original image
+//
+// Description
+// The function returns a newimage containing the input image with lens distortion removed.
+//
+// Examples
+// J = undistortImage(I, cameramatrix)
+// J = undistortImage(I, cameramatrix, "distcoeffs", distcoeffs)
+//
+// Authors
+// Suraj Prakash
+
+ [ lhs rhs ] = argn(0)
+
+ if lhs > 1 then
+ error(msprintf("Too many output arguments"))
+ end
+
+ if rhs > 6 then
+ error(msprintf("Too many input arguments"))
+ end
+
+ if rhs < 2 then
+ error(msprintf("Too less input arguments"))
+ end
+
+ if modulo(rhs, 2) <> 0
+ error(msprintf("Incorrect input arguments"))
+ end
+
+ image_list = mattolist(image)
+
+ if rhs == 2 then
+
+ temp = opencv_undistortImage(image_list, cameramatrix)
+
+ elseif rhs == 4 then
+
+ temp = opencv_undistortImage(image_list, cameramatrix, varargin(1), varargin(2))
+
+ elseif rhs == 6 then
+
+ temp = opencv_undistortImage(image_list, cameramatrix, varargin(1), varargin(2), varargin(3), varargin(4))
+
+ else
+ error(msprintf("Error in input arguments"))
+ end
+
+ sz = size(temp)
+
+ for i=1:sz
+ new_image(:, :, i) = temp(i)
+ end
+
+
+endfunction
diff --git a/macros/undistortPoints.bin b/macros/undistortPoints.bin
new file mode 100644
index 0000000..1c7f495
Binary files /dev/null and b/macros/undistortPoints.bin differ
diff --git a/macros/undistortPoints.sci b/macros/undistortPoints.sci
new file mode 100644
index 0000000..39b13d5
--- /dev/null
+++ b/macros/undistortPoints.sci
@@ -0,0 +1,37 @@
+function [idealPoints] = undistortPoints(observedPoints, camMat, disCoefMat, rectMat, newCamMat)
+// Returns the ideal point coordinates from the observed point coordinates
+//
+// Calling Sequence
+// [idealPoints] = undistortPoints(observedPoints, camMat, disCoefMat, rectMat, newCamMat)
+//
+// Parameters
+// observedPoints: 1xN or Nx1 2-channel (CV_32FC2 or CV_64FC2).
+// camMat: \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}
+// disCoefMat: Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.
+// rectMat: Rectification transformation in the object space (3x3 matrix). If the matrix is empty, the identity transformation is used.
+//newCamMat: New camera matrix (3x3) or new projection matrix (3x4. If the matrix is empty, the identity new camera matrix is used.
+// idealPoints: ideal point coordinates matrix. If matrix newCamMat is identity or omitted, idealPoints will contain normalized point coordinates.
+//
+// Description
+// Returns the ideal points coordinates from the observed point coordinates after undistortion and reverse perpective transformation.
+//
+// Examples
+// [observedPoints] = [1 2 3 4; 4 3 2 1]
+// [camMat] = [450 0 231; 0 876.3 87.1; 0 0 1]
+// [disCoefMat] = [3 2 0 9]
+// [rectMat] = [1 0 0; 0 1 0; 0 0 1]
+// [newCamMat] = []
+// [idealPoints] = undistortPoints(observedPoints, camMat, disCoefMat, rectMat, newCamMat)
+//
+// Authors
+// Deepshikha
+
+ output = opencv_undistortPoints(srcMat, camMat, disCoefMat, rectMat, newCamMat)
+
+ channels = size(output)
+
+ for i = 1:channels // for i channel image
+ idealPoints(:,:,i) = output(i)
+ end
+
+endfunction
diff --git a/macros/viscircle.bin b/macros/viscircle.bin
new file mode 100644
index 0000000..e02aa39
Binary files /dev/null and b/macros/viscircle.bin differ
diff --git a/macros/viscircle.sci b/macros/viscircle.sci
new file mode 100644
index 0000000..b84e7e5
--- /dev/null
+++ b/macros/viscircle.sci
@@ -0,0 +1,27 @@
+function [out]=viscircles(input1,input2,input3,varargin)
+ inputn=mattolist(input1);
+ [lhs rhs] = argn(0)
+ if rhs>5 then
+ error(msprintf("Too many input arguments"))
+ elseif rhs==5 then
+ a=opencv_viscircles(inputn,input2,input3,varargin(1),varargin(2));
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+ elseif rhs==4 then
+ a=opencv_viscircles(inputn,input2,input3,varargin(1));
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+ else
+ a=opencv_viscircles(inputn,input2,input3);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+ end,
+
+endfunction;
+
diff --git a/macros/warpaffine.bin b/macros/warpaffine.bin
new file mode 100644
index 0000000..b9a7aef
Binary files /dev/null and b/macros/warpaffine.bin differ
diff --git a/macros/warpaffine.sci b/macros/warpaffine.sci
new file mode 100644
index 0000000..9067959
--- /dev/null
+++ b/macros/warpaffine.sci
@@ -0,0 +1,8 @@
+function [out]=warpaffine(src,M,size_x,size_y ,flag,borderMode)
+ image1=mattolist(src);
+ a=opencv_warpaffine(image1,M,size_x,size_y ,flag, borderMode);
+ dimension=size(a)
+ for i = 1:dimension
+ out(:,:,i)=a(i);
+ end
+endfunction;
diff --git a/macros/watershed.bin b/macros/watershed.bin
new file mode 100644
index 0000000..8bdca62
Binary files /dev/null and b/macros/watershed.bin differ
diff --git a/macros/watershed.sci b/macros/watershed.sci
new file mode 100644
index 0000000..6291739
--- /dev/null
+++ b/macros/watershed.sci
@@ -0,0 +1,11 @@
+function[dstImg] = watershed(srcImg)
+
+ srcMat = mattolist(srcImg)
+ out = opencv_watershed(srcMat)
+
+ channels = size(out)
+
+ for i = 1 : channels
+ dstImg(:,:,i) = out(i)
+ end
+endfunction
diff --git a/macros/whitepoint.bin b/macros/whitepoint.bin
new file mode 100644
index 0000000..e312c99
Binary files /dev/null and b/macros/whitepoint.bin differ
diff --git a/macros/whitepoint.sci b/macros/whitepoint.sci
new file mode 100644
index 0000000..6f5d8af
--- /dev/null
+++ b/macros/whitepoint.sci
@@ -0,0 +1,10 @@
+function[xyz] = whitepoint(input_string)
+
+ out = whitepoint(input_string)
+
+ channels = size(out)
+
+ for i = 1:channels
+ xyz(:,:,1) = out(1)
+ end
+endfunction
diff --git a/macros/wiener2.bin b/macros/wiener2.bin
new file mode 100644
index 0000000..1ee5316
Binary files /dev/null and b/macros/wiener2.bin differ
diff --git a/macros/wiener2.sci b/macros/wiener2.sci
new file mode 100644
index 0000000..cde19cd
--- /dev/null
+++ b/macros/wiener2.sci
@@ -0,0 +1,7 @@
+function [outputImg]=wiener2(inputImage,filtsize,sigma)
+ inputList=mattolist(inputImage);
+ outputList=opencv_wiener2(inputList,filtsize,sigma);
+ for i=1:size(outputList)
+ outputImg(:,:,i)=outputList(i)
+ end
+endfunction
diff --git a/macros/xyz2double.bin b/macros/xyz2double.bin
new file mode 100644
index 0000000..c2ccf14
Binary files /dev/null and b/macros/xyz2double.bin differ
diff --git a/macros/xyz2double.sci b/macros/xyz2double.sci
new file mode 100644
index 0000000..d03c1e9
--- /dev/null
+++ b/macros/xyz2double.sci
@@ -0,0 +1,7 @@
+function [output] = xyz2double(pstData)
+ a = opencv_xyz2double(pstData);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/xyz2lab.bin b/macros/xyz2lab.bin
new file mode 100644
index 0000000..7a0780d
Binary files /dev/null and b/macros/xyz2lab.bin differ
diff --git a/macros/xyz2lab.sci b/macros/xyz2lab.sci
new file mode 100644
index 0000000..1654604
--- /dev/null
+++ b/macros/xyz2lab.sci
@@ -0,0 +1,21 @@
+function [output] = xyz2lab(vartype,varargin)
+ [lhs rhs] = argn(0);
+ if(rhs>3)
+ error(msprintf("Too many input argumnets"));
+ end
+
+ select rhs
+ case 1 then
+ a = opencv_xyz2lab(vartype);
+ case 2 then
+ a = opencv_xyz2lab(vartype,varargin(0));
+ case 3 then
+ a = opencv_xyz2lab(vartype,varargin(0),varargin(1));
+ end
+
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
+
diff --git a/macros/xyz2rgb.bin b/macros/xyz2rgb.bin
new file mode 100644
index 0000000..980d866
Binary files /dev/null and b/macros/xyz2rgb.bin differ
diff --git a/macros/xyz2rgb.sci b/macros/xyz2rgb.sci
new file mode 100644
index 0000000..d557939
--- /dev/null
+++ b/macros/xyz2rgb.sci
@@ -0,0 +1,8 @@
+function [output] = xyz2rgb(img)
+ image = mattolist(img);
+ a = opencv_xyz2rgb(image);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/macros/xyz2uint16.bin b/macros/xyz2uint16.bin
new file mode 100644
index 0000000..c9b3aee
Binary files /dev/null and b/macros/xyz2uint16.bin differ
diff --git a/macros/xyz2uint16.sci b/macros/xyz2uint16.sci
new file mode 100644
index 0000000..12e07b2
--- /dev/null
+++ b/macros/xyz2uint16.sci
@@ -0,0 +1,7 @@
+function [output] = xyz2uint16(pstData)
+ a = opencv_xyz2uint16(pstData);
+ d = size(a);
+ for i=1:d
+ output(:,:,i) = a(i);
+ end
+endfunction
diff --git a/sci_gateway/builder_gateway.sce b/sci_gateway/builder_gateway.sce
new file mode 100644
index 0000000..654d1e4
--- /dev/null
+++ b/sci_gateway/builder_gateway.sce
@@ -0,0 +1,13 @@
+function builder_gateway()
+
+ sci_gateway_dir = get_absolute_file_path("builder_gateway.sce");
+ languages = ["cpp"];
+
+ tbx_builder_gateway_lang(languages,sci_gateway_dir);
+ tbx_build_gateway_loader(languages,sci_gateway_dir);
+ tbx_build_gateway_clean(languages,sci_gateway_dir);
+
+ endfunction
+
+ builder_gateway()
+ clear builder_gateway; // remove builder_gateway on stack
diff --git a/sci_gateway/cleaner_gateway.sce b/sci_gateway/cleaner_gateway.sce
new file mode 100644
index 0000000..03aedaf
--- /dev/null
+++ b/sci_gateway/cleaner_gateway.sce
@@ -0,0 +1,15 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// Generated by builder_gateway.sce: Please, do not edit this file
+
+sci_gateway_dir = get_absolute_file_path("cleaner_gateway.sce");
+current_dir = pwd();
+
+chdir(sci_gateway_dir);
+if ( isdir("cpp") ) then
+ chdir("cpp");
+ exec("cleaner.sce");
+ mdelete("cleaner.sce");
+end
+
+chdir(current_dir);
+clear sci_gateway_dir current_dir;
diff --git a/sci_gateway/cpp/builder_gateway_cpp.sce b/sci_gateway/cpp/builder_gateway_cpp.sce
new file mode 100644
index 0000000..1f16d47
--- /dev/null
+++ b/sci_gateway/cpp/builder_gateway_cpp.sce
@@ -0,0 +1,364 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+
+mode(-1)
+lines(0)
+
+toolbox_title = "FOSSEE_Image_Processing_Toolbox";
+
+Build_64Bits = %t;
+
+
+path_builder = get_absolute_file_path('builder_gateway_cpp.sce');
+Names = [
+// "raw_dctmtx", "dctmtx";
+// "raw_multithresh", "multithresh";
+// "raw_applycform", "opencv_applycform";
+ //"raw_arrowedline", "opencv_arrowedline";
+ "raw_blur", "opencv_blur";
+// "raw_boundingRect", "opencv_boundingRect";
+// "raw_bwconvhull", "opencv_bwconvhull";
+// "raw_bwdistgeodesic", "opencv_bwdistgeodesic";
+// "raw_bwlookup", "opencv_bwlookup";
+// "raw_canny", "opencv_canny";
+ "raw_circle", "opencv_circle";
+// "raw_clipline", "opencv_clipline";
+// "raw_convexhull", "opencv_convexhull";
+// "raw_convmtx2", "opencv_convmtx2";
+// "raw_copymakeborder", "opencv_copymakeborder";
+// "raw_corner", "opencv_corner";
+// "raw_cornerEigenValsAndVecs", "opencv_cornerEigenValsAndVecs";
+// "raw_cornerHarris", "opencv_cornerHarris";
+// "raw_cornerMinEigenVal", "opencv_cornerMinEigenVal";
+// "raw_cvtColor", "opencv_cvtColor";
+// "raw_demosaic", "opencv_demosaic";
+ "raw_dilate", "opencv_dilate";
+// "raw_ellipse", "opencv_ellipse";
+// "raw_ellipse2poly", "opencv_ellipse2poly";
+ "raw_erode", "opencv_erode";
+// "raw_fftshift", "opencv_fftshift";
+// "raw_fillconvexpoly", "opencv_fillconvexpoly";
+// "raw_filter2D", "opencv_filter2D";
+// "raw_findContours", "opencv_findContours";
+// "raw_fsamp2", "opencv_fsamp2";
+
+// "raw_gabor", "opencv_gabor";
+// "raw_gaussianblur", "opencv_gaussianblur";
+// "raw_getStructuringElement", "opencv_getStructuringElement";
+// "getTextSize", "opencv_getTextSize";
+// "raw_getgaussiankernel", "opencv_getgaussiankernel";
+// "raw_getrectsubpix", "opencv_getrectsubpix";
+// "raw_getrotationmatrix2D", "opencv_getrotationmatrix2D";
+// "raw_goodfeaturestotrack", "opencv_goodfeaturestotrack";
+
+// "raw_houghcircles", "opencv_houghcircles";
+// "raw_houghlines", "opencv_houghlines";
+// "raw_houghlinesp", "opencv_houghlinesp";
+// "raw_ifftshift", "opencv_ifftshift";
+// "raw_im2double", "opencv_im2double";
+// "raw_imabsdiff", "opencv_imabsdiff";
+// "raw_imadd", "opencv_imadd";
+// "raw_imattributes", "opencv_imattributes";
+// "raw_imboxfilt3", "opencv_imboxfilt3";
+// "raw_imcomplement", "opencv_imcomplement";
+// "raw_imcontour", "opencv_imcontour";
+// "raw_imcontrast", "opencv_imcontrast";
+ "raw_imcrop", "opencv_imcrop";
+// "raw_imdivide", "opencv_imdivide";
+// "raw_imextendedmax", "opencv_imextendedmax";
+// "raw_imextendedmin", "opencv_imextendedmin";
+// "raw_imfill", "opencv_imfill";
+// "raw_imfindcircles", "opencv_imfindcircles";
+// "raw_imfuse", "opencv_imfuse";
+// "raw_imgaborfilt", "opencv_imgaborfilt";
+// "raw_imgaussfilt3", "opencv_imgaussfilt3";
+// "raw_imguidedfilter", "opencv_imguidedfilter";
+// "raw_imhmax", "opencv_imhmax";
+// "raw_imhmin", "opencv_imhmin";
+// "raw_imimposemin", "opencv_imimposemin";
+// "raw_imlincomb", "opencv_imlincomb";
+// "raw_immultiply", "opencv_immultiply";
+ "raw_impixel", "opencv_impixel";
+// "raw_impyramid", "opencv_impyramid";
+ "raw_imread", "opencv_imread";
+// "raw_imrect", "opencv_imrect";
+ "raw_imresize", "opencv_imresize";
+ "raw_imsharpen", "opencv_imsharpen";
+// "raw_imshowpair", "opencv_imshowpair";
+// "raw_imsubtract", "opencv_imsubtract";
+// "raw_imwarp", "opencv_imwarp";
+ "raw_imwrite", "opencv_imwrite";
+// "raw_ind2gray", "opencv_ind2gray";
+// "raw_ind2rgb", "opencv_ind2rgb";
+// "raw_lab2double", "opencv_lab2double";
+// "raw_lab2rgb", "opencv_lab2rgb";
+// "raw_lab2uint16", "opencv_lab2uint16";
+// "raw_lab2uint8", "opencv_lab2uint8";
+// "raw_lab2xyz", "opencv_lab2xyz";
+// "raw_laplacian", "opencv_laplacian";
+// "raw_line", "opencv_line";
+
+// "raw_medianblur", "opencv_medianblur";
+// "raw_montage", "opencv_montage";
+// "raw_morphologyEx", "opencv_morphologyEx";
+// "raw_ntsc2rgb", "opencv_ntsc2rgb";
+// "raw_puttext", "opencv_puttext";
+// "raw_pyrDown", "opencv_pyrDown";
+// "raw_pyrUp", "opencv_pyrUp";
+// "raw_rectangle", "opencv_rectangle";
+// "raw_regionfill", "opencv_regionfill";
+// "raw_rgb2lab", "opencv_rgb2lab";
+// "raw_rgb2ntsc", "opencv_rgb2ntsc";
+// "raw_rgb2xyz", "opencv_rgb2xyz";
+// "raw_roifill", "opencv_roifill";
+// "raw_roipoly", "opencv_roipoly";
+// "raw_scharr", "opencv_scharr";
+// "raw_sepFilter2D", "opencv_sepFilter2D";
+// "raw_sobel", "opencv_sobel";
+// "raw_ssim", "opencv_ssim";
+// "raw_threshold", "opencv_threshold";
+// "raw_undistort", "opencv_undistort";
+// "raw_viscircles", "opencv_viscircles";
+// "raw_watershed", "opencv_watershed";
+// "raw_whitepoint", "opencv_whitepoint";
+// "raw_wiener2", "opencv_wiener2";
+// "raw_xyz2double", "opencv_xyz2double";
+// "raw_xyz2lab", "opencv_xyz2lab";
+// "raw_xyz2rgb", "opencv_xyz2rgb";
+// "raw_xyz2uint16", "opencv_xyz2uint16";
+
+// "deconvlucy", "opencv_deconvlucy";
+// "imhistmatch", "opencv_imhistmatch";
+// "graycoprops", "opencv_graycoprops";
+// "graydiffweight", "opencv_graydiffweight";
+// "decorrstretch", "opencv_decorrstretch";
+// "adaptf", "opencv_adapthisteq";
+// "affine2d", "opencv_affine2d";
+
+
+// "approxpolyDP","approxpolyDP";
+// "arclenght","arclenght";
+// "bilateralfilter","bilateralfilter";
+// "borderInterpolate","borderInterpolate";
+// "boxfilter","boxfilter";
+// "contourarea","contourarea";
+// "boxfilter","boxfilter";
+// "fitellipse","fitellipse";
+// "getkerneltype","getkerneltype";
+// "histeq","histeq";
+ "raw_imrotate","opencv_imrotate";
+// "mean1","mean1";
+// "minAreaRect","minAreaRect";
+// "minimumenclosingcirlce","minimumenclosingcirlce";
+// "pyrMeanShiftFiltering","pyrMeanShiftFiltering";
+ "raw_rgb2gray","opencv_rgb2gray";
+// "warpaffine","warpaffine";
+
+
+
+ ];
+
+Files = [
+// "dctmtx.cpp",
+
+// "multithresh.cpp",
+// "opencv_applycform.cpp",
+ //"opencv_arrowedline.cpp",
+ "opencv_blur.cpp",
+// "opencv_boundingRect.cpp",
+// "opencv_bwconvhull.cpp",
+// "opencv_bwdistgeodesic.cpp",
+// "opencv_bwlookup.cpp",
+// "opencv_canny.cpp",
+ "opencv_circle.cpp",
+// "opencv_clipline.cpp",
+// "opencv_convexhull.cpp",
+// "opencv_convmtx2.cpp",
+// "opencv_copymakeborder.cpp",
+// "opencv_corner.cpp",
+// "opencv_cornerEigenValsAndVecs.cpp",
+// "opencv_cornerHarris.cpp",
+// "opencv_cornerMinEigenVal.cpp",
+// "opencv_cvtColor.cpp",
+// "opencv_demosaic.cpp",
+ "opencv_dilate.cpp",
+ "opencv_ellipse.cpp",
+// "opencv_ellipse2poly.cpp",
+ "opencv_erode.cpp",
+// "opencv_fftshift.cpp",
+// "opencv_fillconvexpoly.cpp",
+// "opencv_filter2D.cpp",
+// "opencv_findContours.cpp",
+// "opencv_fsamp2.cpp",
+
+// "opencv_gabor.cpp",
+// "opencv_gaussianblur.cpp",
+// "opencv_getStructuringElement.cpp",
+// "opencv_getTextSize.cpp",
+// "opencv_getgaussiankernel.cpp",
+// "opencv_getrectsubpix.cpp",
+// "opencv_getrotationmatrix2D.cpp",
+// "opencv_goodfeaturestotrack.cpp",
+
+// "opencv_houghcircles.cpp",
+// "opencv_houghlines.cpp",
+// "opencv_houghlinesp.cpp",
+// "opencv_ifftshift.cpp",
+// "opencv_im2double.cpp",
+// "opencv_imabsdiff.cpp",
+// "opencv_imadd.cpp",
+// "opencv_imattributes.cpp",
+// "opencv_imboxfilt3.cpp",
+// "opencv_imcomplement.cpp",
+// "opencv_imcontour.cpp",
+// "opencv_imcontrast.cpp",
+ "opencv_imcrop.cpp",
+// "opencv_imdivide.cpp",
+// "opencv_imextendedmax.cpp",
+// "opencv_imextendedmin.cpp",
+// "opencv_imfill.cpp",
+// "opencv_imfindcircles.cpp",
+// "opencv_imfuse.cpp",
+// "opencv_imgaborfilt.cpp",
+// "opencv_imgaussfilt3.cpp",
+// "opencv_imguidedfilter.cpp",
+// "opencv_imhmax.cpp",
+// "opencv_imhmin.cpp",
+// "opencv_imimposemin.cpp",
+// "opencv_imlincomb.cpp",
+// "opencv_immultiply.cpp",
+ "opencv_impixel.cpp",
+// "opencv_impyramid.cpp",
+ "opencv_imread.cpp",
+// "opencv_imrect.cpp",
+ "opencv_imresize.cpp",
+ "opencv_imsharpen.cpp",
+// "opencv_imshowpair.cpp",
+// "opencv_imsubtract.cpp",
+// "opencv_imwarp.cpp",
+ "opencv_imwrite.cpp",
+// "opencv_ind2gray.cpp",
+// "opencv_ind2rgb.cpp",
+// "opencv_lab2double.cpp",
+// "opencv_lab2rgb.cpp",
+// "opencv_lab2uint16.cpp",
+// "opencv_lab2uint8.cpp",
+// "opencv_lab2xyz.cpp",
+// "opencv_laplacian.cpp",
+// "opencv_line.cpp",
+
+// "opencv_medianblur.cpp",
+// "opencv_montage.cpp",
+// "opencv_morphologyEx.cpp",
+// "opencv_ntsc2rgb.cpp",
+// "opencv_puttext.cpp",
+// "opencv_pyrDown.cpp",
+// "opencv_pyrUp.cpp",
+// "opencv_rectangle.cpp",
+// "opencv_regionfill.cpp",
+// "opencv_rgb2lab.cpp",
+// "opencv_rgb2ntsc.cpp",
+// "opencv_rgb2xyz.cpp",
+// "opencv_roifill.cpp",
+// "opencv_roipoly.cpp",
+// "opencv_scharr.cpp",
+// "opencv_sepFilter2D.cpp",
+// "opencv_sobel.cpp",
+// "opencv_ssim.cpp",
+// "opencv_threshold.cpp",
+// "opencv_undistort.cpp",
+// "opencv_viscircles.cpp",
+// "opencv_watershed.cpp",
+// "opencv_whitepoint.cpp",
+// "opencv_wiener2.cpp",
+// "opencv_xyz2double.cpp",
+// "opencv_xyz2lab.cpp",
+// "opencv_xyz2rgb.cpp",
+// "opencv_xyz2uint16.cpp",
+
+
+// "opencv_deconvlucy.cpp",
+// "opencv_integralImage.cpp",
+// "opencv_imhistmatch.cpp",
+// "opencv_graycoprops.cpp",
+// "opencv_graydiffweight.cpp",
+// "opencv_decorrstretch.cpp",
+// "opencv_adapthisteq.cpp",
+// "opencv_affine2d.cpp",
+
+ "rgb2gray.cpp",
+// "warpaffine.cpp",
+// "opencv_pyrMeanShiftFiltering.cpp",
+// "opencv_minimumenclosingcirlce.cpp",
+// "opencv_minAreaRect.cpp",
+// "opencv_mean1.cpp",
+ "opencv_imrotate.cpp",
+// "opencv_getkerneltype.cpp",
+// "opencv_fitellipse.cpp",
+// "opencv_contourarea.cpp",
+// "opencv_boxfilter.cpp",
+// "opencv_borderInterpolate.cpp",
+// "opencv_bilateralfilter.cpp",
+// "opencv_arclength.cpp",
+// "opencv_approxpolyDP.cpp",
+// "opencv_histeq.cpp",
+
+
+
+ ];
+
+ copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.h",TMPDIR);
+ copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.cpp",TMPDIR);
+
+ [a, opt] = getversion();
+ Version = opt(2);
+
+ if getos()=="Windows" then
+// third_dir = path_builder+filesep()+'..'+filesep()+'..'+filesep()+'thirdparty';
+// lib_base_dir = third_dir + filesep() + 'windows' + filesep() + 'lib' + filesep() + Version + filesep();
+// inc_base_dir = third_dir + filesep() + 'windows' + filesep() + 'include' + filesep() + 'coin';
+// C_Flags=['-D__USE_DEPRECATED_STACK_FUNCTIONS__ -w -I '+path_builder+' '+ '-I '+inc_base_dir+' ']
+// Linker_Flag = [lib_base_dir+"libClp.lib "+lib_base_dir+"libCgl.lib "+lib_base_dir+"libOsi.lib "+lib_base_dir+"libOsiClp.lib "+lib_base_dir+"libCoinUtils.lib "+lib_base_dir+"libSymphony.lib "+lib_base_dir+"IpOptFSS.lib "+lib_base_dir+"IpOpt-vc10.lib "]
+
+else
+ third_dir = path_builder+'..'+filesep()+'..'+filesep()+'thirdparty';
+ lib_base_dir = third_dir + filesep() + 'linux' + filesep() + 'lib' + filesep() + Version + filesep();
+ inc_base_dir = third_dir + filesep() + 'linux' + filesep() + 'include' + filesep() + 'opencv';
+ incl_base_dir = third_dir + filesep() + 'linux' + filesep() + 'include' + filesep() + 'opencv2';
+
+// C_Flags=["-D__USE_DEPRECATED_STACK_FUNCTIONS__ -w -fpermissive -I"+path_builder+"-I"+inc_base_dir+" "+"-I"+incl_base_dir+" -Wl,-rpath= "+lib_base_dir+" "+"-L"+lib_base_dir+"libopencv_core"+" "+"-L"+lib_base_dir+"libopencv_highgui"+" "+"-L"+lib_base_dir+"libopencv_imgproc" ]
+
+// export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:"+lib_base_dir
+// unix_s("export LD_LIBRARY_PATH="+lib_base_dir);
+
+// C_Flags=["-I"+inc_base_dir+" "+"-I"+incl_base_dir];
+// Linker_Flag = ["-L"+lib_base_dir+"libopencv_core"+" "+"-L"+lib_base_dir+"libopencv_highgui"+" "+"-L"+lib_base_dir+"libopencv_imgproc" ];
+
+// Linker_Flag = ["-L/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/thirdparty/linux/lib/x64 -lopencv_core -L/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/thirdparty/linux/lib/x64 -lopencv_imgproc -L/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/thirdparty/linux/lib/x64 -lopencv_highgui" ]
+
+
+tools_path = path_builder + "../../thirdparty/linux/";
+unix_s("export LD_LIBRARY_PATH="+tools_path+"lib/"+Version+filesep()+" ");
+C_Flags=["-w -fpermissive -I"+tools_path+"include/opencv -I"+tools_path+"include/opencv2 -Wl,-rpath="+tools_path+"lib/"+Version+filesep()+" "]
+
+Linker_Flag = ["-L"+tools_path+"lib/"+Version+"-lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core "]
+
+end
+
+tbx_build_gateway(toolbox_title,Names,Files,get_absolute_file_path("builder_gateway_cpp.sce"), [], Linker_Flag, C_Flags,"g++");
+
+clear toolbox_title Names Files Linker_Flag C_Flags;
+
+//function builder_gw_cpp()
+// WITHOUT_AUTO_PUTLHSVAR = %t;
+// copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.h",TMPDIR);
+// copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.cpp",TMPDIR);
+//tbx_build_gateway("skeleton_imageprocessing", ..
+// names, ..
+// files, ..
+// get_absolute_file_path("builder_gateway_cpp.sce"),[],["-L/usr/local/lib -lopencv_core -L/usr/local/lib -lopencv_highgui -L/usr/lib -lopencv_imgproc -L/usr/lib -lopencv_calib3d -L/usr/lib -lopencv_video -L/usr/lib -lopencv_nonfree -L/usr/lib -lopencv_ml -L/usr/lib -lopencv_objdetect"],["-I/usr/include/scilab -I/usr/include/opencv -I/usr/include/opencv2 "],"g++ ");
+//endfunction
+
+//builder_gw_cpp();
+//clear builder_gw_cpp; // remove builder_gw_cpp on stack
+
diff --git a/sci_gateway/cpp/builder_gateway_cpp.sce~ b/sci_gateway/cpp/builder_gateway_cpp.sce~
new file mode 100644
index 0000000..c736288
--- /dev/null
+++ b/sci_gateway/cpp/builder_gateway_cpp.sce~
@@ -0,0 +1,364 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+
+mode(-1)
+lines(0)
+
+toolbox_title = "FOSSEE_Image_Processing_Toolbox";
+
+Build_64Bits = %t;
+
+
+path_builder = get_absolute_file_path('builder_gateway_cpp.sce');
+Names = [
+// "raw_dctmtx", "dctmtx";
+// "raw_multithresh", "multithresh";
+// "raw_applycform", "opencv_applycform";
+ //"raw_arrowedline", "opencv_arrowedline";
+ "raw_blur", "opencv_blur";
+// "raw_boundingRect", "opencv_boundingRect";
+// "raw_bwconvhull", "opencv_bwconvhull";
+// "raw_bwdistgeodesic", "opencv_bwdistgeodesic";
+// "raw_bwlookup", "opencv_bwlookup";
+// "raw_canny", "opencv_canny";
+ "raw_circle", "opencv_circle";
+// "raw_clipline", "opencv_clipline";
+// "raw_convexhull", "opencv_convexhull";
+// "raw_convmtx2", "opencv_convmtx2";
+// "raw_copymakeborder", "opencv_copymakeborder";
+// "raw_corner", "opencv_corner";
+// "raw_cornerEigenValsAndVecs", "opencv_cornerEigenValsAndVecs";
+// "raw_cornerHarris", "opencv_cornerHarris";
+// "raw_cornerMinEigenVal", "opencv_cornerMinEigenVal";
+// "raw_cvtColor", "opencv_cvtColor";
+// "raw_demosaic", "opencv_demosaic";
+ "raw_dilate", "opencv_dilate";
+// "raw_ellipse", "opencv_ellipse";
+// "raw_ellipse2poly", "opencv_ellipse2poly";
+ "raw_erode", "opencv_erode";
+// "raw_fftshift", "opencv_fftshift";
+// "raw_fillconvexpoly", "opencv_fillconvexpoly";
+// "raw_filter2D", "opencv_filter2D";
+// "raw_findContours", "opencv_findContours";
+// "raw_fsamp2", "opencv_fsamp2";
+
+// "raw_gabor", "opencv_gabor";
+// "raw_gaussianblur", "opencv_gaussianblur";
+// "raw_getStructuringElement", "opencv_getStructuringElement";
+// "getTextSize", "opencv_getTextSize";
+// "raw_getgaussiankernel", "opencv_getgaussiankernel";
+// "raw_getrectsubpix", "opencv_getrectsubpix";
+// "raw_getrotationmatrix2D", "opencv_getrotationmatrix2D";
+// "raw_goodfeaturestotrack", "opencv_goodfeaturestotrack";
+
+// "raw_houghcircles", "opencv_houghcircles";
+// "raw_houghlines", "opencv_houghlines";
+// "raw_houghlinesp", "opencv_houghlinesp";
+// "raw_ifftshift", "opencv_ifftshift";
+// "raw_im2double", "opencv_im2double";
+// "raw_imabsdiff", "opencv_imabsdiff";
+// "raw_imadd", "opencv_imadd";
+// "raw_imattributes", "opencv_imattributes";
+// "raw_imboxfilt3", "opencv_imboxfilt3";
+// "raw_imcomplement", "opencv_imcomplement";
+// "raw_imcontour", "opencv_imcontour";
+// "raw_imcontrast", "opencv_imcontrast";
+ "raw_imcrop", "opencv_imcrop";
+// "raw_imdivide", "opencv_imdivide";
+// "raw_imextendedmax", "opencv_imextendedmax";
+// "raw_imextendedmin", "opencv_imextendedmin";
+// "raw_imfill", "opencv_imfill";
+// "raw_imfindcircles", "opencv_imfindcircles";
+// "raw_imfuse", "opencv_imfuse";
+// "raw_imgaborfilt", "opencv_imgaborfilt";
+// "raw_imgaussfilt3", "opencv_imgaussfilt3";
+// "raw_imguidedfilter", "opencv_imguidedfilter";
+// "raw_imhmax", "opencv_imhmax";
+// "raw_imhmin", "opencv_imhmin";
+// "raw_imimposemin", "opencv_imimposemin";
+// "raw_imlincomb", "opencv_imlincomb";
+// "raw_immultiply", "opencv_immultiply";
+ "raw_impixel", "opencv_impixel";
+// "raw_impyramid", "opencv_impyramid";
+ "raw_imread", "opencv_imread";
+// "raw_imrect", "opencv_imrect";
+ "raw_imresize", "opencv_imresize";
+ "raw_imsharpen", "opencv_imsharpen";
+// "raw_imshowpair", "opencv_imshowpair";
+// "raw_imsubtract", "opencv_imsubtract";
+// "raw_imwarp", "opencv_imwarp";
+ "raw_imwrite", "opencv_imwrite";
+// "raw_ind2gray", "opencv_ind2gray";
+// "raw_ind2rgb", "opencv_ind2rgb";
+// "raw_lab2double", "opencv_lab2double";
+// "raw_lab2rgb", "opencv_lab2rgb";
+// "raw_lab2uint16", "opencv_lab2uint16";
+// "raw_lab2uint8", "opencv_lab2uint8";
+// "raw_lab2xyz", "opencv_lab2xyz";
+// "raw_laplacian", "opencv_laplacian";
+// "raw_line", "opencv_line";
+
+// "raw_medianblur", "opencv_medianblur";
+// "raw_montage", "opencv_montage";
+// "raw_morphologyEx", "opencv_morphologyEx";
+// "raw_ntsc2rgb", "opencv_ntsc2rgb";
+// "raw_puttext", "opencv_puttext";
+// "raw_pyrDown", "opencv_pyrDown";
+// "raw_pyrUp", "opencv_pyrUp";
+// "raw_rectangle", "opencv_rectangle";
+// "raw_regionfill", "opencv_regionfill";
+// "raw_rgb2lab", "opencv_rgb2lab";
+// "raw_rgb2ntsc", "opencv_rgb2ntsc";
+// "raw_rgb2xyz", "opencv_rgb2xyz";
+// "raw_roifill", "opencv_roifill";
+// "raw_roipoly", "opencv_roipoly";
+// "raw_scharr", "opencv_scharr";
+// "raw_sepFilter2D", "opencv_sepFilter2D";
+// "raw_sobel", "opencv_sobel";
+// "raw_ssim", "opencv_ssim";
+// "raw_threshold", "opencv_threshold";
+// "raw_undistort", "opencv_undistort";
+// "raw_viscircles", "opencv_viscircles";
+// "raw_watershed", "opencv_watershed";
+// "raw_whitepoint", "opencv_whitepoint";
+// "raw_wiener2", "opencv_wiener2";
+// "raw_xyz2double", "opencv_xyz2double";
+// "raw_xyz2lab", "opencv_xyz2lab";
+// "raw_xyz2rgb", "opencv_xyz2rgb";
+// "raw_xyz2uint16", "opencv_xyz2uint16";
+
+// "deconvlucy", "opencv_deconvlucy";
+// "imhistmatch", "opencv_imhistmatch";
+// "graycoprops", "opencv_graycoprops";
+// "graydiffweight", "opencv_graydiffweight";
+// "decorrstretch", "opencv_decorrstretch";
+// "adaptf", "opencv_adapthisteq";
+// "affine2d", "opencv_affine2d";
+
+
+// "approxpolyDP","approxpolyDP";
+// "arclenght","arclenght";
+// "bilateralfilter","bilateralfilter";
+// "borderInterpolate","borderInterpolate";
+// "boxfilter","boxfilter";
+// "contourarea","contourarea";
+// "boxfilter","boxfilter";
+// "fitellipse","fitellipse";
+// "getkerneltype","getkerneltype";
+// "histeq","histeq";
+ "raw_imrotate","opencv_imrotate";
+// "mean1","mean1";
+// "minAreaRect","minAreaRect";
+// "minimumenclosingcirlce","minimumenclosingcirlce";
+// "pyrMeanShiftFiltering","pyrMeanShiftFiltering";
+ "raw_rgb2gray","opencv_rgb2gray";
+// "warpaffine","warpaffine";
+
+
+
+ ];
+
+Files = [
+// "dctmtx.cpp",
+
+// "multithresh.cpp",
+// "opencv_applycform.cpp",
+ //"opencv_arrowedline.cpp",
+ "opencv_blur.cpp",
+// "opencv_boundingRect.cpp",
+// "opencv_bwconvhull.cpp",
+// "opencv_bwdistgeodesic.cpp",
+// "opencv_bwlookup.cpp",
+// "opencv_canny.cpp",
+ "opencv_circle.cpp",
+// "opencv_clipline.cpp",
+// "opencv_convexhull.cpp",
+// "opencv_convmtx2.cpp",
+// "opencv_copymakeborder.cpp",
+// "opencv_corner.cpp",
+// "opencv_cornerEigenValsAndVecs.cpp",
+// "opencv_cornerHarris.cpp",
+// "opencv_cornerMinEigenVal.cpp",
+// "opencv_cvtColor.cpp",
+// "opencv_demosaic.cpp",
+ "opencv_dilate.cpp",
+ "opencv_ellipse.cpp",
+// "opencv_ellipse2poly.cpp",
+ "opencv_erode.cpp",
+// "opencv_fftshift.cpp",
+// "opencv_fillconvexpoly.cpp",
+// "opencv_filter2D.cpp",
+// "opencv_findContours.cpp",
+// "opencv_fsamp2.cpp",
+
+// "opencv_gabor.cpp",
+// "opencv_gaussianblur.cpp",
+// "opencv_getStructuringElement.cpp",
+// "opencv_getTextSize.cpp",
+// "opencv_getgaussiankernel.cpp",
+// "opencv_getrectsubpix.cpp",
+// "opencv_getrotationmatrix2D.cpp",
+// "opencv_goodfeaturestotrack.cpp",
+
+// "opencv_houghcircles.cpp",
+// "opencv_houghlines.cpp",
+// "opencv_houghlinesp.cpp",
+// "opencv_ifftshift.cpp",
+// "opencv_im2double.cpp",
+// "opencv_imabsdiff.cpp",
+// "opencv_imadd.cpp",
+// "opencv_imattributes.cpp",
+// "opencv_imboxfilt3.cpp",
+// "opencv_imcomplement.cpp",
+// "opencv_imcontour.cpp",
+// "opencv_imcontrast.cpp",
+ "opencv_imcrop.cpp",
+// "opencv_imdivide.cpp",
+// "opencv_imextendedmax.cpp",
+// "opencv_imextendedmin.cpp",
+// "opencv_imfill.cpp",
+// "opencv_imfindcircles.cpp",
+// "opencv_imfuse.cpp",
+// "opencv_imgaborfilt.cpp",
+// "opencv_imgaussfilt3.cpp",
+// "opencv_imguidedfilter.cpp",
+// "opencv_imhmax.cpp",
+// "opencv_imhmin.cpp",
+// "opencv_imimposemin.cpp",
+// "opencv_imlincomb.cpp",
+// "opencv_immultiply.cpp",
+ "opencv_impixel.cpp",
+// "opencv_impyramid.cpp",
+ "opencv_imread.cpp",
+// "opencv_imrect.cpp",
+ "opencv_imresize.cpp",
+ "opencv_imsharpen.cpp",
+// "opencv_imshowpair.cpp",
+// "opencv_imsubtract.cpp",
+// "opencv_imwarp.cpp",
+ "opencv_imwrite.cpp",
+// "opencv_ind2gray.cpp",
+// "opencv_ind2rgb.cpp",
+// "opencv_lab2double.cpp",
+// "opencv_lab2rgb.cpp",
+// "opencv_lab2uint16.cpp",
+// "opencv_lab2uint8.cpp",
+// "opencv_lab2xyz.cpp",
+// "opencv_laplacian.cpp",
+// "opencv_line.cpp",
+
+// "opencv_medianblur.cpp",
+// "opencv_montage.cpp",
+// "opencv_morphologyEx.cpp",
+// "opencv_ntsc2rgb.cpp",
+// "opencv_puttext.cpp",
+// "opencv_pyrDown.cpp",
+// "opencv_pyrUp.cpp",
+// "opencv_rectangle.cpp",
+// "opencv_regionfill.cpp",
+// "opencv_rgb2lab.cpp",
+// "opencv_rgb2ntsc.cpp",
+// "opencv_rgb2xyz.cpp",
+// "opencv_roifill.cpp",
+// "opencv_roipoly.cpp",
+// "opencv_scharr.cpp",
+// "opencv_sepFilter2D.cpp",
+// "opencv_sobel.cpp",
+// "opencv_ssim.cpp",
+// "opencv_threshold.cpp",
+// "opencv_undistort.cpp",
+// "opencv_viscircles.cpp",
+// "opencv_watershed.cpp",
+// "opencv_whitepoint.cpp",
+// "opencv_wiener2.cpp",
+// "opencv_xyz2double.cpp",
+// "opencv_xyz2lab.cpp",
+// "opencv_xyz2rgb.cpp",
+// "opencv_xyz2uint16.cpp",
+
+
+// "opencv_deconvlucy.cpp",
+// "opencv_integralImage.cpp",
+// "opencv_imhistmatch.cpp",
+// "opencv_graycoprops.cpp",
+// "opencv_graydiffweight.cpp",
+// "opencv_decorrstretch.cpp",
+// "opencv_adapthisteq.cpp",
+// "opencv_affine2d.cpp",
+
+ "rgb2gray.cpp",
+// "warpaffine.cpp",
+// "opencv_pyrMeanShiftFiltering.cpp",
+// "opencv_minimumenclosingcirlce.cpp",
+// "opencv_minAreaRect.cpp",
+// "opencv_mean1.cpp",
+ "opencv_imrotate.cpp",
+// "opencv_getkerneltype.cpp",
+// "opencv_fitellipse.cpp",
+// "opencv_contourarea.cpp",
+// "opencv_boxfilter.cpp",
+// "opencv_borderInterpolate.cpp",
+// "opencv_bilateralfilter.cpp",
+// "opencv_arclength.cpp",
+// "opencv_approxpolyDP.cpp",
+// "opencv_histeq.cpp",
+
+
+
+ ];
+
+ copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.h",TMPDIR);
+ copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.cpp",TMPDIR);
+
+ [a, opt] = getversion();
+ Version = opt(2);
+
+ if getos()=="Windows" then
+// third_dir = path_builder+filesep()+'..'+filesep()+'..'+filesep()+'thirdparty';
+// lib_base_dir = third_dir + filesep() + 'windows' + filesep() + 'lib' + filesep() + Version + filesep();
+// inc_base_dir = third_dir + filesep() + 'windows' + filesep() + 'include' + filesep() + 'coin';
+// C_Flags=['-D__USE_DEPRECATED_STACK_FUNCTIONS__ -w -I '+path_builder+' '+ '-I '+inc_base_dir+' ']
+// Linker_Flag = [lib_base_dir+"libClp.lib "+lib_base_dir+"libCgl.lib "+lib_base_dir+"libOsi.lib "+lib_base_dir+"libOsiClp.lib "+lib_base_dir+"libCoinUtils.lib "+lib_base_dir+"libSymphony.lib "+lib_base_dir+"IpOptFSS.lib "+lib_base_dir+"IpOpt-vc10.lib "]
+
+else
+ third_dir = path_builder+'..'+filesep()+'..'+filesep()+'thirdparty';
+ lib_base_dir = third_dir + filesep() + 'linux' + filesep() + 'lib' + filesep() + Version + filesep();
+ inc_base_dir = third_dir + filesep() + 'linux' + filesep() + 'include' + filesep() + 'opencv';
+ incl_base_dir = third_dir + filesep() + 'linux' + filesep() + 'include' + filesep() + 'opencv2';
+
+// C_Flags=["-D__USE_DEPRECATED_STACK_FUNCTIONS__ -w -fpermissive -I"+path_builder+"-I"+inc_base_dir+" "+"-I"+incl_base_dir+" -Wl,-rpath= "+lib_base_dir+" "+"-L"+lib_base_dir+"libopencv_core"+" "+"-L"+lib_base_dir+"libopencv_highgui"+" "+"-L"+lib_base_dir+"libopencv_imgproc" ]
+
+// export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:"+lib_base_dir
+// unix_s("export LD_LIBRARY_PATH="+lib_base_dir);
+
+// C_Flags=["-I"+inc_base_dir+" "+"-I"+incl_base_dir];
+// Linker_Flag = ["-L"+lib_base_dir+"libopencv_core"+" "+"-L"+lib_base_dir+"libopencv_highgui"+" "+"-L"+lib_base_dir+"libopencv_imgproc" ];
+
+// Linker_Flag = ["-L/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/thirdparty/linux/lib/x64 -lopencv_core -L/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/thirdparty/linux/lib/x64 -lopencv_imgproc -L/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/thirdparty/linux/lib/x64 -lopencv_highgui" ]
+
+unix_s("export LD_LIBRARY_PATH="+tools_path+"lib/"+Version+filesep()+" ");
+tools_path = path_builder + "../../thirdparty/linux/";
+
+C_Flags=["-w -fpermissive -I"+tools_path+"include/opencv -I"+tools_path+"include/opencv2 -Wl,-rpath="+tools_path+"lib/"+Version+filesep()+" "]
+
+Linker_Flag = ["-L"+tools_path+"lib/"+Version+"-lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core "]
+
+end
+
+tbx_build_gateway(toolbox_title,Names,Files,get_absolute_file_path("builder_gateway_cpp.sce"), [], Linker_Flag, C_Flags,"g++");
+
+clear toolbox_title Names Files Linker_Flag C_Flags;
+
+//function builder_gw_cpp()
+// WITHOUT_AUTO_PUTLHSVAR = %t;
+// copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.h",TMPDIR);
+// copyfile("/home/fossee/Desktop/FOSSEE_Image_Processing_Toolbox/sci_gateway/cpp/common.cpp",TMPDIR);
+//tbx_build_gateway("skeleton_imageprocessing", ..
+// names, ..
+// files, ..
+// get_absolute_file_path("builder_gateway_cpp.sce"),[],["-L/usr/local/lib -lopencv_core -L/usr/local/lib -lopencv_highgui -L/usr/lib -lopencv_imgproc -L/usr/lib -lopencv_calib3d -L/usr/lib -lopencv_video -L/usr/lib -lopencv_nonfree -L/usr/lib -lopencv_ml -L/usr/lib -lopencv_objdetect"],["-I/usr/include/scilab -I/usr/include/opencv -I/usr/include/opencv2 "],"g++ ");
+//endfunction
+
+//builder_gw_cpp();
+//clear builder_gw_cpp; // remove builder_gw_cpp on stack
+
diff --git a/sci_gateway/cpp/cleaner.sce b/sci_gateway/cpp/cleaner.sce
new file mode 100644
index 0000000..4afc35c
--- /dev/null
+++ b/sci_gateway/cpp/cleaner.sce
@@ -0,0 +1,22 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// Generated by builder.sce : Please, do not edit this file
+// cleaner.sce
+// ------------------------------------------------------
+curdir = pwd();
+cleaner_path = get_file_path('cleaner.sce');
+chdir(cleaner_path);
+// ------------------------------------------------------
+if fileinfo('loader.sce') <> [] then
+ mdelete('loader.sce');
+end
+// ------------------------------------------------------
+if fileinfo('libFOSSEE_Image_Processing_Toolbox.so') <> [] then
+ mdelete('libFOSSEE_Image_Processing_Toolbox.so');
+end
+// ------------------------------------------------------
+if fileinfo('libFOSSEE_Image_Processing_Toolbox.c') <> [] then
+ mdelete('libFOSSEE_Image_Processing_Toolbox.c');
+end
+// ------------------------------------------------------
+chdir(curdir);
+// ------------------------------------------------------
diff --git a/sci_gateway/cpp/common.cpp b/sci_gateway/cpp/common.cpp
new file mode 100644
index 0000000..c19f58a
--- /dev/null
+++ b/sci_gateway/cpp/common.cpp
@@ -0,0 +1,890 @@
+/***************************************************
+Author : Sukul Bagai
+***************************************************/
+
+//takes the matrix type as parameter and returns a string of the type
+string type2str(int type)
+{
+ string r;
+ uchar depth = type & CV_MAT_DEPTH_MASK;
+ switch ( depth )
+ {
+ case CV_8U: r = "8U"; break;
+ case CV_8S: r = "8S"; break;
+ case CV_16U: r = "16U"; break;
+ case CV_16S: r = "16S"; break;
+ case CV_32S: r = "32S"; break;
+ case CV_32F: r = "32F"; break;
+ case CV_64F: r = "64F"; break;
+ default: r = "User"; break;
+ }
+ return r;
+}
+
+//takes matrix type as parameter and returns no. of channels of the image matrix
+int no_of_channels(int type)
+{
+ uchar chans = 1 + (type >> CV_CN_SHIFT);
+ return chans;
+}
+
+//function used to retrieve image matrix from Scilab environment
+/*
+ We need to retrieve image from the Scilab environment
+ We do this by getting a List of 2-D matrices. The size of the list, in our case is known(either 3 or 1,
+ 3 for a coloured image and 1 for a grayscale image), hence we do not require the dynamic capability of a list.
+ Incase of a 3-channel image, the first matrix will be a matrix with dimensions img.rows X img.cols, and will denote the R(red)
+ values of the image. Similarly, the second will have the G(green) values, and the third will have B(blue) values.
+ For a single-channeled image, we will have only a single matrix
+*/
+int retrieveImage(Mat &image,int pos)
+{
+
+ SciErr sciErr;
+ int iRows=0,iCols=0,i,j,k=0;
+ int *piAddr = NULL;
+ int *piAddrChild = NULL;
+ int iPrec = 0,iItem = 0;
+
+ //retrieving number of items in the list and type of data(integer/float)
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getListItemAddress(pvApiCtx,piAddr,1,&piAddrChild);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getListItemNumber(pvApiCtx,piAddr,&iItem);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ if(isIntegerType(pvApiCtx, piAddrChild))
+ {
+ //getting precision
+ sciErr = getMatrixOfIntegerPrecision(pvApiCtx, piAddrChild, &iPrec);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ switch(iPrec)
+ {
+ case SCI_UINT8: //for unsigned integer 8
+ {
+ if(iItem==3)
+ {
+ unsigned char *pstDataR = NULL;
+ unsigned char *pstDataG = NULL;
+ unsigned char *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_8UC3);
+
+ /*Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this*/
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ }
+ }
+ }
+ else
+ {
+ unsigned char *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_8UC1);
+
+ //Assigning matrix value to pixel
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ break;
+ }
+ case SCI_UINT16: //for unsigned integer 16
+ {
+ if(iItem==3)
+ {
+ short unsigned int *pstDataR = NULL;
+ short unsigned int *pstDataG = NULL;
+ short unsigned int *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16UC3);
+
+ //Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ //i+iRows*j
+ }
+ }
+ }
+ else
+ {
+ short unsigned int *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16UC1);
+
+ //Assigning matrix values to pixels
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ break;
+ }
+ case SCI_INT16: //for signed integer 16
+ {
+ if(iItem==3)
+ {
+ short int *pstDataR = NULL;
+ short int *pstDataG = NULL;
+ short int *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16SC3);
+
+ //Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ }
+ }
+ }
+ else
+ {
+ short int *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16SC1);
+
+ //Assigning image matrix values to pixels
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ break;
+ }
+ }
+ }
+ else //for floating point/ double precision values
+ {
+ if(iItem==3)
+ {
+ double *pstDataR = NULL;
+ double *pstDataG = NULL;
+ double *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddrChild);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddrChild);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_64FC3);
+
+ //Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ }
+ }
+ }
+ else
+ {
+ double *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_64FC1);
+
+ //Assigning image matrix values to pixels
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ }
+ return 1;
+}
+
+//function that returns an image matrix to the Scilab environment
+/*
+ What we now need, is to pass the image matrix to the Scilab environment.
+ We do this by passing a List of 2-D matrices. The size of the list, in our case is known(either 3 or 1,
+ 3 for a coloured image and 1 for a grayscale image), hence we do not require the dynamic capability of a list.
+ Incase of a 3-channel image, the first matrix will be a matrix with dimensions img.rows X img.cols, and will denote the R(red)
+ values of the image. Similarly, the second will have the G(green) values, and the third will have B(blue) values.
+ For a single-channeled image, we will have only a single matrix
+*/
+int returnImage(char *checker,Mat img,int pos)
+{
+ int i,j,k=0;
+ int *piAddrNew = NULL;
+ SciErr sciErr;
+ int num=no_of_channels(img.type()); //num now contains no. of channels of the image
+ //creating the list that will be passed to the Scilab enviroment
+ if(num==3)
+ sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + pos, 3, &piAddrNew);
+ else
+ sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + pos, 1, &piAddrNew);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(strcmp(checker,"8U")==0) //for Unsigned Integer 8
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ unsigned char *r = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+ unsigned char *g = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+ unsigned char *b = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r [i+img.rows*j]=intensity.val[2];
+ g [i+img.rows*j]=intensity.val[1];
+ b [i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols, b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ unsigned char *r = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1,img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ }
+ }
+ else if(strcmp(checker,"16U")==0) //for Unsigned Integer 16
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short unsigned int *r = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+ short unsigned int *g = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+ short unsigned int *b = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols, b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short unsigned int *r = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+
+ }
+ else if(strcmp(checker,"16S")==0) //for Signed Integer 16
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short int *r = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+ short int *g = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+ short int *b = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols, g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols,b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short int *r = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ }
+ }
+ else if(strcmp(checker,"32S")==0) //for Signed Integer 16
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ int *r = (int *)malloc(img.rows * img.cols * sizeof(int));
+ int *g = (int *)malloc(img.rows * img.cols * sizeof(int));
+ int *b = (int *)malloc(img.rows * img.cols * sizeof(int));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols,b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ int *r = (int *)malloc(img.rows * img.cols * sizeof(int));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1,img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ }
+ }
+
+ else if(strcmp(checker,"32F")==0) //for Float 32
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *g = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *b = (double *)malloc(img.rows * img.cols * sizeof(double));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols,b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1,img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ }
+ else if(strcmp(checker,"64F")==0) //For Float 64
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *g = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *b = (double *)malloc(img.rows * img.cols * sizeof(double));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols, b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ }
+
+}
diff --git a/sci_gateway/cpp/common.cpp~ b/sci_gateway/cpp/common.cpp~
new file mode 100644
index 0000000..c19f58a
--- /dev/null
+++ b/sci_gateway/cpp/common.cpp~
@@ -0,0 +1,890 @@
+/***************************************************
+Author : Sukul Bagai
+***************************************************/
+
+//takes the matrix type as parameter and returns a string of the type
+string type2str(int type)
+{
+ string r;
+ uchar depth = type & CV_MAT_DEPTH_MASK;
+ switch ( depth )
+ {
+ case CV_8U: r = "8U"; break;
+ case CV_8S: r = "8S"; break;
+ case CV_16U: r = "16U"; break;
+ case CV_16S: r = "16S"; break;
+ case CV_32S: r = "32S"; break;
+ case CV_32F: r = "32F"; break;
+ case CV_64F: r = "64F"; break;
+ default: r = "User"; break;
+ }
+ return r;
+}
+
+//takes matrix type as parameter and returns no. of channels of the image matrix
+int no_of_channels(int type)
+{
+ uchar chans = 1 + (type >> CV_CN_SHIFT);
+ return chans;
+}
+
+//function used to retrieve image matrix from Scilab environment
+/*
+ We need to retrieve image from the Scilab environment
+ We do this by getting a List of 2-D matrices. The size of the list, in our case is known(either 3 or 1,
+ 3 for a coloured image and 1 for a grayscale image), hence we do not require the dynamic capability of a list.
+ Incase of a 3-channel image, the first matrix will be a matrix with dimensions img.rows X img.cols, and will denote the R(red)
+ values of the image. Similarly, the second will have the G(green) values, and the third will have B(blue) values.
+ For a single-channeled image, we will have only a single matrix
+*/
+int retrieveImage(Mat &image,int pos)
+{
+
+ SciErr sciErr;
+ int iRows=0,iCols=0,i,j,k=0;
+ int *piAddr = NULL;
+ int *piAddrChild = NULL;
+ int iPrec = 0,iItem = 0;
+
+ //retrieving number of items in the list and type of data(integer/float)
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getListItemAddress(pvApiCtx,piAddr,1,&piAddrChild);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getListItemNumber(pvApiCtx,piAddr,&iItem);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ if(isIntegerType(pvApiCtx, piAddrChild))
+ {
+ //getting precision
+ sciErr = getMatrixOfIntegerPrecision(pvApiCtx, piAddrChild, &iPrec);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ switch(iPrec)
+ {
+ case SCI_UINT8: //for unsigned integer 8
+ {
+ if(iItem==3)
+ {
+ unsigned char *pstDataR = NULL;
+ unsigned char *pstDataG = NULL;
+ unsigned char *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_8UC3);
+
+ /*Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this*/
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ }
+ }
+ }
+ else
+ {
+ unsigned char *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger8InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_8UC1);
+
+ //Assigning matrix value to pixel
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ break;
+ }
+ case SCI_UINT16: //for unsigned integer 16
+ {
+ if(iItem==3)
+ {
+ short unsigned int *pstDataR = NULL;
+ short unsigned int *pstDataG = NULL;
+ short unsigned int *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16UC3);
+
+ //Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ //i+iRows*j
+ }
+ }
+ }
+ else
+ {
+ short unsigned int *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfUnsignedInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16UC1);
+
+ //Assigning matrix values to pixels
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ break;
+ }
+ case SCI_INT16: //for signed integer 16
+ {
+ if(iItem==3)
+ {
+ short int *pstDataR = NULL;
+ short int *pstDataG = NULL;
+ short int *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16SC3);
+
+ //Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ }
+ }
+ }
+ else
+ {
+ short int *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfInteger16InList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_16SC1);
+
+ //Assigning image matrix values to pixels
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ break;
+ }
+ }
+ }
+ else //for floating point/ double precision values
+ {
+ if(iItem==3)
+ {
+ double *pstDataR = NULL;
+ double *pstDataG = NULL;
+ double *pstDataB = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddrChild);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddrChild);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_64FC3);
+
+ //Now that we have the 3 matrices(R,G,B), we need to assign those values to the pixels. The following code does this
+ k=0;
+ for(i=0;i(i,j)[2]=pstDataR[i+iRows*j];
+ image.at(i,j)[1]=pstDataG[i+iRows*j];
+ image.at(i,j)[0]=pstDataB[i+iRows*j];
+ }
+ }
+ }
+ else
+ {
+ double *pstDataR = NULL;
+ sciErr = getVarAddressFromPosition(pvApiCtx,pos,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //creating an image matrix with the no. of rows and columns we retrieved, and assigning it to be of the form 8-bit unsinged integers
+ image = Mat(iRows,iCols,CV_64FC1);
+
+ //Assigning image matrix values to pixels
+ k=0;
+ for(i=0;i(i,j)=pstDataR[i+iRows*j];
+ }
+ }
+ return 1;
+}
+
+//function that returns an image matrix to the Scilab environment
+/*
+ What we now need, is to pass the image matrix to the Scilab environment.
+ We do this by passing a List of 2-D matrices. The size of the list, in our case is known(either 3 or 1,
+ 3 for a coloured image and 1 for a grayscale image), hence we do not require the dynamic capability of a list.
+ Incase of a 3-channel image, the first matrix will be a matrix with dimensions img.rows X img.cols, and will denote the R(red)
+ values of the image. Similarly, the second will have the G(green) values, and the third will have B(blue) values.
+ For a single-channeled image, we will have only a single matrix
+*/
+int returnImage(char *checker,Mat img,int pos)
+{
+ int i,j,k=0;
+ int *piAddrNew = NULL;
+ SciErr sciErr;
+ int num=no_of_channels(img.type()); //num now contains no. of channels of the image
+ //creating the list that will be passed to the Scilab enviroment
+ if(num==3)
+ sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + pos, 3, &piAddrNew);
+ else
+ sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + pos, 1, &piAddrNew);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(strcmp(checker,"8U")==0) //for Unsigned Integer 8
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ unsigned char *r = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+ unsigned char *g = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+ unsigned char *b = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r [i+img.rows*j]=intensity.val[2];
+ g [i+img.rows*j]=intensity.val[1];
+ b [i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols, b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ unsigned char *r = (unsigned char *)malloc(img.rows * img.cols * sizeof(unsigned char));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger8InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1,img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ }
+ }
+ else if(strcmp(checker,"16U")==0) //for Unsigned Integer 16
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short unsigned int *r = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+ short unsigned int *g = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+ short unsigned int *b = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols, b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short unsigned int *r = (short unsigned int *)malloc(img.rows * img.cols * sizeof(short unsigned int));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+
+ }
+ else if(strcmp(checker,"16S")==0) //for Signed Integer 16
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short int *r = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+ short int *g = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+ short int *b = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols, g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols,b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ short int *r = (short int *)malloc(img.rows * img.cols * sizeof(short int));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ }
+ }
+ else if(strcmp(checker,"32S")==0) //for Signed Integer 16
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ int *r = (int *)malloc(img.rows * img.cols * sizeof(int));
+ int *g = (int *)malloc(img.rows * img.cols * sizeof(int));
+ int *b = (int *)malloc(img.rows * img.cols * sizeof(int));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols,b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ int *r = (int *)malloc(img.rows * img.cols * sizeof(int));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfInteger32InList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1,img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ }
+ }
+
+ else if(strcmp(checker,"32F")==0) //for Float 32
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *g = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *b = (double *)malloc(img.rows * img.cols * sizeof(double));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols,b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1,img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ }
+ else if(strcmp(checker,"64F")==0) //For Float 64
+ {
+ if(num==3)
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *g = (double *)malloc(img.rows * img.cols * sizeof(double));
+ double *b = (double *)malloc(img.rows * img.cols * sizeof(double));
+ //The next block of code retrieves the RGB values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+ r[i+img.rows*j]=intensity.val[2];
+ g[i+img.rows*j]=intensity.val[1];
+ b[i+img.rows*j]=intensity.val[0];
+ }
+ }
+
+ //Adding the R value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols,r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the G value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 2, img.rows,img.cols,g);
+ free(g);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //Adding the B value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 3, img.rows,img.cols, b);
+ free(b);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ else
+ {
+ //Since we need to pass a single pointer as an arguement, for a 2-D matrix, we define it in this manner
+ double *r = (double *)malloc(img.rows * img.cols * sizeof(double));
+
+ //The next block of code retrieves the image colour values at a specified pixel, and assigns it to the matrices
+ for(i=0;i(i, j);
+
+ //Adding the image colour value matrix to the list
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+pos , piAddrNew, 1, img.rows,img.cols, r);
+ free(r);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ }
+ }
+
+}
diff --git a/sci_gateway/cpp/common.h b/sci_gateway/cpp/common.h
new file mode 100644
index 0000000..5de6cf7
--- /dev/null
+++ b/sci_gateway/cpp/common.h
@@ -0,0 +1,9 @@
+/***************************************************
+Author : Sukul Bagai
+***************************************************/
+
+string type2str(int type);
+int no_of_channels(int type);
+int retrieveImage(Mat &image,int pos);
+int returnImage(char *checker,Mat img,int pos);
+
diff --git a/sci_gateway/cpp/dctmtx.cpp b/sci_gateway/cpp/dctmtx.cpp
new file mode 100644
index 0000000..17683d2
--- /dev/null
+++ b/sci_gateway/cpp/dctmtx.cpp
@@ -0,0 +1,96 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat */
+/* ==================================================================== */
+/* Syntax : return_n*n_matrix=dctmtx(double n) */
+
+/* ==================================================================== */
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+#include
+#include
+using namespace cv;
+using namespace std;
+
+
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "../common.h"
+ #define PI 3.14
+
+ int dctmtx(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows=0;
+ int iCols=0;
+ int piRows=0;
+ int piCols=0;
+ int* piAddr2=NULL;
+ int* piAddr1=NULL;
+ int* piAddr3=NULL;
+ double *value=NULL;
+ int* piLen=NULL;
+ char **val;
+ int i,j;
+ int error;
+ double n;
+ Mat img,dst;
+ //checking input and output argument
+ CheckInputArgument(pvApiCtx,1,1);
+ CheckOutputArgument(pvApiCtx,1,1);
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of first argument
+ error=getScalarDouble(pvApiCtx,piAddr1,&n) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ int k=0;
+ double *mat;
+ int s=n;
+ mat=(double *)malloc(sizeof(double)*n*n);
+ for(int i=0;i
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+#include
+#include
+using namespace cv;
+using namespace std;
+
+
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "../common.h"
+ #define REF_X 95.047; // Observer= 2°, Illuminant= D65
+ #define REF_Y 100.000;
+ #define REF_Z 108.883;
+
+ struct Color
+ {
+ float R,G,B,X,Y,Z,L,a,b;
+ };
+
+ Color lab2xyz1(float l, float a, float b)
+ {
+ float y = (l + 16) / 116;
+ float x = a / 500 + y;
+ float z = y - b / 200;
+ if(pow(y,3) > 0.008856)
+ {
+ y = pow(y,3);
+ }
+ else
+ {
+ y =(y-16/116)/7.787;
+ }
+ if (pow(x,3) > 0.008856)
+ {
+ x = pow(x,3);
+ }
+ else
+ {
+ x = (x-16/116)/7.787;
+ }
+ if (pow(z,3) > 0.008856)
+ {
+ z = pow(z,3);
+ }
+ else
+ {
+ z =(z-16/ 116 ) / 7.787;
+ }
+
+ Color xyz;
+ xyz.X= x * REF_X;
+ xyz.Y = y * REF_Y;
+ xyz.Z = z * REF_Z;
+ return xyz;
+
+ }
+
+ Color lab2xyz2(float l, float a, float b,char *s)
+ {
+ double REF_X1;
+ double REF_Y1;
+ double REF_Z1;
+ //if else condition for checking various input arguments and assign values accordingly
+ if(!strcmp(s,"a"))
+ {
+ REF_X1=1.0985;
+ REF_Y1= 1.0000;
+ REF_Z1=0.3558;
+ }
+ else if(!strcmp(s,"c"))
+ {
+ REF_X1=0.9807;
+ REF_Y1= 1.0000;
+ REF_Z1=1.1822;
+ }
+ else if(!strcmp(s,"d50"))
+ {
+ REF_X1=0.9642;
+ REF_Y1= 1.0000;
+ REF_Z1=0.8251;
+ }
+ else if(!strcmp(s,"d65"))
+ {
+ REF_X1=0.9504;
+ REF_Y1= 1.0000;
+ REF_Z1= 1.0888;
+ }
+ else if(!strcmp(s,"icc"))
+ {
+ REF_X1=0.962;
+ REF_Y1=1.000;
+ REF_Z1= 0.8249;
+ }
+ else if(!strcmp(s,"e"))
+ {
+ REF_X1=1.000;
+ REF_Y1=1.000;
+ REF_Z1=1.000;
+ }
+ float y = (l + 16) / 116;
+ float x = a / 500 + y;
+ float z = y - b / 200;
+ if (pow(y,3) > 0.008856)
+ {
+ y=pow(y,3);
+ }
+ else
+ {
+ y=(y-16/116)/7.787;
+ }
+ if(pow(x,3) > 0.008856)
+ {
+ x=pow(x,3);
+ }
+ else
+ {
+ x=(x-16/116)/7.787;
+ }
+ if (pow(z,3) > 0.008856)
+ {
+ z=pow(z,3);
+ }
+ else
+ {
+ z=(z-16/116)/7.787;
+ }
+ Color xyz;
+ xyz.X= x * REF_X1;
+ xyz.Y = y * REF_Y1;
+ xyz.Z = z * REF_Z1;
+ return xyz;
+ }
+ int lab2xyz(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows=0;
+ int iCols=0;
+ int piRows=0;
+ int piCols=0;
+ int* piAddr=NULL;
+ int* piAddr1=NULL;
+ int* piAddr3=NULL;
+ double *value=NULL;
+ int* piLen=NULL;
+ char **val;
+ int i,j;
+ int error;
+ Color out;
+ double check;
+ Mat img,dst;
+ float R,G,B;
+ int k=0;
+ int *piAddrNew = NULL;
+ double *pstDataR=NULL;
+ double *pstDataG=NULL;
+ double *pstDataB=NULL;
+ double *r,*g,*b;
+ int m=0;
+ //checking output argument
+ CheckOutputArgument(pvApiCtx,1,1);
+ //retrive address of the list
+ sciErr=getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the R values
+ sciErr=getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the G values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive address of the list
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrive the matrix of the B values
+ sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ r=(double *)malloc(sizeof(double)*iRows*iCols);
+ g=(double *)malloc(sizeof(double)*iRows*iCols);
+ b=(double *)malloc(sizeof(double)*iRows*iCols);
+ for(int i=0;i
+#include
+#include
+#include
+static int direct_gateway(char *fname,void F(void)) { F();return 0;};
+extern Gatefunc opencv_blur;
+extern Gatefunc opencv_circle;
+extern Gatefunc opencv_dilate;
+extern Gatefunc opencv_erode;
+extern Gatefunc opencv_imcrop;
+extern Gatefunc opencv_impixel;
+extern Gatefunc opencv_imread;
+extern Gatefunc opencv_imresize;
+extern Gatefunc opencv_imsharpen;
+extern Gatefunc opencv_imwrite;
+extern Gatefunc opencv_imrotate;
+extern Gatefunc opencv_rgb2gray;
+static GenericTable Tab[]={
+ {(Myinterfun)sci_gateway,opencv_blur,"raw_blur"},
+ {(Myinterfun)sci_gateway,opencv_circle,"raw_circle"},
+ {(Myinterfun)sci_gateway,opencv_dilate,"raw_dilate"},
+ {(Myinterfun)sci_gateway,opencv_erode,"raw_erode"},
+ {(Myinterfun)sci_gateway,opencv_imcrop,"raw_imcrop"},
+ {(Myinterfun)sci_gateway,opencv_impixel,"raw_impixel"},
+ {(Myinterfun)sci_gateway,opencv_imread,"raw_imread"},
+ {(Myinterfun)sci_gateway,opencv_imresize,"raw_imresize"},
+ {(Myinterfun)sci_gateway,opencv_imsharpen,"raw_imsharpen"},
+ {(Myinterfun)sci_gateway,opencv_imwrite,"raw_imwrite"},
+ {(Myinterfun)sci_gateway,opencv_imrotate,"raw_imrotate"},
+ {(Myinterfun)sci_gateway,opencv_rgb2gray,"raw_rgb2gray"},
+};
+
+int C2F(libFOSSEE_Image_Processing_Toolbox)()
+{
+ Rhs = Max(0, Rhs);
+ if (*(Tab[Fin-1].f) != NULL)
+ {
+ if(pvApiCtx == NULL)
+ {
+ pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
+ }
+ pvApiCtx->pstName = (char*)Tab[Fin-1].name;
+ (*(Tab[Fin-1].f))(Tab[Fin-1].name,Tab[Fin-1].F);
+ }
+ return 0;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/sci_gateway/cpp/libFOSSEE_Image_Processing_Toolbox.so b/sci_gateway/cpp/libFOSSEE_Image_Processing_Toolbox.so
new file mode 100755
index 0000000..541d4a4
Binary files /dev/null and b/sci_gateway/cpp/libFOSSEE_Image_Processing_Toolbox.so differ
diff --git a/sci_gateway/cpp/loader.sce b/sci_gateway/cpp/loader.sce
new file mode 100644
index 0000000..eedb234
--- /dev/null
+++ b/sci_gateway/cpp/loader.sce
@@ -0,0 +1,32 @@
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// Generated by builder.sce : Please, do not edit this file
+// ----------------------------------------------------------------------------
+//
+libFOSSEE_Image_Pro_path = get_absolute_file_path('loader.sce');
+//
+// ulink previous function with same name
+[bOK, ilib] = c_link('libFOSSEE_Image_Processing_Toolbox');
+if bOK then
+ ulink(ilib);
+end
+//
+list_functions = [ 'raw_blur';
+ 'raw_circle';
+ 'raw_dilate';
+ 'raw_erode';
+ 'raw_imcrop';
+ 'raw_impixel';
+ 'raw_imread';
+ 'raw_imresize';
+ 'raw_imsharpen';
+ 'raw_imwrite';
+ 'raw_imrotate';
+ 'raw_rgb2gray';
+];
+addinter(libFOSSEE_Image_Pro_path + filesep() + 'libFOSSEE_Image_Processing_Toolbox' + getdynlibext(), 'libFOSSEE_Image_Processing_Toolbox', list_functions);
+// remove temp. variables on stack
+clear libFOSSEE_Image_Pro_path;
+clear bOK;
+clear ilib;
+clear list_functions;
+// ----------------------------------------------------------------------------
diff --git a/sci_gateway/cpp/multithresh.cpp b/sci_gateway/cpp/multithresh.cpp
new file mode 100644
index 0000000..05a82f3
--- /dev/null
+++ b/sci_gateway/cpp/multithresh.cpp
@@ -0,0 +1,208 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat */
+/* ==================================================================== */
+/* Syntax : return_matrix_of_threshold_levels=multithresh(InputArray src,int level) */
+/* ==================================================================== */
+/*The function return various threshold levels:*/
+/* ==================================================================== */
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+#include
+using namespace cv;
+using namespace std;
+
+
+extern "C"
+{
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ #include "../common.h"
+
+ //global variables
+ float **p,**s,**h;
+ float **as,**ds;
+ float fast(int n,int i,int j,int index[])
+ {
+ int k,index1;
+ float s;
+ float max = INT_MIN;
+ if(i>256)
+ {
+ return INT_MIN;
+ }
+ if(n==0)
+ return h[i][j];
+ if(ds[i][n]!=-1.000000)
+ return ds[i][n];
+ for(k=i;k<=256;k++)
+ {
+ s=h[i][k]+fast(n-1,k+1,j,index);
+ if(s>max)
+ {
+ max=s;
+ as[i][n]=k;
+ index[n]=k;
+
+ }
+ }
+ return ds[i][n]=max;
+ }
+
+ int multithresh(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int iCols = 0;
+ int piRows = 0;
+ int piCols = 0;
+ int* piAddr2=NULL ;
+ double thresh;
+ float C;
+ int i,j;
+ int error;
+ //checking input argument
+ CheckInputArgument(pvApiCtx,2,2);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx,1,1);
+ //for first argument
+ Mat img;
+ retrieveImage(img,1);
+ //second argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of fifth argument
+ error=getScalarDouble(pvApiCtx,piAddr2,&thresh) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //code for histogram calculation
+ Mat imageh;
+ cvtColor(img, imageh, CV_BGR2GRAY);
+ // number of bins
+ int histSize[1] = {256};
+ // min andax pixel value
+ float hranges[2] = {0, 256};
+ const float* ranges[1] = {hranges};
+ int channels[1] = {0}; // only 1 channel used
+ cv::MatND hist;
+ calcHist(&imageh, 1, channels, cv::Mat(), hist, 1, histSize, ranges);
+ //code for ostu method for histogram calculation
+ float *hi;
+ hi=(float *)malloc(sizeof(float)*257);
+ float nPixels = imageh.total();
+ for(i=1;i<257;i++)
+ {
+ hi[i]=(float)(hist.at(i-1));
+ }
+ p=(float **)malloc(sizeof(float *)*257);
+ for(i=0;i<257;i++)
+ {
+ p[i]=(float *)malloc(sizeof(float)*257);
+ }
+ s=(float **)malloc(sizeof(float *)*257);
+ for(i=0;i<257;i++)
+ {
+ s[i]=(float *)malloc(sizeof(float)*257);
+ }
+ h=(float **)malloc(sizeof(float *)*257);
+ for(i=0;i<257;i++)
+ {
+ h[i]=(float *)malloc(sizeof(float)*257);
+ }
+ for(i=0;i<257;i++)
+ {
+ for(j=0;j<257;j++)
+ {
+ p[i][j]=0;
+ s[i][j]=0;
+ h[i][j]=0;
+ }
+ }
+ p[1][0]=0;
+ s[1][0]=0;
+ for(i=0;i<256;i++)
+ {
+ p[1][i+1]=p[1][i]+hi[i+1];
+ s[1][i+1]=s[1][i]+((i+1)*(hi[i+1]));
+ }
+ for(i=2;i<257;i++)
+ {
+ for(j=1;j<257;j++)
+ {
+ p[i][j]=p[1][j]-p[1][i-1];
+ s[i][j]=s[1][j]-s[1][i-1];
+ }
+ }
+ float temp,temp1;
+ for(j=1;j<257;j++)
+ {
+ for(i=1;i<=j;i++)
+ {
+ temp=(s[i][j])*(s[i][j]);
+ temp1=(temp/p[i][j]);
+ h[i][j]=temp1;
+ }
+ }
+ as=(float **)malloc(sizeof(float *)*257);
+ for(i=0;i<257;i++)
+ {
+ as[i]=(float *)malloc(sizeof(float)*257);
+ }
+ ds=(float **)malloc(sizeof(float *)*257);
+ for(i=0;i<257;i++)
+ {
+ ds[i]=(float *)malloc(sizeof(float)*257);
+ }
+ for(i=0;i<257;i++)
+ {
+ for(j=0;j<257;j++)
+ {
+ ds[i][j]=-1.000000;
+ }
+ }
+ int n=(int )thresh;
+ int index[n+1];
+ fast(n,1,256,index);
+ int a=0;
+ double *output=NULL;int k=0;
+ output=( double *)malloc(sizeof(double)*n);
+ for(i=n;i>=1;i--)
+ {
+ a=as[a+1][i];
+ output[k]=a;
+ k++;
+ }
+ for(i=0;i<257;i++)
+ {
+ free(h[i]);
+ free(as[i]);
+ free(ds[i]);
+ }
+ free(h);
+ free(as);
+ free(ds);
+ sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1,1,n,output);
+ free(output);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ AssignOutputVariable(pvApiCtx,1) = nbInputArgument(pvApiCtx) + 1;
+ ReturnArguments(pvApiCtx);
+ return 0;
+ }
+}
diff --git a/sci_gateway/cpp/opencv_adapthisteq.cpp b/sci_gateway/cpp/opencv_adapthisteq.cpp
new file mode 100644
index 0000000..334f529
--- /dev/null
+++ b/sci_gateway/cpp/opencv_adapthisteq.cpp
@@ -0,0 +1,201 @@
+/*************************************************************************************
+Author : Yash S. Bhalgat
+***************************************************************************************
+---------- Performs Contrast Limited Adaptive Histogram Equalisation -------------
+Usage :
+ 1) output_img = adapthisteq(input_img);
+ In this usage, the image itself is used as the guidance image.
+
+ 2) output_img = adapthisteq(input_img, clip_limit);
+Example :
+ img = imread("lena.jpg");
+ imshow(img);
+ output_img = adapthisteq(img, img, 9);
+ imshow(output_img);
+***********************************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include // std::max
+
+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_adapthisteq(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr2 = NULL;
+ int i,j,k;
+ double clip_limit;
+
+ //Default clip limit
+ clip_limit = 0.001;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 2);
+ CheckOutputArgument(pvApiCtx, 1, 1);
+
+ int inputarg = *getNbInputArgument(pvApiCtx);
+
+
+ Mat input_img;
+ retrieveImage(input_img,1);
+
+ if(inputarg == 2){
+ //for value of clip_limit
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &clip_limit);
+ if(intErr)
+ return intErr;
+ }
+
+
+ //Main function
+ //cvtColor(input_img, input_img, CV_RGB2GRAY);
+
+ float C[256];
+
+ int row = input_img.rows;
+ int col = input_img.cols;
+
+ int window_x = 90;
+ int window_y = 90;
+
+ int min_x, min_y, max_x, max_y;
+ Mat window_matrix;
+
+ //float clip_limit = 0.001;
+
+ int histSize = 256; //from 0 to 255
+ float range[] = { 0, 256 } ;
+ const float* histRange = { range };
+
+ Mat H;
+ Mat output_img = Mat::zeros(input_img.size(), input_img.type());
+
+ if(input_img.channels()==1){
+ for(int i=0; i(i,j)==0) output_img.at(i,j) =0;
+ else{
+ calcHist(&window_matrix, 1, 0, Mat(), H, 1, &histSize, &histRange);
+
+ int N = window_matrix.rows;
+ int M = window_matrix.cols;
+ H=H/(N*M);
+ // cout<(0,z) > clip_limit) H.at(0,z) = clip_limit;
+ }
+
+ float contrastArea = 1.0 - cv::sum(H).val[0];
+ float height = contrastArea / 256.00;
+
+ H = H + height;
+ //cout<(0,0)*255;
+ for(int k=1; k<256; k++){
+ C[k]= C[k-1] + H.at(0,k)*255;
+ }
+ //cout<(i,j) = C[input_img.at(i,j)];
+ }
+ }
+ }
+ }
+ else if(input_img.channels()==3){
+ vector Ichannels;
+ split(input_img, Ichannels);
+
+ for(int d=0; d<3; d++){
+ for(int i=0; i(i,j)==0) output_img.at(i,j)[d] =0;
+ else{
+ calcHist(&window_matrix, 1, 0, Mat(), H, 1, &histSize, &histRange);
+
+ int N = window_matrix.rows;
+ int M = window_matrix.cols;
+ H=H/(N*M);
+ // cout<(0,z) > clip_limit) H.at(0,z) = clip_limit;
+ }
+
+ float contrastArea = 1.0 - cv::sum(H).val[0];
+ float height = contrastArea / 256.00;
+
+ H = H + height;
+ //cout<(0,0)*255;
+ for(int k=1; k<256; k++){
+ C[k]= C[k-1] + H.at(0,k)*255;
+ }
+ //cout<(i,j)[d] = C[Ichannels[d].at(i,j)];
+ }
+ }
+ }
+ }
+
+
+ }
+
+
+
+ //returning image
+ string tempstring = type2str(output_img.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,output_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/cpp/opencv_affine2d.cpp b/sci_gateway/cpp/opencv_affine2d.cpp
new file mode 100644
index 0000000..8dc1200
--- /dev/null
+++ b/sci_gateway/cpp/opencv_affine2d.cpp
@@ -0,0 +1,122 @@
+/*******************************************************************
+Author : Yash S. Bhalgat
+********************************************************************
+Usage : T = affine2d(A);
+Output: T - 3x3 matrix equivalent to tform.T matrix in Matlab output
+********************************************************************/
+
+#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_affine2d(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piLen = NULL;
+ int *piAddr1 = NULL;
+ char **ddepth = NULL;
+ int i,j,k;
+ double *inpMatrix;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 1);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ //for inputMatrix
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr1, &iRows, &iCols ,&inpMatrix);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ int n=iRows;
+ double inputMatrix[n][n];
+ //assigning values to actual kernelMatrix
+ for(i=0;i(i,j) = warp_mat_t.at(i,j);
+
+ outputMatrix.at(0,2) = 0;
+ outputMatrix.at(1,2) = 0;
+ outputMatrix.at(2,2) = 1.0;
+
+ //returning image
+ string tempstring = type2str(outputMatrix.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,outputMatrix,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/cpp/opencv_applycform.cpp b/sci_gateway/cpp/opencv_applycform.cpp
new file mode 100644
index 0000000..ea29604
--- /dev/null
+++ b/sci_gateway/cpp/opencv_applycform.cpp
@@ -0,0 +1,371 @@
+/********************************************************
+Function :applycform
+Syntax :B=applycform(image,string)
+*string : 'xyz2lab' 'lab2xyz' 'srgb2xyz'
+ 'xyz2srgb' 'srgb2lab' 'lab2srgb'
+Author : Tess Zacharias
+********************************************************/
+
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include "string.h"
+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"
+ #define REF_X .95047; // Observer= 2°, Illuminant= D65
+ #define REF_Y 1.00000;
+ #define REF_Z 1.08883;
+ struct Color
+{
+ float R,G,B,X,Y,Z,R1,G1,B1,r,g,b;
+};
+Color rgb2lab(float R, float G, float B)
+{
+
+ float r = R/255.f; //R 0..1
+ float g = G/255.f; //G 0..1
+ float b = B/255.f; //B 0..1
+ float eps = 216.f/24389.f;
+ float k = 24389.f/27.f;
+ float fx,fy,fz;
+ if (r <= 0.04045)
+ r = r/12.92;
+ else
+ r = (float)pow((r+0.055)/1.055,2.4);
+ if (g <= 0.04045)
+ g = g/12.92;
+ else
+ g = (float)pow((g+0.055)/1.055,2.4);
+ if (b <= 0.04045)
+ b = b/12.92;
+ else
+ b = (float)pow((b+0.055)/1.055,2.4);
+ float X = 0.4124*r + 0.3576*g + 0.1805*b;
+ float Y = 0.2126*r + 0.7152 *g + 0.0722 *b;
+ float Z = 0.0193*r + 0.1192*g + 0.9505 *b;
+ float xr = X/REF_X;
+ float yr = Y/REF_Y;
+ float zr = Z/REF_Z;
+ if ( xr > eps )
+ fx = (float)pow(xr, 1/3.);
+ else
+ fx = (float) ((k * xr + 16.) / 116.);
+ if ( yr > eps )
+ fy = (float)pow(yr, 1/3.);
+ else
+ fy = (float) ((k * yr + 16.) / 116.);
+ if ( zr > eps )
+ fz = (float)pow(zr, 1/3.);
+ else
+ fz = (float) ((k * zr + 16.) / 116);
+ Color rgb;
+ rgb.R1= ( 116 * fy ) - 16;
+ rgb.G1= 500*(fx-fy);
+ rgb.B1= 200*(fy-fz);
+ return rgb;
+
+}
+Color xyz2lab(float R, float G, float B)
+{
+ float eps = 216.f/24389.f;
+ float k = 24389.f/27.f;
+ float fx,fy,fz,Ls,as,bs;
+ float xr=R/REF_X;
+ float yr=G/REF_Y;
+ float zr=B/REF_Z;
+ if ( xr > eps )
+ fx = (float)pow(xr, 1/3.);
+ else
+ fx = (float) ((k * xr + 16.) / 116.);
+ if ( yr > eps )
+ fy = (float)pow(yr, 1/3.);
+ else
+ fy = (float) ((k * yr + 16.) / 116.);
+ if ( zr > eps )
+ fz = (float)pow(zr, 1/3.);
+ else
+ fz = (float) ((k * zr + 16.) / 116);
+ Ls = ( 116 * fy ) - 16;
+ as = 500*(fx-fy);
+ bs = 200*(fy-fz);
+ Color rgb;
+ rgb.R1 =Ls;
+ rgb.G1 =as;
+ rgb.B1 =bs;
+ return rgb;
+}
+Color rgb2xyz(float R, float G, float B)
+{
+
+ float r = R/255.f; //R 0..1
+ float g = G/255.f; //G 0..1
+ float b = B/255.f; //B 0..1
+ float eps = 216.f/24389.f;
+ float k = 24389.f/27.f;
+ float fx,fy,fz;
+ if (r <= 0.04045)
+ r = r/12.92;
+ else
+ r = (float)pow((r+0.055)/1.055,2.4);
+ if (g <= 0.04045)
+ g = g/12.92;
+ else
+ g = (float)pow((g+0.055)/1.055,2.4);
+ if (b <= 0.04045)
+ b = b/12.92;
+ else
+ b = (float)pow((b+0.055)/1.055,2.4);
+ float X1 = 0.4124*r + 0.3576*g + 0.1805*b;
+ float Y1 = 0.2126*r + 0.7152 *g + 0.0722 *b;
+ float Z1 = 0.0193*r + 0.1192*g + 0.9505 *b;
+ float xr = X1;
+ float yr = Y1;
+ float zr = Z1;
+ Color rgb;
+ rgb.R1= xr;
+ rgb.G1= yr;
+ rgb.B1= zr;
+ return rgb;
+
+}
+Color lab2xyz(float R, float G, float B)
+{
+ float y = (R+ 16) / 116;
+ float x = G / 500 + y;
+ float z = y - B/ 200;
+
+ if ( pow( y , 3 ) > 0.008856 ) { y = pow( y , 3 ); }
+ else { y = ( y - 16 / 116 ) / 7.787; }
+ if ( pow( x , 3 ) > 0.008856 ) { x = pow( x , 3 ); }
+ else { x = ( x - 16 / 116 ) / 7.787; }
+ if ( pow( z , 3 ) > 0.008856 ) { z = pow( z , 3 ); }
+ else { z = ( z - 16 / 116 ) / 7.787; }
+
+ Color rgb;
+ rgb.R1= x * REF_X;
+ rgb.G1= y * REF_Y;
+ rgb.B1= z * REF_Z;
+ return rgb;
+
+
+}
+Color xyz2rgb(float R, float G, float B)
+{
+ float x = R;
+ float y = G;
+ float z = B;
+ float R1 = 3.2404542*x-1.5371385*y-0.4985314*z;
+ float G1 =-0.9692660*x+1.8760108*y+0.0415560 *z;
+ float B1 = 0.0556434*x-0.2040259*y+1.0572252*z;
+ if( R1 > 0.0031308 )
+ R1 = 1.055 * ( pow( R1, 1./2.4 ) ) - 0.055;
+ else
+ R1 = 12.92 * R1;
+ if( G1 > 0.0031308 )
+ G1 = 1.055 * ( pow( G1, 1./2.4 ) ) - 0.055;
+ else
+ G1 = 12.92 * G1;
+ if( B1 > 0.0031308 )
+ B1 = 1.055 * ( pow( B1, 1./2.4 ) ) - 0.055;
+ else
+ B1= 12.92 * B1;
+
+ Color rgb;
+ rgb.R1= R1;
+ rgb.G1= G1;
+ rgb.B1= B1;
+ return rgb;
+
+
+}
+Color lab2rgb(float R, float G, float B)
+{
+ float y = (R + 16) / 116;
+ float x = G / 500 + y;
+ float z = y-B / 200;
+ if ( pow( y , 3 ) > 0.008856 )
+ {
+ y = pow( y , 3 );
+ }
+ else
+ {
+ y = ( y - 16 / 116 ) / 7.787;
+ }
+ if ( pow( x , 3 ) > 0.008856 )
+ {
+ x = pow( x , 3 );
+ }
+ else
+ {
+ x = ( x - 16 / 116 ) / 7.787;
+ }
+ if ( pow( z , 3 ) > 0.008856 )
+ {
+ z = pow( z , 3 );
+ }
+ else
+ {
+ z = ( z - 16 / 116 ) / 7.787;
+ }
+ float X= x *REF_X;
+ float Y= y *REF_Y;
+ float Z = z *REF_Z;
+ float R1=3.240479*X-1.537150*Y -0.498535 *Z;
+ float G1=-0.969256*X+1.875992 *Y+0.041556* Z;
+ float B1=0.055648*X-0.204043*Y +1.057311*Z;
+ if( R1 > 0.0031308 )
+ R1 = 1.055 * ( pow( R1, 1./2.4 ) ) - 0.055;
+ else
+ R1 = 12.92 * R1;
+ if( G1 > 0.0031308 )
+ G1 = 1.055 * ( pow( G1, 1./2.4 ) ) - 0.055;
+ else
+ G1 = 12.92 * G1;
+ if( B1 > 0.0031308 )
+ B1 = 1.055 * ( pow( B1, 1./2.4 ) ) - 0.055;
+ else
+ B1 = 12.92 * B1;
+
+
+ Color rgb;
+ rgb.R1= R1;
+ rgb.G1= G1;
+ rgb.B1= B1;
+ return rgb;
+
+
+}
+ int opencv_applycform(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int iCols = 0;
+ int* piAddr2=NULL;
+ int* piAddr1=NULL;
+ int* piAddr3=NULL;
+ int* piaddr=NULL;
+ char *value=NULL;
+ int* piLen = NULL;
+ char **val;
+ int i,j;
+ int error;
+ Color out;
+ double check;
+ Mat img;
+ float R,G,B;
+ char* pstData = NULL;
+ int *piAddrNew = NULL;
+ int* piAddr4=NULL;
+ int iRet = 0;
+ CheckInputArgument(pvApiCtx,2,2);
+ CheckOutputArgument(pvApiCtx,1,1);
+ int m=0;
+ retrieveImage(img,1);
+ double *r1,*g1,*b1;
+ r1=(double *)malloc(sizeof(double)*img.rows*img.cols);
+ g1=(double *)malloc(sizeof(double)*img.rows*img.cols);
+ b1=(double *)malloc(sizeof(double)*img.rows*img.cols);
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2,&piAddr2);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ if(isStringType(pvApiCtx, piAddr2))
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+
+ iRet = getAllocatedSingleString(pvApiCtx, piAddr2, &pstData);
+ }
+ }
+
+ for(int i=0;i(i,j);
+ R= intensity.val[2];
+ G= intensity.val[1];
+ B= intensity.val[0];
+ if(strcasecmp(pstData,"xyz2lab")==0)
+ {
+ out=xyz2lab(R,G,B);
+ }
+ else if(strcasecmp(pstData,"lab2xyz")==0)
+ {
+ out=lab2xyz(R,G,B);
+ }
+ else if(strcasecmp(pstData,"srgb2xyz")==0)
+ {
+ out=rgb2xyz(R,G,B);
+ }
+ else if(strcasecmp(pstData,"xyz2srgb")==0)
+ {
+ out=xyz2rgb(R,G,B);
+ }
+ else if(strcasecmp(pstData,"srgb2lab")==0)
+ {
+ out=rgb2lab(R,G,B);
+ }
+ else if(strcasecmp(pstData,"lab2srgb")==0)
+ {
+ out=rgb2lab(R,G,B);
+ }
+ else
+ {
+ sciprint("Expected input argument 'xyz2lab' 'lab2xyz' 'srgb2xyz' 'xyz2srgb' 'srgb2lab' 'lab2srgb'");
+ return 0;
+ }
+ r1[m]=out.R1;
+ g1[m]=out.G1;
+ b1[m++]=out.B1;
+ }
+ }
+ sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, img.rows,img.cols, r1);
+ free(r1);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, img.rows, img.cols, g1);
+ free(g1);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, img.rows, img.cols, b1);
+ free(b1);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ // free(checker);
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ ReturnArguments(pvApiCtx);
+ return 0;
+ }
+}
diff --git a/sci_gateway/cpp/opencv_approxpolyDP.cpp b/sci_gateway/cpp/opencv_approxpolyDP.cpp
new file mode 100644
index 0000000..95cd835
--- /dev/null
+++ b/sci_gateway/cpp/opencv_approxpolyDP.cpp
@@ -0,0 +1,151 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat */
+/* ==================================================================== */
+/* Syntax : output_curve=approxpolyDP(input_curve,double epsilon, bool closed)*/
+/* ==================================================================== */
+#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 "../common.h"
+ int approxpolyDP(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int 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 *pstData = NULL;
+ char **pstData2 = NULL;
+ double *rrows;
+ double *rcols;
+ int noofitem;
+ double res;
+ double epsilon;
+ int error;
+ //checking input argument
+ CheckInputArgument(pvApiCtx,3,3);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1);
+ //for first argument
+ // get Address of first input
+ sciErr =getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrieve input array
+ //SciErr getMatrixOfDouble(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, double** _pdblReal)
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols,&pstData);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ int k=0;
+ vector contours;
+ for(int i=0;i approx;
+
+ if(!strcmp("True",pstData2[0]))
+ {
+ approxPolyDP(contours, approx,epsilon, true);
+ }
+ else if(!strcmp("False",pstData2[0]))
+ {
+ approxPolyDP(contours, approx,epsilon, false);
+ }
+ double *m=(double *)malloc(2*(approx.size())*sizeof(double));
+ Point a1;
+ int j=0;
+ 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 arclenght(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int 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 *pstData = NULL;
+ char **pstData2 = NULL;
+ double *rrows;
+ double *rcols;
+ unsigned char *pstDataR = NULL;
+ unsigned char *pstDataG = NULL;
+ unsigned char *pstDataB = NULL;
+ int noofitem;
+ double res;
+ double *epsilon;
+ int error;
+ //checking input argument
+ CheckInputArgument(pvApiCtx,2,2);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1);
+ //for first argument
+ // get Address of first input
+ sciErr =getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrieve input array
+ //SciErr getMatrixOfDouble(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, double** _pdblReal)
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols,&pstData);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ 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
+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_arrowedline(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 *piAddr5 = NULL;
+ int *piAddr6 = NULL;
+ int *piAddr7 = NULL;
+ int *piAddr8 = NULL;
+ int *piAddr9 = NULL;
+ int *piAddr10 = NULL;
+ int *piAddr11 = NULL;
+ int *piAddr12 = NULL;
+ int i,j,k;
+ double thickness=1 , linetype=8,shift =0 ,tiplength=0.1;
+ double x1,y1,x2,y2,r_value,g_value,b_value;
+
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 8, 12);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src,1);
+
+ //for value of x coordinate of first point
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2 ,&x1);
+ if(intErr)
+ return intErr;
+
+ //for value of y coordinate of first point
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3,&y1);
+ if(intErr)
+ return intErr;
+
+ //for value of x coordinate of second point
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4 ,&x2);
+ if(intErr)
+ return intErr;
+
+ ///for value of y coordinate of second point
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5 ,&y2);
+ if(intErr)
+ return intErr;
+
+ //for value of R value of colour
+ sciErr = getVarAddressFromPosition(pvApiCtx,6,&piAddr6);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr6,&r_value);
+ if(intErr)
+ return intErr;
+
+ // for G value of colour
+ sciErr = getVarAddressFromPosition(pvApiCtx,7,&piAddr7);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr7,&g_value);
+ if(intErr)
+ return intErr;
+
+ // for B value of colour
+ sciErr = getVarAddressFromPosition(pvApiCtx,8,&piAddr8);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr8,&b_value);
+ if(intErr)
+ return intErr;
+
+ // for thickness of circle default: 1
+ sciErr = getVarAddressFromPosition(pvApiCtx,9,&piAddr9);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr9 ,&thickness);
+ if(intErr)
+ return intErr;
+
+ //for line type of circle default: 8
+ sciErr = getVarAddressFromPosition(pvApiCtx,10,&piAddr10);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ intErr = getScalarDouble(pvApiCtx, piAddr10,&linetype);
+ if(intErr)
+ return intErr;
+
+ // for shift in line defulat : 0
+ sciErr = getVarAddressFromPosition(pvApiCtx,11,&piAddr11);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //Syntax: sciErr = getMatrixOfInteger8(pvApiCtx, piAddr8, &iRows8, &iCols8, &pcData);
+ intErr = getScalarDouble(pvApiCtx, piAddr11 ,&shift);
+ if(intErr)
+ return intErr;
+
+ // for tiplength of arrow default : 0.1
+ sciErr = getVarAddressFromPosition(pvApiCtx,12,&piAddr12);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //Syntax: sciErr = getMatrixOfInteger8(pvApiCtx, piAddr8, &iRows8, &iCols8, &pcData);
+ intErr = getScalarDouble(pvApiCtx, piAddr12,&tiplength);
+ if(intErr)
+ return intErr;
+ //temporary pt variable, to use in function as centre
+ Point pt1(x1,y1);
+ Point pt2(x2,y2);
+
+
+ /// checking the parmeters for correct values
+ if( r_value <0 || r_value >255)
+ {
+ r_value=0;
+ sciprint(" r value of colour should be between 0 and 255 , using 0 instead\n");
+ }
+ if( g_value <0 || g_value >255)
+ {
+ g_value=0;
+ sciprint(" g value of colour should be between 0 and 255 , using 0 instead\n");
+ }
+ if( b_value <0 || b_value >255)
+ {
+ b_value=0;
+ sciprint(" b value of colour should be between 0 and 255 , using 0 instead\n");
+ }
+ if ((linetype!=0) && (linetype!=4)&& (linetype!=8))
+ {
+ linetype=8;
+ sciprint("Only 0/4/8 allowed , using 8 instead");
+ }
+ //calling the opencv function
+ arrowedLine( src, pt1, pt2, Scalar(b_value,g_value,r_value), thickness, linetype, shift, tiplength);
+
+ 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/cpp/opencv_bilateralfilter.cpp b/sci_gateway/cpp/opencv_bilateralfilter.cpp
new file mode 100644
index 0000000..d508b78
--- /dev/null
+++ b/sci_gateway/cpp/opencv_bilateralfilter.cpp
@@ -0,0 +1,112 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat */
+/* ==================================================================== */
+/* Syntax : return_image=bilateralFilter(InputArray src, int d, double sigmaColor, double sigmaSpace ) */
+/* ==================================================================== */
+#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 bilateralfilter(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int 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* pstData = NULL;
+ int* pstData2 = NULL;
+ double *rrows;
+ double *rcols;
+ unsigned char *pstDataR = NULL;
+ unsigned char *pstDataG = NULL;
+ unsigned char *pstDataB = NULL;
+ int noofitem;
+ double d;
+ double sigmaColor;
+ double sigmaSpace;
+ int error;
+ // checking input argument
+ CheckInputArgument(pvApiCtx,4,4);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1);
+ //for first argument
+ // get Address of first input
+ Mat img;
+ retrieveImage(img,1);
+ //second argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of second argument
+ error=getScalarDouble(pvApiCtx,piAddr2,&d) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //third argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of third argument
+ error=getScalarDouble(pvApiCtx,piAddr3,&sigmaColor) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+
+ //fourth argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+//this function will fetch value of fourth argument
+ error=getScalarDouble(pvApiCtx,piAddr4,&sigmaSpace) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ Mat dst;
+ //calling open cv bilateral filter function
+ bilateralFilter(img,dst,d,sigmaColor,sigmaSpace,BORDER_DEFAULT );
+ string tempstring = type2str(dst.type());
+ char* checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,dst,1);
+ //returning output variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+}
+}
diff --git a/sci_gateway/cpp/opencv_blur.cpp b/sci_gateway/cpp/opencv_blur.cpp
new file mode 100644
index 0000000..3db34ca
--- /dev/null
+++ b/sci_gateway/cpp/opencv_blur.cpp
@@ -0,0 +1,134 @@
+/***************************************************
+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_blur(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 *piAddr5 = NULL;
+ double ksize_width,ksize_height,anchorX,anchorY;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 5, 5);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat image;
+ retrieveImage(image,1);
+
+ //for value of ksize_height
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &ksize_height);
+ if(intErr)
+ return intErr;
+
+ //for value of ksize_width
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3 ,&ksize_width);
+ if(intErr)
+ return intErr;
+
+ //for value of anchorX
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &anchorX);
+ if(intErr)
+ return intErr;
+
+ //for value of anchorY
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5, &anchorY);
+ if(intErr)
+ return intErr;
+
+ //applying checks on input parameters
+ Mat new_image(image.rows,image.cols,image.type());
+
+ //error checks
+ if(ksize_height<0)
+ {
+ sciprint("Positive Value Required for Height. 1 value was used instead");
+ ksize_height=1;
+ }
+ if(ksize_width<0)
+ {
+ sciprint("Positive Value Required for Width. 1 value was used instead");
+ ksize_width=1;
+ }
+ if(ksize_width != ksize_height)
+ {
+ sciprint("Blurring Kernel Size not equal. Value of ksize_height used for ksize_width as well");
+ ksize_width = ksize_height;
+ }
+ if(anchorX >= ksize_height || anchorY >= ksize_width)
+ {
+ sciprint("Invalid anchor points. Default point (-1,-1) used instead");
+ anchorY=-1;
+ anchorX=-1;
+ }
+
+ //defining temporary size and point type variables to use in the function
+ Size sz(ksize_height,ksize_width);
+ Point pt(anchorX,anchorY);
+
+ //void blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )
+ blur(image,new_image,sz,pt);
+
+ 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;
+
+ }
+/* ==================================================================== */
+}
\ No newline at end of file
diff --git a/sci_gateway/cpp/opencv_borderInterpolate.cpp b/sci_gateway/cpp/opencv_borderInterpolate.cpp
new file mode 100644
index 0000000..e8f0464
--- /dev/null
+++ b/sci_gateway/cpp/opencv_borderInterpolate.cpp
@@ -0,0 +1,149 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat */
+/* ==================================================================== */
+/* Syntax :return_int=borderInterpolate(int p,int len,int borderType)
+/* ==================================================================== */
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#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 borderInterpolate(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int iCols = 0;
+ int piRows = 0;
+ int piCols = 0;
+ int* piAddr1 = NULL;
+ int* piAddr2 = NULL;
+ int* piAddr3 = NULL;
+ int* piAddr4 = NULL;
+ int* piAddr5 = NULL;
+ int* piAddr6 = NULL;
+ int* piAddrNew = NULL;
+ int* piLen = NULL;
+ double* pstData = NULL;
+ char **pstData2 = NULL;
+ double *rrows;
+ double *rcols;
+ double p;
+ double len;
+ int borderType;
+ int error;
+ // checking input argument
+ CheckInputArgument(pvApiCtx,3,3);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1);
+ //for first argument
+ // get Address of first input
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ //check for any error
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of first argument
+ error=getScalarDouble(pvApiCtx,piAddr1,&p) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //second argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of second argument
+ error=getScalarDouble(pvApiCtx,piAddr2,&len) ;
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //third argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getMatrixOfString(pvApiCtx, piAddr3, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr3, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ pstData2 = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(int i = 0 ; i < iRows * iCols ; i++)
+ {
+ pstData2[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+ }
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr3, &iRows, &iCols, piLen, pstData2);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(!strcmp(pstData2[0],"BORDER_REFLECT_101"))
+ {
+ borderType=BORDER_REFLECT_101;
+ }
+ else if(!strcmp(pstData2[0],"BORDER_WRAP"))
+ {
+ borderType=BORDER_WRAP;
+ }
+ else if(!strcmp(pstData2[0]," BORDER_WRAP"))
+ {
+ borderType=BORDER_WRAP;
+ }
+ else if(!strcmp(pstData2[0]," BORDER_TRANSPARENT"))
+ {
+ borderType= BORDER_TRANSPARENT;
+ }
+ else if(!strcmp(pstData2[0]," BORDER_CONSTANT"))
+ {
+ borderType= BORDER_TRANSPARENT;
+ }
+ //calling open cv function for borderInterpolate
+ double result;
+
+ result=borderInterpolate(p,len,borderType) ;
+ error=createScalarDouble(pvApiCtx,nbInputArgument(pvApiCtx)+1,result);
+ if(error!=0)
+ {
+ sciprint("error occurred");
+ return 0;
+ }
+ //returning output
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ ReturnArguments(pvApiCtx);
+ return 0;
+ }
+}
+
diff --git a/sci_gateway/cpp/opencv_boundingRect.cpp b/sci_gateway/cpp/opencv_boundingRect.cpp
new file mode 100644
index 0000000..5bf8707
--- /dev/null
+++ b/sci_gateway/cpp/opencv_boundingRect.cpp
@@ -0,0 +1,82 @@
+/********************************************************
+ Author: Sukul Bagai
+*********************************************************
+ rectangle_dimensions_arry(height, width, x, y) = boundingRect ( vector )
+********************************************************/
+
+#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_boundingRect(char *fname, unsigned long fname_len)
+ {
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piAddr1 = NULL;
+ int *piAddrNew = NULL;
+ int i,j,k ;
+ double *points;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 1);
+ CheckOutputArgument(pvApiCtx, 1, 1);
+
+//retreive the points
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr1, &iRows, &iCols,&points);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ vector actualPoints;
+ for(int i=0;i
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#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 boxfilter(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int 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* piAddr7 = NULL;
+ int* piAddrNew = NULL;
+ int* piLen = NULL;
+ double* pstData = NULL;
+ char** pstData2 = NULL;
+ double *rrows;
+ double *rcols;
+ int noofitem;
+ double ddepth;
+ bool normalize;
+ int borderType,i;
+ int error;
+ double sz1,sz2;
+ double pi1,pi2;
+ // checking input argument
+ CheckInputArgument(pvApiCtx,7,7);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1);
+ //for first argument
+ Mat img;
+ retrieveImage(img,1);
+ //second argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of second argument
+ error=getScalarDouble(pvApiCtx,piAddr2,&ddepth);
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ return 0;
+ }
+ //third argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of third argument
+ error=getScalarDouble(pvApiCtx,piAddr3,&sz1);
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ return 0;
+ }
+
+ //fourth argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of fourth argument
+ error=getScalarDouble(pvApiCtx,piAddr4,&sz2);
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //fifth argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of fifth argument
+ error=getScalarDouble(pvApiCtx,piAddr5,&pi1);
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //sixth argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,6,&piAddr6);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of sixth argument
+ error=getScalarDouble(pvApiCtx,piAddr6,&pi2);
+ if(error!=0)
+ {
+ sciprint("error in retrieving second argument");
+ }
+ //seventh argument
+ sciErr = getVarAddressFromPosition(pvApiCtx,7,&piAddr7);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //this function will fetch value of seventh argument
+ sciErr = getMatrixOfString(pvApiCtx, piAddr7, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr7, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ pstData2 = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ {
+ pstData2[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+ }
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr7, &iRows, &iCols, piLen, pstData2);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(!strcmp(pstData2[0],"True"))
+ {
+ normalize=true;
+ }
+ else if(!strcmp(pstData2[0],"False"))
+ {
+ normalize=true;
+
+ }
+ //size constructor
+ Size ksize=Size(sz1,sz2);
+ //anchor constructor
+ Point anchor=Point(pi1,pi2);
+ Mat dst;
+ //call to open cv boxfilter
+ boxFilter(img,dst,ddepth,ksize,anchor,normalize,BORDER_DEFAULT);
+ //returning variable to scilab console
+ string tempstring = type2str(dst.type());
+ char* checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,dst,1);
+ //returning output variable
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+
+ }
+}
diff --git a/sci_gateway/cpp/opencv_bwconvhull.cpp b/sci_gateway/cpp/opencv_bwconvhull.cpp
new file mode 100644
index 0000000..7e0a09d
--- /dev/null
+++ b/sci_gateway/cpp/opencv_bwconvhull.cpp
@@ -0,0 +1,129 @@
+/********************************************************
+Function :bwconvexhull
+Syntax :B=bwconvexhull(A)
+ B=bwconvexhull(A,"Object",n)
+ n :4 or 8
+Author: Tess Zacharias
+********************************************************/
+
+#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 "string.h"
+ #include "../common.h"
+
+ int opencv_bwconvhull(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ char* pstData = NULL;
+ int iRet = 0;
+ double n;
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 3);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+ Mat src,src_gray;
+ int thresh = 100,max_thresh = 255;
+ retrieveImage(src, 1);
+ cvtColor( src, src_gray, COLOR_BGR2GRAY );
+ blur( src_gray, src_gray, Size(3,3) );
+ Mat src_copy = src.clone();
+ Mat threshold_output;
+ vector > contours;
+ vector hierarchy;
+ threshold( src_gray, threshold_output, thresh, 255, THRESH_BINARY );
+ findContours( threshold_output, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0) );
+ vector >hull( contours.size() );
+ for( size_t i = 0; i < contours.size(); i++ )
+ {
+ convexHull( Mat(contours[i]), hull[i], false );
+ }
+ Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 );
+ for( size_t i = 0; i< contours.size(); i++ )
+ {
+ Scalar color = Scalar(255,255,255);
+ /* if only 1 input argument line connectvity n will take default value 8 */
+ if(nbInputArgument(pvApiCtx)==1)
+ {
+ drawContours( drawing, contours, (int)i, color, 1, 8, vector(), 0, Point() );
+ drawContours( drawing, hull, (int)i, color,CV_FILLED, 8, vector(), 0, Point());
+ }
+ else if(nbInputArgument(pvApiCtx)==3)
+ {
+ /* retrieve second argument */
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(isStringType(pvApiCtx, piAddr2))
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+ iRet = getAllocatedSingleString(pvApiCtx, piAddr2, &pstData);
+ }
+ }
+ else
+ {
+ sciprint(" The second argument should be string ");
+ return 0;
+ }
+ if(strcasecmp(pstData,"Object")==0)
+ {
+ /*retrieve third argument */
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &n);
+ if(intErr)
+ {
+ return intErr;
+ }
+ // The error checks for the function
+ if((n!=4)&&(n!=8))
+ {
+ sciprint("The value of line connectivity must be 8 or 4");
+ return 0;
+ }
+ drawContours( drawing, contours, (int)i, color, 1, n, vector(), 0, Point() );
+ drawContours( drawing, hull, (int)i, color,CV_FILLED, n, vector(), 0, Point());
+ }
+ else
+ {
+ sciprint(" The second argument must be 'Object'");
+ return 0;
+ }
+ }
+ }
+ string tempstring = type2str(drawing.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,drawing,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/cpp/opencv_bwdistgeodesic.cpp b/sci_gateway/cpp/opencv_bwdistgeodesic.cpp
new file mode 100644
index 0000000..7f83652
--- /dev/null
+++ b/sci_gateway/cpp/opencv_bwdistgeodesic.cpp
@@ -0,0 +1,88 @@
+/********************************************************
+Author: Vinay Bhat
+********************************************************
+Usage: return_image = bwdistgeodesic(input_image, 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_bwdistgeodesic(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int *piAddr = NULL;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 2, 2);
+ CheckOutputArgument(pvApiCtx, 1, 1);
+
+ // Get the input image from the Scilab environment
+ Mat marker, mask;
+ retrieveImage(marker, 1);
+ retrieveImage(mask, 2);
+
+ if (marker.type() != CV_8UC1)
+ {
+ Mat tempM;
+ tempM = marker.clone();
+ cvtColor(tempM, marker, CV_BGR2GRAY);
+ }
+
+ if (mask.type() != CV_8UC1)
+ {
+ Mat tempM;
+ tempM = mask.clone();
+ cvtColor(tempM, mask, CV_8UC1);
+ }
+
+ int i = 1;
+
+ Mat temp0;
+ Mat temp2 = marker.clone();
+ Mat fin_image = marker.clone();
+
+ do {
+ temp0 = temp2.clone();
+ Mat temp1, temp3;
+ dilate(temp0, temp1, Mat());
+ min(temp1, mask, temp2);
+ temp3 = temp2 - temp0;
+ temp3.convertTo(temp3, CV_32F);
+ temp3 = temp3 * ((255 - i)/255.0);
+ temp3.convertTo(temp3, CV_8UC1);
+ max(fin_image, temp3, fin_image);
+ i++;
+ } while((countNonZero(temp0 != temp2) != 0) && (i != 255));
+
+
+ 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/cpp/opencv_bwlookup.cpp b/sci_gateway/cpp/opencv_bwlookup.cpp
new file mode 100644
index 0000000..5471e55
--- /dev/null
+++ b/sci_gateway/cpp/opencv_bwlookup.cpp
@@ -0,0 +1,180 @@
+/*
+ * bwlookup
+ *
+ * 2*2 and 3*3 non linear filtering of a binary image based on a lookup table -
+ *lut which is taken as input from the user
+ *
+ */
+
+// Created by Samiran Roy, mail: samiranroy@cse.iitb.ac.in
+// An implementation of bwlookup
+// Usage:
+// bwlookup(I,lut)
+
+// I is the input binary grayscale image. If the image is not binary, it is
+// converted to one.
+// lut is a 1*16 double vector [2*2 filtering], or a [1*512] double vector [3*3
+// filtering]
+// The indexing method used is the same as Matlab bwlookup:
+// http://in.mathworks.com/help/images/ref/bwlookup.html
+
+// Known Changes from Matlab:
+/*
+ * 1) None, as of now
+ */
+
+#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_bwlookup(char* fname, unsigned long fname_len) {
+ SciErr sciErr;
+ int intErr = 0;
+
+ int* piAddr = NULL;
+
+ // checking input argument
+ CheckInputArgument(pvApiCtx, 2, 2);
+ CheckOutputArgument(pvApiCtx, 1, 1);
+
+ // get input matrix
+
+ Mat image;
+ retrieveImage(image, 1);
+
+ if (image.channels() > 1) {
+ sciprint("The image must be grayscale.");
+ return -1;
+ }
+
+ double* lut;
+
+ int iRows = 0, iCols = 0;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr);
+ if (sciErr.iErr) {
+ printError(&sciErr, 0);
+ return -1;
+ }
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols, &lut);
+ if (sciErr.iErr) {
+ printError(&sciErr, 0);
+ return -1;
+ }
+
+ // Error Checking
+
+ if (!((iCols == 16) || (iCols == 512))) {
+ sciprint("Expected LUT (argument 2) to have 16 or 512 elements.\n");
+
+ return -1;
+ }
+
+ if (iRows != 1) {
+ sciprint("Expected input number 2, LUT, to be a vector.\n");
+ return -1;
+ }
+
+ if (image.channels() != 1) {
+ sciprint("Expected input number 1, A, to be two-dimensional.\n");
+ return -1;
+ }
+
+ // temporary copy of image to perform computation
+ // converting the image to a binary image
+ Mat tempimg = Mat::zeros(image.size(), CV_8U);
+
+ for (int i = 0; i < image.rows; i++) {
+ for (int j = 0; j < image.cols; j++) {
+ if (image.at(i, j) != 0) tempimg.at(i, j) = 1;
+ }
+ }
+
+ // pad the temporary copy of the image with zeroes to handle border cases
+ copyMakeBorder(tempimg, tempimg, 1, 1, 1, 1, BORDER_CONSTANT, 0);
+
+ // output images
+ Mat new_image = Mat::zeros(image.size(), CV_32F);
+
+ // temporary variables
+ int ii, jj;
+ int index;
+
+ // 2*2 filtering
+ if (iCols == 16) {
+ for (int i = 0; i < image.rows; i++) {
+ for (int j = 0; j < image.cols; j++) {
+ ii = i + 1;
+ jj = j + 1;
+
+ index = tempimg.at(ii, jj) * 1 +
+ tempimg.at(ii, jj + 1) * 2 +
+ tempimg.at(ii + 1, jj) * 4 +
+ tempimg.at(ii + 1, jj + 1) * 8;
+
+ new_image.at(i, j) = lut[ 0, index ];
+ }
+ }
+ }
+
+ // 3*3 filtering
+ if (iCols == 512) {
+ for (int i = 0; i < image.rows; i++) {
+ for (int j = 0; j < image.cols; j++) {
+ ii = i + 1;
+ jj = j + 1;
+
+ index = tempimg.at(ii - 1, jj - 1) * 1 +
+ tempimg.at(ii - 1, jj) * 2 +
+ tempimg.at(ii - 1, jj + 1) * 4 +
+ tempimg.at(ii, jj - 1) * 8 +
+ tempimg.at(ii, jj) * 16 +
+ tempimg.at(ii, jj + 1) * 32 +
+ tempimg.at(ii + 1, jj - 1) * 64 +
+ tempimg.at(ii + 1, jj) * 128 +
+ tempimg.at(ii + 1, jj + 1) * 256;
+
+ new_image.at(i, j) = lut[ 0, index ];
+ }
+ }
+ }
+
+ // sciprint("\n");
+
+ // for (int i = 0; i < new_image.rows; i++) {
+ // for (int j = 0; j < new_image.cols; j++) {
+ // sciprint("%i ", new_image.at(i,j));
+
+ // }
+
+ // sciprint("\n");
+ // }
+
+ // new_image is sent to scilab as output
+
+ 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/cpp/opencv_bwulterode.cpp b/sci_gateway/cpp/opencv_bwulterode.cpp
new file mode 100644
index 0000000..e9d0206
--- /dev/null
+++ b/sci_gateway/cpp/opencv_bwulterode.cpp
@@ -0,0 +1,92 @@
+/********************************************************
+Author: Vinay Bhat
+********************************************************
+Usage: return_image = bwulterode(input_image)
+********************************************************/
+
+#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"
+
+ void bwulterode_imreconstruct(Mat, Mat, Mat&);
+
+ int opencv_bwulterode(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int *piAddr = NULL;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 1, 1);
+ CheckOutputArgument(pvApiCtx, 1, 1);
+
+ // Get the input image from the Scilab environment
+ Mat gray_image, fin_image, m, image;
+ retrieveImage(gray_image, 1);
+
+ for (int i = 0; i < gray_image.cols; i++)
+ {
+ for (int j = 0; j < gray_image.rows; j++)
+ {
+ unsigned char val = gray_image.at(i,j);
+ if (!(val == 0 || val == 1 || val == 255))
+ {
+ sciprint("Please enter binary image.");
+ return 0;
+ }
+ }
+ }
+
+ if (gray_image.type() != CV_8UC1)
+ {
+ Mat temp;
+ temp = gray_image.clone();
+ cvtColor(temp, gray_image, CV_BGR2GRAY);
+ }
+
+ distanceTransform(gray_image, image, CV_DIST_L2, DIST_MASK_5);
+ subtract(image, 1, gray_image);
+ bwulterode_imreconstruct(image, gray_image, m);
+ subtract(image, m, gray_image);
+ fin_image = gray_image * 255;
+
+ 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;
+
+ }
+ void bwulterode_imreconstruct(Mat g, Mat f, Mat& dest)
+ {
+ Mat m0, m1, m;
+ m1 = f;
+ do {
+ m0 = m1.clone();
+ dilate(m0, m, Mat());
+ min(g, m, m1);
+ } while(countNonZero(m1 != m0) != 0);
+ dest = m1.clone();
+ }
+/* ==================================================================== */
+}
diff --git a/sci_gateway/cpp/opencv_canny.cpp b/sci_gateway/cpp/opencv_canny.cpp
new file mode 100644
index 0000000..010d634
--- /dev/null
+++ b/sci_gateway/cpp/opencv_canny.cpp
@@ -0,0 +1,121 @@
+/********************************************************
+Authors: Sukul Bagai, Abhilasha Sancheti, Shubheksha Jalan
+********************************************************/
+
+#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_canny(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 aperture, threshold1, threshold2, gradient;
+ bool L2gradient = false;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 5, 5);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+
+ Mat image;
+ retrieveImage(image, 1);
+ cvtColor( image, image, CV_BGR2GRAY );
+
+ //for value of threshold1
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &threshold1);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+
+ //for value of threshold2
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &threshold2);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+
+ //for value of aperture
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &aperture);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+
+ //for value of gradient as an integer and convert to bool accordingly
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5, &gradient);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ if ( gradient == 1){
+ L2gradient = true;
+ }
+ Mat new_image;
+ Canny(image, new_image, threshold1, threshold2, aperture, L2gradient);
+
+ 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/cpp/opencv_circle.cpp b/sci_gateway/cpp/opencv_circle.cpp
new file mode 100644
index 0000000..928c251
--- /dev/null
+++ b/sci_gateway/cpp/opencv_circle.cpp
@@ -0,0 +1,203 @@
+/********************************************************
+ Author: Abhilasha Sancheti
+*********************************************************
+ return_image = circle(input_image , x_coordinate_of_centre , y_coordinate_centre , radius, r_value,g_value,b_value,thickness,linetype,shift);
+********************************************************/
+
+#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_circle(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int *piAddr6 = NULL;
+ int *piAddr7 = NULL;
+ int *piAddr8 = NULL;
+ int *piAddr9 = NULL;
+ int *piAddr10 = NULL;
+ int i,j,k;
+ double thickness=1 , linetype=8,shift =0 ,centre_x ,centre_y,radius,r_value,g_value,b_value;
+
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 10, 10);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat src;
+ retrieveImage(src,1);
+
+ //for value of x coordinate of centre
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2,¢re_x);
+ if(intErr)
+ return intErr;
+
+
+ //for value of y coordinate of centre
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3,¢re_y);
+ if(intErr)
+ return intErr;
+
+ //for value of radius
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4,&radius);
+ if(intErr)
+ return intErr;
+
+ //for value of R value of colour
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5 ,&r_value);
+ if(intErr)
+ return intErr;
+
+ //for value of G value of colour
+ sciErr = getVarAddressFromPosition(pvApiCtx,6,&piAddr6);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr6 ,&g_value);
+ if(intErr)
+ return intErr;
+
+ // for B value of colour
+ sciErr = getVarAddressFromPosition(pvApiCtx,7,&piAddr7);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr7,&b_value);
+ if(intErr)
+ return intErr;
+
+ // for thickness of circle default: 1
+ sciErr = getVarAddressFromPosition(pvApiCtx,8,&piAddr8);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr8,&thickness);
+ if(intErr)
+ return intErr;
+
+ //for line type of circle default: 8
+ sciErr = getVarAddressFromPosition(pvApiCtx,9,&piAddr9);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ intErr = getScalarDouble(pvApiCtx, piAddr9,&linetype);
+ if(intErr)
+ return intErr;
+
+ // for shift in circle defulat : 0
+ sciErr = getVarAddressFromPosition(pvApiCtx,10,&piAddr10);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //Syntax: sciErr = getMatrixOfInteger8(pvApiCtx, piAddr8, &iRows8, &iCols8, &pcData);
+ intErr = getScalarDouble(pvApiCtx, piAddr10,&shift);
+ if(intErr)
+ return intErr;
+
+ // checking radius parameter
+ if (radius <0)
+ {
+ radius=3;
+ sciprint("Radius should be positive , 3 value was used instead\n");
+ }
+ // checking the parmeters for correct values
+ if( r_value <0 || r_value >255)
+ {
+ r_value=0;
+ sciprint(" r value of colour should be between 0 and 255 , using 0 instead\n");
+ }
+ if( g_value <0 || g_value >255)
+ {
+ g_value=0;
+ sciprint(" g value of colour should be between 0 and 255 , using 0 instead\n");
+ }
+ if( b_value <0 || b_value >255)
+ {
+ b_value=0;
+ sciprint(" b value of colour should be between 0 and 255 , using 0 instead\n");
+ }
+ if ((linetype!=0) && (linetype!=4)&& (linetype!=8))
+ {
+ linetype=8;
+ sciprint("Only 0/4/8 allowed , using 8 instead\n");
+ }
+ //temporary pt variable, to use in function as centre
+ Point pt(centre_x,centre_y);
+ /// Draw the circles detected
+
+ circle( src, pt, radius, Scalar(r_value,g_value,b_value), thickness, linetype, shift);
+
+//// sending the image
+ 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/cpp/opencv_clipline.cpp b/sci_gateway/cpp/opencv_clipline.cpp
new file mode 100644
index 0000000..2e13412
--- /dev/null
+++ b/sci_gateway/cpp/opencv_clipline.cpp
@@ -0,0 +1,149 @@
+/********************************************************
+ Author: Abhilasha Sancheti & Sukul Bagai
+*********************************************************
+ return_image = clipline( width, height, x1 , y1 , x2,y2 )
+********************************************************/
+
+#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_clipline(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piAddr1 = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int *piAddr6 = NULL;
+ int i,j,k;
+ double x1,y1,x2,y2,width,height;
+
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 6, 6);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ //for width of the rectangle
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr1 ,&width);
+ if(intErr)
+ return intErr;
+
+ // for height of the rectangle
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2,&height);
+ if(intErr)
+ return intErr;
+
+ //for value of x coordinate of first point
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &x1);
+ if(intErr)
+ return intErr;
+
+ //for value of y coordinate of first point
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4,&y1);
+ if(intErr)
+ return intErr;
+
+ //for value of x coordinate of second point
+ sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5,&x2);
+ if(intErr)
+ return intErr;
+
+ ///for value of y coordinate of second point
+ sciErr = getVarAddressFromPosition(pvApiCtx,6,&piAddr6);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr6 ,&y2);
+ if(intErr)
+ return intErr;
+
+
+ if(height<0)
+ {
+ sciprint("Positive Value Required for Height. 1 value was used instead");
+ height=1;
+ }
+ if(width<0)
+ {
+ sciprint("Positive Value Required for Width. 1 value was used instead");
+ width=1;
+ }
+ //temporary pt1 variable, to use in function as first line point
+ Point pt1(x1,y1);
+ //temporary pt2 variable, to use in function as second line point
+ Point pt2(x2,y2);
+ // image size
+ Size sz(width,height);
+ Rect r(0,0,width,height);
+ //// calling open cv clipLine function
+
+ bool ans = clipLine( sz , pt1, pt2);
+ int actualans=(int)ans;
+
+ // returning the result to the scilab environment
+ // Syntax: SciErr createMatrixOfBoolean(void* _pvCtx, int _iVar, int _iRows, int _iCols, const int* _piBool)
+ intErr= createScalarBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, actualans);
+ if(intErr)
+ return intErr;
+
+
+ //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/cpp/opencv_contourarea.cpp b/sci_gateway/cpp/opencv_contourarea.cpp
new file mode 100644
index 0000000..ba45b09
--- /dev/null
+++ b/sci_gateway/cpp/opencv_contourarea.cpp
@@ -0,0 +1,125 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat */
+/* ==================================================================== */
+/* Syntax : return_area=contourarea(InputArray contour, bool oriented); */
+/* ==================================================================== */
+#include
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include
+#include
+//#include
+using namespace cv;
+using namespace std;
+ extern "C"
+ {
+ #include "api_scilab.h"
+ #include "Scierror.h"
+ #include "BOOL.h"
+ #include
+ int contourarea(char *fname, unsigned long fname_len)
+ {
+ // Error management variable
+ SciErr sciErr;
+ //variable info
+ int iRows = 0;
+ int 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 *pstData = NULL;
+ char **pstData2 = NULL;
+ double *rrows;
+ double *rcols;
+ double res;
+ int error;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx,2,2);
+ //checking output argument
+ CheckOutputArgument(pvApiCtx, 1, 1);
+ //for first argument
+ // get Address of first input
+ sciErr =getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+ //check for any error
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //retrieve input array
+ //SciErr getMatrixOfDouble(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, double** _pdblReal)
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols,&pstData);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ int k=0;
+ vector contours;
+ for(int i=0;i), clockwise(1/0) , returnpoints(1/0) )
+********************************************************/
+
+#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_convexhull(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piAddr1 = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ double *pstData = NULL;
+ int i,j,k ;
+ double clkwise;
+ double returnpoints;
+
+
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 3);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+
+//retreive the contour parameter
+ sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr1, &iRows, &iCols,&pstData);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //cout<<*(pstData + 0*2 + 0)<<" "<<*(pstData + 0*2 + 1)< cont1;
+ for ( i = 0 ; i < iRows ; i++)
+ {
+ Point pt(*(pstData + 0*iRows + i),*(pstData + 1*iRows + i));
+ cont1.push_back(pt);
+ }
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2 ,&clkwise);
+ if(intErr)
+ return intErr;
+
+
+
+//// to retreive the value of returnpoint
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3,&returnpoints);
+ if(intErr)
+ return intErr;
+
+
+ bool clkWise, returnPoint;
+/// setting clkwise parameter of function
+ if ( clkwise ==1)
+ clkWise = true;
+ else if (clkwise == 0)
+ clkWise = false;
+ else
+ {
+ clkWise = false;
+ sciprint("only 0/1 acceptable , taking 0 instead");
+ }
+///// setting returnpoint parameter of function
+ if ( returnpoints ==1)
+ returnPoint = true;
+ else if (returnpoints == 0)
+ returnPoint = false;
+ else
+ {
+ returnPoint = true;
+ sciprint("only 0/1 acceptable , taking 1 instead");
+ }
+
+ vector hull;
+ convexHull(Mat(cont1), hull , clkWise , returnPoint);
+ int row = hull.size();
+ double *cor = (double *)malloc(row*2*sizeof(double));
+ for (int i=0;i
+#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_convmtx2(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int i,j,k;
+ double m, n;
+
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 3, 3);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat H;
+ retrieveImage(H,1);
+
+ //for value of m
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &m);
+ if(intErr)
+ return intErr;
+
+ //for value of n
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &n);
+ if(intErr)
+ return intErr;
+
+
+ //taking the cases which can lead to an error
+
+ int s1 = H.rows;
+ int s2 = H.cols;
+
+ Mat T;
+ T = Mat::zeros((m-s1+1)*(n-s2+1),m*n,H.type());
+
+ if(m(k,(i+p)*n+j+q)=H.at(p,q);
+ }
+ k++;
+ }
+ }
+
+ //printf("%f %f %f" , H.at(0,0), H.at(1,1), H.at(2,2));
+
+ //namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display.
+ //imshow( "Display window", T );
+
+ //returning image
+ string tempstring = type2str(T.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,T,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/cpp/opencv_copymakeborder.cpp b/sci_gateway/cpp/opencv_copymakeborder.cpp
new file mode 100644
index 0000000..51175fb
--- /dev/null
+++ b/sci_gateway/cpp/opencv_copymakeborder.cpp
@@ -0,0 +1,195 @@
+/********************************************************
+ Author: Shubheksha Jalan
+*********************************************************
+ void copyMakeBorder(InputArray image, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )
+********************************************************/
+// for BORDER_CONSTANT, enter a 4 element array as Scalar. For any other border type, pass 0.
+
+
+#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_copymakeborder(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr=0;
+ int iRows=0,iCols=0;
+ int *piLen = NULL;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int *piAddr6 = NULL;
+ int *piAddr7 = NULL;
+ int i,j,k;
+ char **borderType;
+ double top, bottom, right, left;
+ double *value = NULL;
+ //checking input argument
+ CheckInputArgument(pvApiCtx, 6, 7);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat image;
+ retrieveImage(image,1);
+
+ //for top
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &top);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for bottom
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &bottom);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for left
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &left);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for bottom
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr5, &right);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr6);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+
+ //Now, we will retrieve the string from the input parameter. For this, we will require 3 calls
+ //first call to retrieve dimensions
+ sciErr = getMatrixOfString(pvApiCtx, piAddr6, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr6, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ borderType = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ borderType[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr6, &iRows, &iCols, piLen, borderType);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ //for array of Scalar object
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddr7);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr7, &iRows, &iCols ,&value);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ Mat new_image(Size(image.cols+left+right, image.rows+top+bottom), image.type());
+
+ if(strcmp(borderType[0], "BORDER_CONSTANT") == 0 && iCols == 4 )
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_CONSTANT, Scalar(value[0], value[1], value[2], value[3]));
+ else if(strcmp(borderType[0], "BORDER_CONSTANT") == 0 && iCols == 3)
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_CONSTANT, Scalar(value[0], value[1], value[2]));
+ else if(strcmp(borderType[0], "BORDER_DEFAULT") == 0)
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_DEFAULT);
+ else if(strcmp(borderType[0], "BORDER_REPLICATE") == 0)
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_REPLICATE);
+ else if(strcmp(borderType[0], "BORDER_REFLECT") == 0)
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_REFLECT);
+ else if(strcmp(borderType[0], "BORDER_REFLECT_101") == 0)
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_REFLECT_101);
+ else if(strcmp(borderType[0], "BORDER_WRAP") == 0)
+ copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_WRAP);
+
+ // namedWindow ("window", 1);
+ // imshow("window", new_image);
+ // waitKey(0);
+ // destroyWindow("window");
+
+free(borderType);
+
+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/cpp/opencv_corner.cpp b/sci_gateway/cpp/opencv_corner.cpp
new file mode 100644
index 0000000..7502f96
--- /dev/null
+++ b/sci_gateway/cpp/opencv_corner.cpp
@@ -0,0 +1,166 @@
+/********************************************************
+Author: Tess Zacharias
+********************************************************/
+
+#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 "string.h"
+ #include "../common.h"
+
+ int opencv_corner(char *fname, unsigned long fname_len)
+ {
+
+ SciErr sciErr;
+ int intErr = 0;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ char* pstData = NULL;
+ char* pstData1 = NULL;
+ int iRet = 0;
+ int iRet1 = 0;
+ CheckInputArgument(pvApiCtx, 1, 3);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+ Mat src,src_gray;
+ int thresh = 200;
+ int max_thresh = 255;
+ retrieveImage(src, 1);
+ cvtColor( src, src_gray, COLOR_BGR2GRAY );
+ Mat dst, dst_norm, drawing;
+ dst = Mat::zeros( src.size(), CV_32FC1 );
+ int blockSize = 2;
+ int apertureSize = 3;
+ double k = 0.04;
+ int maxCorners = 23;
+ RNG rng(12345);
+ if(nbInputArgument(pvApiCtx)==1)
+ {
+ cornerHarris( src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT );
+ normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() );
+ convertScaleAbs( dst_norm, drawing );
+ for( int j = 0; j < dst_norm.rows ; j++ )
+ {
+ for( int i = 0; i < dst_norm.cols; i++ )
+ {
+ if( (int) dst_norm.at(j,i) > thresh )
+ {
+ circle( drawing, Point( i, j ), 5, Scalar(0), 2, 8, 0 );
+ }
+ }
+ }
+ }
+ else if(nbInputArgument(pvApiCtx)==3)
+ {
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(isStringType(pvApiCtx, piAddr2))
+ {
+ if(isScalar(pvApiCtx, piAddr2))
+ {
+ iRet = getAllocatedSingleString(pvApiCtx, piAddr2, &pstData);
+ }
+ }
+ else
+ {
+ sciprint(" The second argument should be string ");
+ return 0;
+ }
+ if(strcasecmp(pstData,"Method")==0)
+ {
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ if(isStringType(pvApiCtx, piAddr3))
+ {
+ if(isScalar(pvApiCtx, piAddr3))
+ {
+ iRet1 = getAllocatedSingleString(pvApiCtx, piAddr3, &pstData1);
+ }
+ }
+ else
+ {
+ sciprint(" The third argument should be string ");
+ return 0;
+ }
+ if(strcasecmp(pstData1,"Harris")==0)
+ {
+ cornerHarris( src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT );
+ normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() );
+ convertScaleAbs( dst_norm, drawing );
+ for( int j = 0; j < dst_norm.rows ; j++ )
+ {
+ for( int i = 0; i < dst_norm.cols; i++ )
+ {
+ if( (int) dst_norm.at(j,i) > thresh )
+ {
+ circle( drawing, Point( i, j ), 5, Scalar(0), 2, 8, 0 );
+ }
+ }
+ }
+ }
+ else if(strcasecmp(pstData1,"MinEigenvalue")==0)
+ {
+ if( maxCorners < 1 )
+ {
+ maxCorners = 1;
+ }
+ /// Parameters for Shi-Tomasi algorithm
+ vector corners;
+ double qualityLevel = 0.01;
+ double minDistance = 10;
+ int blockSize = 3;
+ bool useHarrisDetector = false;
+ double k = 0.04;
+ /// Copy the source image
+ drawing = src.clone();
+ goodFeaturesToTrack( src_gray,corners,maxCorners,qualityLevel,minDistance,Mat(),blockSize,useHarrisDetector,k );
+ int r = 4;
+ for( int i = 0; i < corners.size(); i++ )
+ {
+ circle( drawing, corners[i], r, Scalar(rng.uniform(0,255), rng.uniform(0,255),rng.uniform(0,255)), -1, 8, 0 );
+ }
+ }
+ else
+ {
+ sciprint(" The third argument must be 'Harris' or 'Mineigenvalue' ");
+ return 0;
+ }
+ }
+ else
+ {
+ sciprint(" The second argument must be 'Method' ");
+ return 0;
+ }
+ }
+ string tempstring = type2str(drawing.type());
+ char *checker;
+ checker = (char *)malloc(tempstring.size() + 1);
+ memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ returnImage(checker,drawing,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/cpp/opencv_cornerEigenValsAndVecs.cpp b/sci_gateway/cpp/opencv_cornerEigenValsAndVecs.cpp
new file mode 100644
index 0000000..205759d
--- /dev/null
+++ b/sci_gateway/cpp/opencv_cornerEigenValsAndVecs.cpp
@@ -0,0 +1,127 @@
+/********************************************************
+Author: Shubheksha Jalan
+********************************************************/
+
+#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 "../common.h"
+
+
+ int opencv_cornerEigenValsAndVecs(char *fname, unsigned long fname_len)
+ {
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piLen = NULL;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int i,j,k;
+ double blockSize, ksize;
+ char **borderType;
+ CheckInputArgument(pvApiCtx, 4, 4);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat image;
+ retrieveImage(image, 1);
+ cvtColor(image,image,CV_BGR2GRAY);
+
+ //for block size
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &blockSize);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for ksize
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &ksize);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for border type
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //Now, we will retrieve the string from the input parameter. For this, we will require 3 calls
+ //first call to retrieve dimensions
+ sciErr = getMatrixOfString(pvApiCtx, piAddr4, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr4, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ borderType = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ borderType[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr4, &iRows, &iCols, piLen, borderType);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ Mat new_image;
+ if(strcmp(borderType[0], "BORDER_CONSTANT") == 0){
+ cornerEigenValsAndVecs(image, new_image, blockSize, ksize, BORDER_CONSTANT);
+ }
+ else if(strcmp(borderType[0], "BORDER_DEFAULT") == 0)
+ cornerEigenValsAndVecs(image, new_image, blockSize, ksize, BORDER_DEFAULT);
+ free(borderType);
+
+ 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/cpp/opencv_cornerHarris.cpp b/sci_gateway/cpp/opencv_cornerHarris.cpp
new file mode 100644
index 0000000..d517eec
--- /dev/null
+++ b/sci_gateway/cpp/opencv_cornerHarris.cpp
@@ -0,0 +1,144 @@
+/********************************************************
+Author: Shubheksha Jalan
+********************************************************/
+
+#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 "../common.h"
+
+
+ int opencv_cornerHarris(char *fname, unsigned long fname_len)
+ {
+ SciErr sciErr;
+ int intErr = 0;
+ int iRows=0,iCols=0;
+ int *piLen = NULL;
+ int *piAddr = NULL;
+ int *piAddrNew = NULL;
+ int *piAddr2 = NULL;
+ int *piAddr3 = NULL;
+ int *piAddr4 = NULL;
+ int *piAddr5 = NULL;
+ int i,j;
+ double blockSize, ksize, k;
+ char **borderType;
+ CheckInputArgument(pvApiCtx, 5, 5);
+ CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+ Mat image;
+ retrieveImage(image, 1);
+ cvtColor(image,image,CV_BGR2GRAY);
+ sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr2, &blockSize);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for ksize
+ sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr3, &ksize);
+ if(intErr)
+ {
+ return intErr;
+ }
+//for value of k
+ sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ intErr = getScalarDouble(pvApiCtx, piAddr4, &k);
+ if(intErr)
+ {
+ return intErr;
+ }
+
+ //for border type
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ //Now, we will retrieve the string from the input parameter. For this, we will require 3 calls
+ //first call to retrieve dimensions
+ sciErr = getMatrixOfString(pvApiCtx, piAddr5, &iRows, &iCols, NULL, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+ //second call to retrieve length of each string
+ sciErr = getMatrixOfString(pvApiCtx, piAddr5, &iRows, &iCols, piLen, NULL);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ borderType = (char**)malloc(sizeof(char*) * iRows * iCols);
+ for(i = 0 ; i < iRows * iCols ; i++)
+ borderType[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+
+ //third call to retrieve data
+ sciErr = getMatrixOfString(pvApiCtx, piAddr5, &iRows, &iCols, piLen, borderType);
+ if(sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+ cout<<"String\n";
+
+ Mat new_image(image.rows, image.cols, CV_32FC1);
+ if(strcmp(borderType[0], "BORDER_CONSTANT") == 0){
+ cornerHarris(image, new_image, blockSize, ksize, k, BORDER_CONSTANT);
+ }
+ else if(strcmp(borderType[0], "BORDER_DEFAULT") == 0)
+ cornerHarris(image, new_image, blockSize, ksize, k, BORDER_DEFAULT);
+
+ namedWindow ("window", 1);
+ imshow("window", new_image);
+ waitKey(0);
+ destroyWindow("window");
+
+ new_image.convertTo(new_image, CV_32FC1, 1.0/255.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);
+
+ //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/cpp/opencv_cornerMinEigenVal.cpp b/sci_gateway/cpp/opencv_cornerMinEigenVal.cpp
new file mode 100644
index 0000000..19123e5
--- /dev/null
+++ b/sci_gateway/cpp/opencv_cornerMinEigenVal.cpp
@@ -0,0 +1,125 @@
+/********************************************************
+Author: Shubheksha Jalan
+********************************************************/
+
+#include