Using text found in images
Evernote performs advanced processing on some types of Resources to extract content that can be used to later find the associated Notes. For example, images are processed to find printed and handwritten words, which are extracted into a text format for indexing and searching.
This recognition data is represented in a custom XML format that is expressed in the following XML DTD:
https://xml.evernote.com/pub/recoIndex.dtd
The recognition index contains a single top-level 'recoIndex' element, which contains zero or more items. Each item is associated with a rectangular region of the input image (via x, y, w, h). For each item, there are a list of possible terms (element 't') which consist of a weighted score (attribute 'w') and a word in the CDATA body of the element. For example, the following is a recognition index file for an image with two discovered words. The first word is in a region at 151,219 with a size of 323x159, and the second is at 481,387 with a size of 266x120:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE recoIndex SYSTEM "http://xml.evernote.com/pub/recoIndex.dtd">
<recoIndex docType="handwritten" objType="image" objID="47aa2ac0e29962f3699abe50f1afa996" engineVersion="1.9.4.6" recoType="client" lang="en" objWidth="1600" objHeight="1200">
<item x="151" y="219" w="323" h="159">
<t w="68">CLIPS</t>
<t w="65">CHIPS</t>
<t w="62">CERPS</t>
<t w="32">CORPS</t>
<t w="31">CREEPS</t>
<t w="30">CHOPS</t>
</item>
<item x="481" y="387" w="266" h="120">
<t w="40">NOTES</t>
<t w="32">NOTTS</t>
<t w="32">NOTE</t>
<t w="27">NORTE</t>
<t w="27">MOTTS</t>
<t w="27">RIOTS</t>
</item>
</recoIndex>The top-scoring possibility for the first region is "CLIPS" and the top-scoring word for the second region is "NOTES". When a client submits a Note to the service that includes Resources with no recognition data, the service may queue those Resources for processing. Within a few minutes, the corresponding Resource may be updated with server-generated recognition data (which increases the Resource's updateSequenceNumber).
The client can retrieve this data via NoteStore.getResource or NoteStore.getResourceRecognition.