NI Home
Cart Achats | Aide
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Répondre
Member
Tanite
Envois : 24
0 Compliments

[CVI & NIIMAQ & NIMAQDX] Calcule nombre des pixels LCD VFD

[ modifié ]

Salut à tous,

 

Je suis sur un nouveau projet (machine de vision) et j'ai vraiment besoin de l'aide pour réaliser mon projet (je suis novice en matière de vision)

Merci d'avance pour l'aide / informations / explication

 

Voila mon problème:

 

Je dois réaliser un banc de vision pour tester un afficheur LCD VFD en utilisation Labwindows/CVI et NI IMAQDX pour une camera Ethernet et NIIMAQ pour le traitement de l’image

Je mettre en pièce jointe une photo pour mon LCD VFD, le but de ce test c’est de s’assurer que tous les pixels sont fonctionnelles et que l’afficheur est bien assemblé, pour résumer

Deux test à faire :

1 ) test des pixels

2) test alignement

 

A première vue l’idée c’est de compter le nombre de pixels pour le test des pixels

Pouvez-vous m’indiquer les stratèges de tests possible et les fonctions NI IMAQ qui il faut pour faire mes test

 

Encore une fois je vous remercie d’avance pour toute contribution / explications / Informations utile

J’attends alors les sympa :smileywink:

 

Member
toto69
Envois : 69
0 Compliments

Re : [CVI & NIIMAQ & NIMAQDX] Calcule nombre des pixels LCD VFD

Bonjour

L'image a t elle été faite avec la caméra définitive? Car si l'ecran LCD est monochrome, pas besoin d'une camera couleur. Tu perdrait en résolution.

Ensuite, je te conseille de faire du blob analysis pour compter les particules.

Il faut commencer par seuiller l'image pour isoler les pixels du fond, puis eventuellement un peu de morphologie pour supprimer les parasites. Enfin, compter les particules.

Toutes ces fonctions se trouvent dans les palettes de morphologie.

Bonne continuation

Member
Tanite
Envois : 24
0 Compliments

Re : [CVI & NIIMAQ & NIMAQDX] Calcule nombre des pixels LCD VFD

 Merci toto69,

 

Je te confirme que l'LCD c'est de type monochrome, je viens de mettre une nouvelle capture en pièce jointe

J'ajoute aussi une petite précision c'est que j'utilise Labwindows et pas Labview ...

Peux-tu me dire ala faisabilité avec labwindows ?

 

Avez-vous un exemple en CVI ?

Member
Tanite
Envois : 24
0 Compliments

Re : [CVI & NIIMAQ & NIMAQDX] Calcule nombre des pixels LCD VFD

Salut à tous,

 

J'avance un peu, merci toto69 pour l'algo !

 

J'arrive à calculer le nombre des pixels dans mon image, par contre j'ai un autre problème pour definir le ROI.

En fait il est possible d'avoir une un pictogramme dans image et du coup mon programme retour pixels de plus ...

 

J'ai essayer d'utiliser les fonctions ROI, mais il me semble que je n'arrive pas tout seul !

 

Voici mon bout de code

 

ROI* mainROI1;
RotatedRect primaryRect = {215, 50, 100, 970, 0.00};

// dans le main

src=imaqCreateImage (IMAQ_IMAGE_U8, 3);
dest = imaqCreateImage (IMAQ_IMAGE_U8, 3);
mainROI1 = imaqCreateROI();



et voici le code du bouton Process 

int CVICALLBACK Process (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    unsigned int min, max;
    int connectivity;
	FindTransformRectOptions TOptions = {40, 4, 2, 10, IMAQ_BOTTOM_TO_TOP, IMAQ_LEFT_TO_RIGHT, TRUE, FALSE, TRUE, TRUE};
	
	Image* histogramMask;
	
    switch (event)
        {
        case EVENT_COMMIT:
			
		   /* Clear any overlay on this image and display it */
          //  imaqClearOverlay(src, NULL);
            
            /* Computes a coordinate transform based on the position */
            /*of an object in a search area of an image              */
            //imaqFindTransformRect(src, primaryRect, &transform, IMAQ_FIND_REFERENCE, &TOptions, NULL); 

            /* Display the result you get from FindTransformRects */
           
			imaqClearOverlay(src, NULL);
			
			/* Get region of interest from image UI */
			imaqRemoveContour (mainROI1, IMAQ_ALL_CONTOURS);
			
			imaqAddRectContour (mainROI1, pRect);
			
			 /* Set ROI to the window */
			imaqSetWindowROI (IMG_WINDOW, mainROI1);
			
			histogramMask = imaqCreateImage (IMAQ_IMAGE_U8, 2);
			imaqROIToMask (histogramMask,mainROI1,1,NULL,NULL);
			
			
			imaqDisplayImage (histogramMask, IMG_WINDOW, TRUE);
					
			
            /* Process the Threshold */
            GetCtrlVal (panelHandle, PANEL_THRESHOLD_MIN, &min);
            GetCtrlVal (panelHandle, PANEL_THRESHOLD_MAX, &max);
            imaqThreshold (dest, histogramMask, (float)min, (float)max, TRUE, 255.0);
            
            /* Get the particle reports */
            GetCtrlVal (panelHandle, PANEL_CONNECTIVITY, &connectivity);
            imaqCountParticles (dest, connectivity, &numParticles);

            /* Display Results */
            imaqDisplayImage (dest, 1, TRUE);
            
            SetCtrlVal (panelHandle, PANEL_NUMPARTICLES, numParticles);
            SetCtrlVal (panelHandle, PANEL_PARTICLENUM, 0);
            SetCtrlAttribute (panelHandle, PANEL_PARTICLENUM, ATTR_DIMMED, (numParticles<=0));
            SetCtrlAttribute (panelHandle, PANEL_PARTICLENUM, ATTR_MAX_VALUE, numParticles-1);
           	DisplayReport (0);
            break;
        }
    return 0;
}  

 > Resultat 0 pixels !!!

 

Merci d'avance  :smileywink:

Member
toto69
Envois : 69
0 Compliments

Re : [CVI & NIIMAQ & NIMAQDX] Calcule nombre des pixels LCD VFD

Bonjour,

Content que mon aide soit utile. Cependant, je ne connais pas LabWindows, mais je pense que toutes les fonctions IMAQ sont les mêmes qu'en LabVIEW.

Pour ce qui est de la ROI, il faut la dessiner pour qu'elle englobe les charactères, sans prendre le pictogramme indésirable. Si le pictogramme touche le bord de ta ROI, il y a une option qui s'apelle "Remove Border Objects" en morphologie, qui te permet d'enlever les particules indésirables si elles touchent le bord de la ROI.

 

Sinon, il est possible de faire une ROI de petite dimension, et de la déplacer d'un charactère à l'autre avec une boucle. Mais ca demande plus de code.

 

Member
Tanite
Envois : 24
0 Compliments

Re : [CVI & NIIMAQ & NIMAQDX] Calcule nombre des pixels LCD VFD

[ modifié ]

OK toto, merci bien !

 

En fin j'arrive à trouver uen solution, ça peut être n'est pas TOP, mais elle me dépanne pour l'instant.

 

En fait j'ai definire une ROI, puis j'extraire la zone ROI et je le mettre dans une nouvelle image et enfin j'applique les traitement ...

 

Si quelqu'un de la communauté peut me fournir plus d'elemnts d'explication ?

Deux question de plus ça peut être bête mais bon, j'ai remarqué que la majorité des gens ici utilisent labview pour la vision

 

Est-ce que les performances sont mieux avec LabView ?, même API ?

 

ou bien le débat clasique Lbview VS Labwindows ?

 

Merci à tous  :smileywink:  :smileywink:   :smileywink:

 

En consultant ce site, vous en acceptez les Conditions d'utilisation. Veuillez les lire attentivement avant d'accéder à une quelconque partie du site. Veuillez suivre ce lien pour en savoir plus sur la politique sur les droits d'auteur de ni.com.
Mon Profil | Confidentialité | Conditions d'utilisation | Contacter NI © 2011 National Instruments Corporation. All rights reserved.    |    Envoyer cette page Envoyer cette page