1-) C# RMOS - nicomsoft genel bilgiler
Interop.NSOCRLib.dll-> https://drive.google.com/open?id=1PJBfFiEaxdiuimMFXtg1oFwJn9GrBCni
NSOCR.cs -> https://drive.google.com/open?id=1-nLJniaMfhZ624y8j_qg-5Uj5EqS2Y3K
masaüstü uygulaması -> https://drive.google.com/open?id=1Y9FVzAhgZIyENoxsuHPCMvCWiJfGdMby
webApi -> https://drive.google.com/open?id=1yHIFtvrs8rTMJVLPCRywra4MYz9vl_g2
free_NSOCR_v70_build885_full.rar -> https://drive.google.com/file/d/1MyoOi5NQ-gI3qMu7j9FZA3DTIGvIBcbi/view?usp=sharing
Form1.cs de aşağıdakini bir yaparsan türkçede okur
...
...
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Languages/Turkish", "1");
fmLangs.fmMain = this;
fmLangs.ShowDialog();
...
...
config ayarları kaynak : https://www.nicomsoft.com/files/ocr/help/api/Cfg_SaveOptions.htm
https://www.nicomsoft.com/files/ocr/help/config.htm
//assume reference to NSOCR COM was added
using NSOCR_NameSpace; //Add NSOCR namespace from "NSOCR.cs" file
//...
int CfgObj;
NSOCRLib.NSOCRClass NsOCR = new NSOCRLib.NSOCRClass(); //create NSOCR COM object instance
NsOCR.Engine_Initialize(); //initialize OCR engine
NsOCR.Cfg_Create(out CfgObj); //create CFG object
NsOCR.Cfg_LoadOptions(CfgObj, "Config.dat"); //load configuration
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Languages/German", "1"); //select German language
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Languages/English", "0"); //unselect English language
NsOCR.Cfg_SaveOptions(CfgObj, "Config.dat"); //save updated configuration
NsOCR.Cfg_Destroy(CfgObj); //release CFG object, this line can be removed since Engine_Uninitialize releases all created objects
NsOCR.Engine_Uninitialize(); //release all created objects and uninitialize OCR engine
2-) nicomsoft webApi ile
indirme linki tüm kod = https://drive.google.com/file/d/1Ob1EFftnjiYO6Yo44bwJTRy0karA6s03/view?usp=sharing
.dll ve .cs = https://drive.google.com/file/d/1BRcBZEJmHx-5sZyXmJeKOIfg8pCQxO_s/view?usp=sharing
using ocrWebApi.Models;
using System;
using System.Net;
using System.Web.Http;
namespace ocrWebApi.Controllers
{
public class CozController : ApiController
{
string txt;
// kaynak : https://www.nicomsoft.com/products/ocr/faq/
// https://www.nicomsoft.com/files/ocr/help/api/Cfg_SaveOptions.htm
int CfgObj, OcrObj, ImgObj, BlkObj, i, BlockCnt;
/*
örnek post :
https://localhost:44348/api/Coz?path=https://www.testcin.com/wp-content/uploads/2018/09/6-sinif-turkce-test-15-metin-turleri-soru-1.jpeg
*/
public string Post( string path)
{
try
{
// string path = @"C:\Users\RAMBO\source\repos\ocrWebApi\ocrWebApi\Models\1585.jpg";
//string path = @"https://upload.wikimedia.org/wikipedia/commons/f/f2/Passport_of_Serbia_ID.jpg";
string ad = "3.jpg";
//string ad = Path.GetFileName(path);
string tamPath = System.Web.Hosting.HostingEnvironment.MapPath(@"\Images\" + ad);
using (WebClient client = new WebClient())
{
client.DownloadFile(new Uri(path), tamPath);
}
NSOCRLib.NSOCRClass NsOCR = new NSOCRLib.NSOCRClass(); //create NSOCR COM object instance
NsOCR.Engine_SetLicenseKey("AB2A4DD5FF2A"); //required for licensed version only
NsOCR.Engine_InitializeAdvanced(out CfgObj, out OcrObj, out ImgObj); //initialize OCR engine, create objects and load configuration
NsOCR.Img_LoadFile(ImgObj, tamPath); //load some image for OCR
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Languages/Turkish", "1");
NsOCR.Img_OCR(ImgObj, TNSOCR.OCRSTEP_FIRST, TNSOCR.OCRSTEP_LAST, TNSOCR.OCRFLAG_NONE);
BlockCnt = NsOCR.Img_GetBlockCnt(ImgObj);
for (i = 0; i < BlockCnt; i++)
{
NsOCR.Img_GetBlock(ImgObj, i, out BlkObj);
NsOCR.Blk_GetText(BlkObj, out txt, TNSOCR.FMT_EXACTCOPY); //get block text
}
NsOCR.Engine_Uninitialize(); //release all created objects and uninitialize OCR engine
return txt;
}
catch (Exception ex)
{
return ex.Message.ToString();
}
}
}
}
2-) NORMAL
using System;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string txt;
int CfgObj, OcrObj, ImgObj;
private void button1_Click(object sender, EventArgs e) // a2.jpg a f1
{
string tamPath = "a2.jpg";
NSOCRLib.NSOCRClass NsOCR = new NSOCRLib.NSOCRClass();
NsOCR.Engine_SetLicenseKey("AB2A4DD5FF2A");
NsOCR.Engine_InitializeAdvanced(out CfgObj, out OcrObj, out ImgObj);
NsOCR.Img_LoadFile(ImgObj, tamPath);
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Languages/Turkish", "1");
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "ImgAlizer/Inversion", "4");
NsOCR.Img_OCR(ImgObj, TNSOCR.OCRSTEP_FIRST, TNSOCR.OCRSTEP_LAST, TNSOCR.OCRFLAG_NONE);
NsOCR.Img_GetImgText(ImgObj, out txt, TNSOCR.FMT_EDITCOPY);
NsOCR.Engine_Uninitialize();
Console.WriteLine(txt);
}
}
}
sadece sayı olmasını istiyorsan
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Main/EnabledChars", "0123456789");
config.pdf -> https://drive.google.com/open?id=19C-Wf1zuMQfOwDPMvdzPS36hnoJ-OWv9
2-) CAPTCHA SOLVER
https://tsdk.turkcell.com.tr/SERVICE/AuthAPI/captcha.json?sessionId=1593290032048?1593290035436
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1204; i < 1300; i++)
{
string path = @"C:\Users\RAMBO\source\repos\nicoNew\nicoNew\bin\Debug\captchas\" + i + ".jpg";
//string path = @"C:\Users\RAMBO\source\repos\nicoNew\nicoNew\bin\Debug\captchas\1208.jpg";
Console.WriteLine(nicoCoz(path));
}
}
string txt;
int CfgObj, OcrObj, ImgObj;
public string nicoCoz(string tamPath)
{
NSOCRLib.NSOCRClass NsOCR = new NSOCRLib.NSOCRClass();
NsOCR.Engine_SetLicenseKey("AB2A4DD5FF2A");
NsOCR.Engine_InitializeAdvanced(out CfgObj, out OcrObj, out ImgObj);
string[] cozList = new string[] { "Auto", "4", "2.5", "2", "1.5", "1", "0.5", "0.25" };
foreach (string item in cozList)
{
NsOCR.Img_LoadFile(ImgObj, tamPath);
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "ImgAlizer/AutoScale", "0");
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "ImgAlizer/ScaleFactor", item);
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "Main/EnabledChars", "0123456789");
if (item.Equals("Auto"))
{
NsOCR.Cfg_SetOption(CfgObj, TNSOCR.BT_DEFAULT, "ImgAlizer/AutoScale", "1");
}
NsOCR.Img_OCR(ImgObj, TNSOCR.OCRSTEP_FIRST, TNSOCR.OCRSTEP_LAST, TNSOCR.OCRFLAG_NONE);
NsOCR.Img_GetImgText(ImgObj, out txt, TNSOCR.FMT_EDITCOPY);
if (txt.Length == 6)
{
string don = Path.GetFileName(tamPath) + "-" + item + " -> " + txt;
//Console.WriteLine(don);
return don;
//break;
}
}
return Path.GetFileName(tamPath) + "-"+ txt;
}