LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

pattern matching for LCD function test

Hello,

I am writing a VI that is taking a single picture from a camera and then compares it with a template extracted before that.

The camera is looking at LCD display and and the purpose of the matching is to find whether there is a dead pixel or sth wrong at the display. The problem is that the comparison doesn't work as expected.

I will illustrate this with just one examples with picture attached:

 

- At step 1. the template is created. (you can see RUN 2 at the top left corner at the display) 

- At step 2. pattern matching is performed with the same mode of the LCD but a little bit tilted(score - 972 achieved)

- At step 3. the mode is changed (you can see RUN 3 at the top left corner at the display, everything else is the same) - but however a bigger score of 974 is achieved

 

Any explanation of this and some suggestions that can improve my program !?

Thanks a lot

Iliya G. 

Download All
0 Kudos
Message 1 of 3
(2,826 Views)

Hi Iliya,

 

maybe the pattern matching is not the best choice to identify if the mode is run2 or run3.

As it seems you select the whole display area as your region of interest.

The pattern matching algorithm will look for an object that has similar characteristics

like histogram values, edges etc.

If you like to distinguish the modes I would suggest you take a look at the

optical character recognition (OCR) functions.

But if you want to search for dead pixels or small distortions/faults then you should

do a particle analysis that leaves only small particles remaining.

I would also try to improve the lighting of the display because contrast does not look too

good on the pictures.

 

Hope this helps,

David

Message 2 of 3
(2,796 Views)

Hi David,

 

I went through this OCR examples that you mentioned but in fact I find them very annoying because in many cases the output string depends on how you draw your ROI. Please, find an example below and could you please tell me if i am doing sth wrong, but in fact i don't think so.

 

When I try to read the characters separetely, everythings goes ok - it finds r,u,n and 1.

But when I make the ROI bigger in order to contain all the characters, the output is the one at the picture. Any ideas?

 

Thanks,

Iliya 

0 Kudos
Message 3 of 3
(2,767 Views)