# How to properly detect segments in a LCD segment display

I have been given the task to develop a code which checks if the display of a device is showing information correctly (i.e. any segments are activating when they are not supposed to).

To meet this goal the device is able to show different segment sets, especifically symbol segments, numeric segments, all segments and none.

The image is captured in these conditions:

To prepare the image, I rotate it and afterwards apply some filtering while decomposing the image channels and working on the Green channel, resulting in the following image.

I am using HALCON to carry out this task, developing a code which performs a pattern matching over a set of ROIs with the following result. For the following images I zommed in to the region most interesting for the pattern matching.

As you can see in the resulting pattern, there are some segments I am not checking (i.e the decimal points) while some not being completely checked like the PROG segment.

After altering the parameters I get the following pattern:

As you can see, it now checks for more information, but now there have appeared undesired traces in the pattern, which might end up affecting the performance of the pattern matching procedure.

Note that the images taken are not the original ones, I have performed the following filters on the image:

shock_filter (ImageRotate, SharpenedImage, 0.1, 20, 'canny', 1)

binomial_filter (SharpenedImage, ImageBinomial, 9, 17)


My questions are:

• Am I approaching this pattern detection correctly? If not, how should I approach it.
• For better results, should I illuminate the display as to reduce the amount of noise to a minimum?

I feel like I should do a matching per every segment group (Perform a matching for every ROI)

• Do you need to know which segment fails or just pass / fail for the entire LCD? Can you control the imaging conditions, e.g. exposure? – geometrikal Apr 6 '16 at 12:29
• I can control exposure, gain, focus, grey value of the image and more parameters quite important for the image. I need to know a pass/fail for the entire LCD (also in addition to finding the pattern shape I should be notified that other segments than the ones in the pattern shape have been found) – Oscar Guillamon Apr 6 '16 at 14:16