我是编程世界的新手,正在尝试开发一个使用 OCR 的应用程序。我希望应用程序将单数收据转换为文本(不太复杂)。
但是我的问题是我发现 WP8 上的 OCR 信息不足,以及如何实现它。我会认为它是 WP 的内置功能,并且关于如何实现它的信息很容易获得。
任何人都知道我可以在哪里看,或者我可以使用的简单示例代码片段?不想要基于订阅的服务。
我是编程世界的新手,正在尝试开发一个使用 OCR 的应用程序。我希望应用程序将单数收据转换为文本(不太复杂)。
但是我的问题是我发现 WP8 上的 OCR 信息不足,以及如何实现它。我会认为它是 WP 的内置功能,并且关于如何实现它的信息很容易获得。
任何人都知道我可以在哪里看,或者我可以使用的简单示例代码片段?不想要基于订阅的服务。
您可以尝试使用与 Bing Lens 相同的 OCR 服务。如果你还没有尝试过:打开相机,将镜头换成 bing 镜头并尝试一下
服务端点是http://ocrrest.bingvision.net/V1。它还为您提供有关检测到的文本及其边界框的位置的信息
可能一些提琴手分析将帮助您以类似的方式发送图像。
我在下面有一个小片段,它期望图像为字节数组
public static readonly string ocrServiceUrl = "http://ocrrest.bingvision.net/V1"; // was: "platform.bing.com/ocr/V1";
public static readonly string ocrLanguage = "en";
public static async Task<JsonObject> MakeOcrJSON(byte[] image)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("{0}/Recognize/{1}", ocrServiceUrl, ocrLanguage));
request.Method = "POST";
using (Stream requestStream = await request.GetRequestStreamAsync())
{
requestStream.Write(image, 0, image.Length);
}
try
{
using (HttpWebResponse response = (HttpWebResponse) (await request.GetResponseAsync()))
{
using (var responseStream = new StreamReader(response.GetResponseStream()))
{
var json = JsonObject.Parse(responseStream.ReadToEnd());
return json;
}
}
}
catch (WebException we)
{
using (Stream responseStream = we.Response.GetResponseStream())
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(OcrResponse));
OcrResponse ocrResponse = (OcrResponse)serializer.ReadObject(responseStream);
string ErrorMessage = "Unknown Error";
if (ocrResponse.OcrFault.HasValue)
{
ErrorMessage = string.Format(
"HTTP status code: {0} Message: {1}",
ocrResponse.OcrFault.Value.HttpStatusCode,
ocrResponse.OcrFault.Value.Message);
}
throw new Exception(ErrorMessage);
}
}
}