1. A system comprising: a camera; at least one processor; a display; and a first memory including instructions operable to be executed by the at least one processor to perform a set of actions to configure the at least one processor to: capture a frame of video via the camera; apply an edge detection filter to the captured frame to determine image intensity gradients in horizontal and vertical directions; combine the horizontal and vertical image intensity gradients at each point in the frame to produce an edge map of the frame, wherein each point of the edge map corresponds to a point in the captured frame; select a plurality of edge points of the captured frame by comparing corresponding points of the edge map to a threshold; determine an edge transition width for each edge point of the plurality of edge points by: determine a local intensity maximum and a local intensity minimum along a line intersecting the edge point, and computing the edge transition width as a distance between the local intensity minimum and the local intensity maximum along the line intersecting the edge point; determine a first statistic using the edge transitions width for each edge point of the plurality of edge points; determine a sharpness quality of the frame using the first statistic; based on the sharpness quality, transmit the frame to a server computing device for optical character recognition (OCR) processing; receive OCR results corresponding to text identified in the frame; determine, from the plurality of edge points, a set of edge points that are proximate to the text; determine respective edge transition widths for each edge point of the set of edge points; determine a second statistic using the respective edge transition widths; perform OCR on the text based on the second statistic; and output the OCR results via the display.