2010-06-26 6 views
0

comment convertir une image bitmap en image binaire?Comment convertir une image couleur 24 bits en image binaire à l'aide de MFC?

+4

Une image bitmap est déjà une image binaire. Aussi, vous pourriez vouloir spécifier quelle plate-forme/langue vous utilisez car actuellement votre question n'a aucun sens. –

+0

Voulez-vous vraiment dire une image bitmap, ou voulez-vous simplement dire une image BMP ou autre? Si oui, est-ce la couleur ou l'échelle de gris? –

+0

J'utilise C++ MFC. je veux dire bitmap 24 bits. il est en échelle de couleur et je peux le convertir en échelle de gris. –

Répondre

1

Le plus simple et plus facile à convertir une image d'échelle de gris en une image binaire consiste à appliquer simplement un seuil, à savoir

out[y][x] = in[y][x] > threshold ? 1 : 0; 

La valeur threshold peut être fixé, par exemple, 128, variable, fournie par l'utilisateur, ou déterminée automatiquement en histogrammant l'image en premier. Il existe des méthodes plus sophistiquées qui génèreront subjectivement de «meilleures» images binaires, mais sans en savoir plus sur vos besoins, il est difficile de savoir si vous avez besoin de quelque chose de plus avancé ou si un simple seuillage sera suffisant.

+0

J'ai essayé, mais il suffit d'imprimer un carré noir :(c'est mon code plz vérifier cette COLORREF = rgb dc.GetPixel (x, y). \t \t BYTE r = GetRValue (rgb); \t \t BYTE g = GetGValue (RGB); \t \t BYTE b = GetBValue (RGB); \t \t BYTE bw = (BYTE) (0,3 * R + 0,59 * g + 0,11 * b + 0,5); \t \t bin BYTE = RGB (pc , bw, bw)> 128? 1: 0; \t \t dc.SetPixel (x, y, RGB (bin, bin, bin)); –

+0

@Sweety Khan: peut-être votre seuil est trop élevé pour cette image - essayez un valeur plus faible. e que si votre image est encore 8 bits avec les valeurs de 1 et 0, alors il ne sera pas visible - vous aurez besoin d'utiliser 0 et 255 pour une image de 8 bits. –

+0

L'image couleur que j'utilise est un bitmap 24 bits. –

Questions connexes