salut ,
je suis en train d'implémenter l'algorithme FCM (ségmentation d'une image) avec VC++ mais j'ai trouvé des difficultés au niveau de la déclaration des pixels sous forme d'une matrice RGB. Est ce que vous pouvez m'aidez?
Merci
salut ,
je suis en train d'implémenter l'algorithme FCM (ségmentation d'une image) avec VC++ mais j'ai trouvé des difficultés au niveau de la déclaration des pixels sous forme d'une matrice RGB. Est ce que vous pouvez m'aidez?
Merci
Ce n'est pas un seul matrice mais 3 matrices exactement
Matrice pour le bleu
Matrice pour le Rouge
Matrice pour le Vert
Pour le lire à partir d'un pixel la form RGB tu peux utilsé les
macros suivantes
Et voila un exmple comment on le lisent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 b=GetBValue(une_Col); r=GetRValue(une_Col); g=GetGValue(une_Col);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 void CRouteView::Copiage(CDC *pDC) { CRouteDoc* pDoc = GetDocument(); COLORREF une_Col; BYTE b,r,g,gris; if(pDC != NULL) { CDC dcMem; if(dcMem.CreateCompatibleDC(pDC) == TRUE) { HBITMAP hOldBitmap = (HBITMAP)SelectObject(dcMem.GetSafeHdc(), m_Bm); for(int i=0;i<pDoc->m_Picture.m_Width;i++) { for(int j=0;j<pDoc->m_Picture.m_Height;j++) { une_Col=pDC->GetPixel(i+pDoc->m_Picture.GetCordX(),j+pDoc->m_Picture.GetCordY()); b=GetBValue(une_Col); r=GetRValue(une_Col); g=GetGValue(une_Col); gris=(b+g+r)/3; dcMem.SetPixel(i+pDoc->m_Picture.GetCordX(),j+pDoc->m_Picture.GetCordY(),RGB(gris,gris,gris)); } } SelectObject(dcMem.GetSafeHdc(), hOldBitmap); } } }
Partager