diff --git a/.vs/EKYC/v17/.suo b/.vs/EKYC/v17/.suo
new file mode 100644
index 0000000..06152ee
Binary files /dev/null and b/.vs/EKYC/v17/.suo differ
diff --git a/.vs/EKYC/v17/Browse.VC.db b/.vs/EKYC/v17/Browse.VC.db
new file mode 100644
index 0000000..574a26f
Binary files /dev/null and b/.vs/EKYC/v17/Browse.VC.db differ
diff --git a/.vs/EKYC/v17/ipch/AutoPCH/3dae3c0e7abcb25b/WARP.ipch b/.vs/EKYC/v17/ipch/AutoPCH/3dae3c0e7abcb25b/WARP.ipch
new file mode 100644
index 0000000..47f841e
Binary files /dev/null and b/.vs/EKYC/v17/ipch/AutoPCH/3dae3c0e7abcb25b/WARP.ipch differ
diff --git a/.vs/EKYC/v17/ipch/AutoPCH/9006e8497d374e8/DETECT_CORNER.ipch b/.vs/EKYC/v17/ipch/AutoPCH/9006e8497d374e8/DETECT_CORNER.ipch
new file mode 100644
index 0000000..e6be2af
Binary files /dev/null and b/.vs/EKYC/v17/ipch/AutoPCH/9006e8497d374e8/DETECT_CORNER.ipch differ
diff --git a/.vs/EKYC/v17/ipch/AutoPCH/986870aa21a34469/EXTRACT_LONG.ipch b/.vs/EKYC/v17/ipch/AutoPCH/986870aa21a34469/EXTRACT_LONG.ipch
new file mode 100644
index 0000000..85c2292
Binary files /dev/null and b/.vs/EKYC/v17/ipch/AutoPCH/986870aa21a34469/EXTRACT_LONG.ipch differ
diff --git a/.vs/EKYC/v17/ipch/AutoPCH/a6271da328bf20c9/SQUARES.ipch b/.vs/EKYC/v17/ipch/AutoPCH/a6271da328bf20c9/SQUARES.ipch
new file mode 100644
index 0000000..eebcc88
Binary files /dev/null and b/.vs/EKYC/v17/ipch/AutoPCH/a6271da328bf20c9/SQUARES.ipch differ
diff --git a/.vs/EKYC/v17/ipch/AutoPCH/f3a80539f82506d4/MAIN.ipch b/.vs/EKYC/v17/ipch/AutoPCH/f3a80539f82506d4/MAIN.ipch
new file mode 100644
index 0000000..7c48c94
Binary files /dev/null and b/.vs/EKYC/v17/ipch/AutoPCH/f3a80539f82506d4/MAIN.ipch differ
diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json
new file mode 100644
index 0000000..0cf5ea5
--- /dev/null
+++ b/.vs/ProjectSettings.json
@@ -0,0 +1,3 @@
+{
+ "CurrentProjectSetting": "No Configurations"
+}
\ No newline at end of file
diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
new file mode 100644
index 0000000..f1eb390
--- /dev/null
+++ b/.vs/VSWorkspaceState.json
@@ -0,0 +1,8 @@
+{
+ "ExpandedNodes": [
+ "",
+ "\\EKYC"
+ ],
+ "SelectedNode": "\\EKYC.sln",
+ "PreviewInSolutionExplorer": false
+}
\ No newline at end of file
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
new file mode 100644
index 0000000..d586af7
Binary files /dev/null and b/.vs/slnx.sqlite differ
diff --git a/EKYC.sln b/EKYC.sln
new file mode 100644
index 0000000..d58bf41
--- /dev/null
+++ b/EKYC.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32421.90
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EKYC", "EKYC\EKYC.vcxproj", "{00FC090A-A417-4103-B6A4-ADA044F93FC8}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Debug|x64.ActiveCfg = Debug|x64
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Debug|x64.Build.0 = Debug|x64
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Debug|x86.ActiveCfg = Debug|Win32
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Debug|x86.Build.0 = Debug|Win32
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Release|x64.ActiveCfg = Release|x64
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Release|x64.Build.0 = Release|x64
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Release|x86.ActiveCfg = Release|Win32
+ {00FC090A-A417-4103-B6A4-ADA044F93FC8}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {0F1378C1-799B-4A10-B662-D5BDB9E95ABA}
+ EndGlobalSection
+EndGlobal
diff --git a/EKYC/EKYC.vcxproj b/EKYC/EKYC.vcxproj
new file mode 100644
index 0000000..2a5da63
--- /dev/null
+++ b/EKYC/EKYC.vcxproj
@@ -0,0 +1,153 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {00fc090a-a417-4103-b6a4-ada044f93fc8}
+ EKYC
+ 10.0
+
+
+
+ Application
+ true
+ v143
+ Unicode
+
+
+ Application
+ false
+ v143
+ true
+ Unicode
+
+
+ Application
+ true
+ v143
+ Unicode
+
+
+ Application
+ false
+ v143
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ D:\openCV\opencv\build\include;D:\1\20212\KTLT\vcpkg\installed\x64-windows\include\tesseract;D:\1\20212\KTLT\vcpkg\installed\x64-windows\include;D:\1\20212\KTLT\vcpkg\installed\x64-windows\include\leptonica;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+ D:\1\20212\KTLT\vcpkg\installed\x64-windows\lib;D:\openCV\opencv\build\x64\vc15\lib;%(AdditionalLibraryDirectories)
+ opencv_world455.lib;archive.lib;bz2.lib;charset.lib;gif.lib;iconv.lib;jpeg.lib;leptonica-1.82.0.lib;libcrypto.lib;libpng16.lib;libssl.lib;libxml2.lib;lz4.lib;lzma.lib;openjp2.lib;tesseract41.lib;tiff.lib;turbojpeg.lib;webp.lib;webpdecoder.lib;webpdemux.lib;webpmux.lib;zlib.lib;zstd.lib;%(AdditionalDependencies)
+
+
+
+
+ D:\1\20212\KTLT\vcpkg\installed\x64-windows\include\tesseract;D:\1\20212\KTLT\vcpkg\installed\x64-windows\include;D:\1\20212\KTLT\vcpkg\installed\x64-windows\include\leptonica;%(AdditionalIncludeDirectories)
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EKYC/EKYC.vcxproj.filters b/EKYC/EKYC.vcxproj.filters
new file mode 100644
index 0000000..943a77e
--- /dev/null
+++ b/EKYC/EKYC.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/EKYC/EKYC.vcxproj.user b/EKYC/EKYC.vcxproj.user
new file mode 100644
index 0000000..88a5509
--- /dev/null
+++ b/EKYC/EKYC.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/EKYC/extract_information.cpp b/EKYC/extract_information.cpp
new file mode 100644
index 0000000..e9df7ed
--- /dev/null
+++ b/EKYC/extract_information.cpp
@@ -0,0 +1,148 @@
+#include "opencv2/highgui.hpp"
+#include "opencv2/imgproc.hpp"
+#include
+#include
+#include
+#include
+#include
+using namespace cv;
+using namespace std;
+
+RNG rng(12345);
+
+int getMaxAreaContourId(vector > contours) {
+ double maxArea = 0;
+ int maxAreaContourId = -1;
+ for (int j = 0; j < contours.size(); j++) {
+ double newArea = cv::contourArea(contours.at(j));
+ if (newArea > maxArea) {
+ maxArea = newArea;
+ maxAreaContourId = j;
+ }
+ }
+ return maxAreaContourId;
+}
+
+std::vector detectLetters(cv::Mat img)
+{
+ // Find contours
+ std::vector boundRect;
+ cv::Mat img_gray, img_sobel, img_threshold, element;
+ cvtColor(img, img_gray, COLOR_BGR2GRAY);
+ cv::Sobel(img_gray, img_sobel, CV_8U, 1, 0, 3, 1, 0, cv::BORDER_DEFAULT);
+ cv::threshold(img_sobel, img_threshold, 0, 255, THRESH_OTSU + THRESH_BINARY);
+ element = getStructuringElement(cv::MORPH_RECT, cv::Size(20, 7));
+ cv::morphologyEx(img_threshold, img_threshold, MORPH_GRADIENT, element);
+ std::vector< std::vector< cv::Point> > contours;
+ cv::findContours(img_threshold, contours, 0, 1);
+ std::vector > contours_poly(contours.size());
+ for (int i = 0; i < contours.size(); i++)
+ if (contours[i].size() > 100)
+ {
+ cv::approxPolyDP(cv::Mat(contours[i]), contours_poly[i], 3, true);
+ cv::Rect appRect(boundingRect(cv::Mat(contours_poly[i])));
+ if (appRect.width > appRect.height)
+ boundRect.push_back(appRect);
+ }
+ return boundRect;
+}
+
+string trim(const string& str)
+{
+ size_t first = str.find_first_not_of(' ');
+ if (string::npos == first)
+ {
+ return str;
+ }
+ size_t last = str.find_last_not_of(' ');
+ return str.substr(first, (last - first + 1));
+}
+
+int main() {
+ Mat img, img_resized, img_original, img_gray, img_canny, edged, hstack;
+ img = imread("D:/AI_PHOTO/data/student3.jpg");
+ //img_original = img.copyTo();
+
+ resize(img, img_resized, Size(), 0.5, 0.5);
+
+
+ cvtColor(img_resized, img_original, COLOR_BGR2GRAY);
+ bilateralFilter(img_original, img_gray, 20, 30, 30);
+ Canny(img_gray, edged, 10, 20);
+
+ hconcat(edged, img_gray, hstack);
+
+
+ // Find contour for image
+ vector > contours;
+ vector hierarchy;
+ findContours(edged, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE);
+
+ int index = getMaxAreaContourId(contours);
+
+ Scalar color = Scalar(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256));
+ drawContours(img_resized, contours, (int)index, color, 2, LINE_8, hierarchy, 0);
+
+ // Find four corner points
+ vector approx;
+ approxPolyDP(contours[index], approx, 30, true);
+ auto mean = cv::mean(approx);
+ vector bottomCorners;
+ vector topCorners;
+
+ for (auto p : approx)
+ {
+ if (p.y > mean[1]) bottomCorners.push_back(p);
+ if (p.y < mean[1]) topCorners.push_back(p);
+ }
+
+ circle(img_resized, topCorners[1], 5, color, 10);
+
+ // Use perspective transformation to rotate cropped image
+ Mat output;
+ Point2f Poly2[4] = {
+ topCorners[0],
+ topCorners[1],
+ bottomCorners[0],
+ bottomCorners[1],
+ };
+
+ Point2f Points[4] = {
+ cv::Point2f(0,0),
+ cv::Point2f(432,0),
+ cv::Point2f(0,576),
+ cv::Point2f(432,576),
+ };
+
+ cv::Mat Matrix = cv::getPerspectiveTransform(Poly2, Points);
+
+ cv::warpPerspective(img_resized, output, Matrix, cv::Size(432, 576));
+
+ //OCR time
+ vector letterBBoxes1 = detectLetters(output);
+
+ tesseract::TessBaseAPI* ocr = new tesseract::TessBaseAPI();
+ ocr->Init("C:\\Program Files\\Tesseract-OCR\\tessdata", "eng", tesseract::OEM_LSTM_ONLY);
+ ocr->SetPageSegMode(tesseract::PSM_AUTO);
+
+ for (int i = 0; i < letterBBoxes1.size(); i++) {
+
+ rectangle(output, letterBBoxes1[i], cv::Scalar(0, 255, 0), 1, 1, 0);
+ Mat cropped_image = output(letterBBoxes1[i]);
+ ocr->SetImage(cropped_image.data, cropped_image.cols, cropped_image.rows, 3, cropped_image.step);
+ string outText = string(ocr->GetUTF8Text());
+ outText.erase(std::remove(outText.begin(), outText.end(), '\n'), outText.end());
+ putText(output, trim(outText), cv::Point(letterBBoxes1[i].x, letterBBoxes1[i].y - 10), cv::FONT_HERSHEY_DUPLEX, 0.5, cv::Scalar(255, 255, 255), 1, false);
+ }
+
+
+ ocr->End();
+
+ imshow("origin", img_resized);
+
+ imshow("Output", output);
+ imwrite("D:/AI_PHOTOS/data/student3.jpg", output);
+ //imshow("gray and edged", hstack);
+ waitKey(0);
+ destroyAllWindows();
+}
diff --git a/EKYC/x64/Release/EKYC.exe.recipe b/EKYC/x64/Release/EKYC.exe.recipe
new file mode 100644
index 0000000..b4a97d1
--- /dev/null
+++ b/EKYC/x64/Release/EKYC.exe.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ D:\1\20212\KTLT\EKYC\x64\Release\EKYC.exe
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EKYC/x64/Release/EKYC.iobj b/EKYC/x64/Release/EKYC.iobj
new file mode 100644
index 0000000..3556130
Binary files /dev/null and b/EKYC/x64/Release/EKYC.iobj differ
diff --git a/EKYC/x64/Release/EKYC.ipdb b/EKYC/x64/Release/EKYC.ipdb
new file mode 100644
index 0000000..4aa9476
Binary files /dev/null and b/EKYC/x64/Release/EKYC.ipdb differ
diff --git a/EKYC/x64/Release/EKYC.log b/EKYC/x64/Release/EKYC.log
new file mode 100644
index 0000000..543f399
--- /dev/null
+++ b/EKYC/x64/Release/EKYC.log
@@ -0,0 +1,8 @@
+ extract_long.cpp
+D:\1\20212\KTLT\EKYC\EKYC\extract_long.cpp(132,98): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
+ Generating code
+ 1 of 350 functions ( 0.3%) were compiled, the rest were copied from previous compilation.
+ 0 functions were new in current compilation
+ 0 functions had inline decision re-evaluated but remain unchanged
+ Finished generating code
+ EKYC.vcxproj -> D:\1\20212\KTLT\EKYC\x64\Release\EKYC.exe
diff --git a/EKYC/x64/Release/EKYC.tlog/CL.command.1.tlog b/EKYC/x64/Release/EKYC.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..fadfc81
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/CL.command.1.tlog differ
diff --git a/EKYC/x64/Release/EKYC.tlog/CL.read.1.tlog b/EKYC/x64/Release/EKYC.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..0a5b410
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/CL.read.1.tlog differ
diff --git a/EKYC/x64/Release/EKYC.tlog/CL.write.1.tlog b/EKYC/x64/Release/EKYC.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..d9f8791
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/CL.write.1.tlog differ
diff --git a/EKYC/x64/Release/EKYC.tlog/EKYC.lastbuildstate b/EKYC/x64/Release/EKYC.tlog/EKYC.lastbuildstate
new file mode 100644
index 0000000..6397504
--- /dev/null
+++ b/EKYC/x64/Release/EKYC.tlog/EKYC.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.31.31103:TargetPlatformVersion=10.0.19041.0:VcpkgTriplet=x64-windows:
+Release|x64|D:\1\20212\KTLT\EKYC\|
diff --git a/EKYC/x64/Release/EKYC.tlog/EKYC.write.1u.tlog b/EKYC/x64/Release/EKYC.tlog/EKYC.write.1u.tlog
new file mode 100644
index 0000000..54830f7
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/EKYC.write.1u.tlog differ
diff --git a/EKYC/x64/Release/EKYC.tlog/link.command.1.tlog b/EKYC/x64/Release/EKYC.tlog/link.command.1.tlog
new file mode 100644
index 0000000..120995e
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/link.command.1.tlog differ
diff --git a/EKYC/x64/Release/EKYC.tlog/link.read.1.tlog b/EKYC/x64/Release/EKYC.tlog/link.read.1.tlog
new file mode 100644
index 0000000..2c0bdc3
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/link.read.1.tlog differ
diff --git a/EKYC/x64/Release/EKYC.tlog/link.write.1.tlog b/EKYC/x64/Release/EKYC.tlog/link.write.1.tlog
new file mode 100644
index 0000000..94c29ef
Binary files /dev/null and b/EKYC/x64/Release/EKYC.tlog/link.write.1.tlog differ
diff --git a/EKYC/x64/Release/EKYC.vcxproj.FileListAbsolute.txt b/EKYC/x64/Release/EKYC.vcxproj.FileListAbsolute.txt
new file mode 100644
index 0000000..fa6719c
--- /dev/null
+++ b/EKYC/x64/Release/EKYC.vcxproj.FileListAbsolute.txt
@@ -0,0 +1 @@
+D:\1\20212\KTLT\EKYC\EKYC\x64\Release\EKYC.vcxproj.CopyComplete
diff --git a/EKYC/x64/Release/detect_corner.obj b/EKYC/x64/Release/detect_corner.obj
new file mode 100644
index 0000000..04a9b67
Binary files /dev/null and b/EKYC/x64/Release/detect_corner.obj differ
diff --git a/EKYC/x64/Release/extract_long.obj b/EKYC/x64/Release/extract_long.obj
new file mode 100644
index 0000000..ac46b69
Binary files /dev/null and b/EKYC/x64/Release/extract_long.obj differ
diff --git a/EKYC/x64/Release/main.obj b/EKYC/x64/Release/main.obj
new file mode 100644
index 0000000..000b88e
Binary files /dev/null and b/EKYC/x64/Release/main.obj differ
diff --git a/EKYC/x64/Release/squares.obj b/EKYC/x64/Release/squares.obj
new file mode 100644
index 0000000..b1db704
Binary files /dev/null and b/EKYC/x64/Release/squares.obj differ
diff --git a/EKYC/x64/Release/vc143.pdb b/EKYC/x64/Release/vc143.pdb
new file mode 100644
index 0000000..432eb75
Binary files /dev/null and b/EKYC/x64/Release/vc143.pdb differ
diff --git a/EKYC/x64/Release/vcpkg.applocal.log b/EKYC/x64/Release/vcpkg.applocal.log
new file mode 100644
index 0000000..9d3e6a4
--- /dev/null
+++ b/EKYC/x64/Release/vcpkg.applocal.log
@@ -0,0 +1,12 @@
+
+D:\1\20212\KTLT\EKYC\x64\Release\tesseract41.dll
+D:\1\20212\KTLT\EKYC\x64\Release\leptonica-1.82.0.dll
+D:\1\20212\KTLT\EKYC\x64\Release\gif.dll
+D:\1\20212\KTLT\EKYC\x64\Release\jpeg62.dll
+D:\1\20212\KTLT\EKYC\x64\Release\openjp2.dll
+D:\1\20212\KTLT\EKYC\x64\Release\libpng16.dll
+D:\1\20212\KTLT\EKYC\x64\Release\zlib1.dll
+D:\1\20212\KTLT\EKYC\x64\Release\tiff.dll
+D:\1\20212\KTLT\EKYC\x64\Release\liblzma.dll
+D:\1\20212\KTLT\EKYC\x64\Release\webpmux.dll
+D:\1\20212\KTLT\EKYC\x64\Release\webp.dll
diff --git a/EKYC/x64/Release/warp.obj b/EKYC/x64/Release/warp.obj
new file mode 100644
index 0000000..b56a348
Binary files /dev/null and b/EKYC/x64/Release/warp.obj differ
diff --git a/README.md b/README.md
deleted file mode 100644
index 69237b0..0000000
--- a/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Extract_Information
-
-1. Install library
-- In Visual Studio, open Project -> EKYC properties -> C/C++ -> General -> Additional Include Directories
- add: opencv/build/include
- vcpkg\installed\x64-windows\include\tesseract
- vcpkg\installed\x64-windows\include
- vcpkg\installed\x64-windows\include\leptonica
- - In linker -> General -> Additional Library Directories
- add: vcpkg\installed\x64-windows\lib
- opencv\build\x64\vc15\lib
diff --git a/x64/Release/EKYC.exe b/x64/Release/EKYC.exe
new file mode 100644
index 0000000..886182b
Binary files /dev/null and b/x64/Release/EKYC.exe differ
diff --git a/x64/Release/EKYC.pdb b/x64/Release/EKYC.pdb
new file mode 100644
index 0000000..598a0f1
Binary files /dev/null and b/x64/Release/EKYC.pdb differ
diff --git a/x64/Release/gif.dll b/x64/Release/gif.dll
new file mode 100644
index 0000000..96dc014
Binary files /dev/null and b/x64/Release/gif.dll differ
diff --git a/x64/Release/jpeg62.dll b/x64/Release/jpeg62.dll
new file mode 100644
index 0000000..e8a64b1
Binary files /dev/null and b/x64/Release/jpeg62.dll differ
diff --git a/x64/Release/leptonica-1.82.0.dll b/x64/Release/leptonica-1.82.0.dll
new file mode 100644
index 0000000..f829e14
Binary files /dev/null and b/x64/Release/leptonica-1.82.0.dll differ
diff --git a/x64/Release/liblzma.dll b/x64/Release/liblzma.dll
new file mode 100644
index 0000000..cd0e849
Binary files /dev/null and b/x64/Release/liblzma.dll differ
diff --git a/x64/Release/libpng16.dll b/x64/Release/libpng16.dll
new file mode 100644
index 0000000..c42a1c2
Binary files /dev/null and b/x64/Release/libpng16.dll differ
diff --git a/x64/Release/openjp2.dll b/x64/Release/openjp2.dll
new file mode 100644
index 0000000..c41d77a
Binary files /dev/null and b/x64/Release/openjp2.dll differ
diff --git a/x64/Release/tesseract41.dll b/x64/Release/tesseract41.dll
new file mode 100644
index 0000000..1deb0a3
Binary files /dev/null and b/x64/Release/tesseract41.dll differ
diff --git a/x64/Release/tiff.dll b/x64/Release/tiff.dll
new file mode 100644
index 0000000..5e87c3e
Binary files /dev/null and b/x64/Release/tiff.dll differ
diff --git a/x64/Release/webp.dll b/x64/Release/webp.dll
new file mode 100644
index 0000000..1e89d74
Binary files /dev/null and b/x64/Release/webp.dll differ
diff --git a/x64/Release/webpmux.dll b/x64/Release/webpmux.dll
new file mode 100644
index 0000000..aabed11
Binary files /dev/null and b/x64/Release/webpmux.dll differ
diff --git a/x64/Release/zlib1.dll b/x64/Release/zlib1.dll
new file mode 100644
index 0000000..d1f8c25
Binary files /dev/null and b/x64/Release/zlib1.dll differ