bitmap en niveaux de gris au format binaire

Z

zkai2000

Guest
Quelqu'un peut-il compléter ce code pour moi?Je peux à peu près obtenir le concept, mais je ne sais pas comment l'écrire davantage.c'est lié au RVB couleurs ..
Ai-je besoin pour une valeur seuil?
Comment lire l'entrée ** in_image?

Code:

void Seuil (int ** in_image, x_max int, y_max int, int seuil)

(

for (int x = 0; x <x_max; x )

(

for (int y = 0; y <y_max; y )

(

if (in_image [x] [y]> = seuil)

in_image [x] [y] = 255;

autre

in_image [x] [y] = 0;

)

)

)

 
Désolé, voici quelques ajouts ..
la in_image ** est un tableau 2-D pour une image ..
issit possible de placer une image bitmap dans un tableau?Comment puis-je redimensionner le tableau?
Quelle est la taille d'une unité d'un tableau en cours de route?issit 8 bits?

merci!

 
Le code utilise une gamme de taille de l'unité 1 octet = 8 bits.
Vous pouvez le voir ici »: in_image [x] [y] = 255;"
S'il pense que le code est de convertir une image bitmap en niveaux de gris en une image bitmap monochrom.Le seuil de définir la valeur de gris de décider si un point est noir ou blanc (0 ou 255).

Espérons que cela vous aidera.

 
Quote:

Le seuil de définir la valeur de gris de décider si un point est noir ou blanc (0 ou 255).

 
Bien sûr, le seuil est une valeur.
Comme je l'écrivais, je pense que le code convertit une image bitmap en niveaux de gris en une image bitmap monochrom.Pensez à un pixel, la couleur (greyvalue) peut être de 0-255-noir au blanc et tout entre ceci.Maintenant, vous voulez convertir un bitmap en niveaux de gris (ce qui est le même qu'un 2D-array) en une image bitmap monochrom, le eaysiest simple est de tout dire sur une valeur X (Seuil) est blanc, et chaque point avec moins alors une valeur est noir.
Comme par exemple un pixel a une valeur de 150, le seuil est de 160, cela signifie tout devient blanc-dessus de 160 et moins 160 devient tout noir.Dans notre exemple le Pixel serait devenu noir.

 
quand j'ai compilé le code, il a produit un «externes non résolus" .. erreur
ISIT signifiait que je havent got any intrants et des extrants?
si elle renvoie in_image [x] [y] = 255, est-il comprendre qu'il est de 8 bits, qui représentent «noir»?_Programmer

Merci DR
_Programmer

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Vous pouvez copier une image bitmap en un tableau, en utilisant "fread" c'est à dire fichier fonction read en C / C .Aussi, vous pouvez lancer tableau pour l'image en taille variable en utilisant des pointeurs double.Mai être vous êtes pas d'initialisation des variables qui provoquent une erreur.Essayez également de seuillage mutiple pour l'image.

 
aasif,
u peut montrer par exemple d'utiliser "fread"?
Im pointeur à l'aide de pointeur .. mais wat est multiple seuillage par le chemin?dont get it .. i

<img src="http://www.edaboard.com/images/smiles/icon_redface.gif" alt="Embarrassé" border="0" />
 
Voici un exemple de code pour fread ()

WIDTH Largeur de l'image est
HEIGHT Hauteur de l'image est

unsigned char ImageIn [largeur] [hauteur];
m_sBitmap = "c: \ temp.bmp"; / / for example image temp.bmp
/ / m_sBitmap est une chaîne contenant le nom du fichier et le chemin,
FILE * fp; / / pointeur de fichier
fp = fopen (m_sBitmap, "rb"); / / Ouvrir le fichier pour la lecture
(fread-tête, 1,0 x435, fp); / / Copy 0x435 octets en-tête de tableau
/ / Taille tableau en-tête est la même que 0x435
fseek (fp, 0x436, SEEK_SET); / / Déplacer le fichier pointeur au début des données d'image bitmap
(fread ImageIn, 1, largeur * hauteur, fp);
fclose (fp);

Maintenant vous pouvez traiter ImageIn comme vous le désirez.
S'il vous plaît dites que vous ne comprenez pas.

 
aasif,
Issit si facile de lire une image BMP?J'ai besoin d'informations bitmap têtes rite?pour les couleurs RVB, dimensions, taille, ... etc
pls conseiller ~ merci!

 
est qu'un fichier d'en-tête de lecture d'une image BMP?
u don't mind me montrant tout cela?lecture d'une échelle de gris bmp code source de l'image ..

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying or Very sad" border="0" />merci beaucoup!!

 
Bitmap Fichier image contient des informations d'en-tête dans le démarrage, après que les données de l'image est enregistrée dans le fichier.
Les informations d'en-tête contient l'image Largeur et Hauteur, Nombre de couleurs, de bits par pixel et plus important le décalage de données d'images de l'endroit où les données d'image réelle commence.

Je pense que le code que j'ai posté dans ma réponse précédente est très simple et facile à gérer, et il n'y a rien de plus important à gauche.

J'ai choisi une image de 256 niveaux de gris pour ouvrir là-bas et l'en-tête pour ce type d'images ne sont que 0x435 octets.Ainsi cette valeur que j'ai utilisé dans le code.

La première exécution de ce code et me dire la sortie, puis je vais vous dire l'en-tête ensemble pour tout type d'images.

 
aasif sorry, im not really good in C

<img src="http://www.edaboard.com/images/smiles/icon_redface.gif" alt="Embarrassé" border="0" />

.. est que le code en-tête ou le code source?En passant, j'ai besoin de placer mon image dans un tableau.

.. um puis-je convertir l'image en premier binaire?ou je le place dans un tableau en premier?

J'ai une lecture code image pgm format.puis-je faire quelques modifications sur elle pour lui faire lire une image BMP?
Désolé, mais vous devez vous loguer pour voir cette pièce jointe

 
Il s'agit du code souce, le code n'est pas en-tête.Je pense qu'il est très très simple, même pour les débutants.Essayez d'abord ce code.Copier et exécuter, puis parlez-moi de la sortie.

Au début, faire quelques image de l'échantillon, par exemple un rectangle ou un cercle dans le logiciel Paint, enregistrez l'image que 256 échelle de l'image grise bitmap.Régler la largeur de l'image et la hauteur.

Quatre paramètres sont nécessaires à la lecture d'une image bitmap.Image width, height, no.de couleurs et de données d'images de décalage.La connaissance de ces quatre paramètres, vous pouvez facilement lire n'importe quelle image bitmap.Lorsque vous apportez votre propre image, vous définissez largeur de l'image, la hauteur et non.de couleurs.Ainsi, les données ne compensent est nécessaire.Pour image de 256 niveaux de gris les données de compenser la valeur est 0x435.Par conséquent, j'ai utilisé cette valeur.Par exemple pour la largeur et la hauteur de l'image "c: / temp.bmp" est de 100.utilisez le code suivant.

unsigned char ImageIn [100] [100];
unsigned char header [0x435];
FILE * fp;
fp = fopen ( "c: \ temp.bmp", "rb");
(fread-tête, 1,0 x435, fp);
fseek (fp, 0x436, SEEK_SET);
(fread ImageIn, 1, largeur * hauteur, fp);
fclose (fp);

Maintenant, les données d'image est copiée dans ImageIn [] [] array.

Exécuter votre code et dites-moi la sortie.

 
le code est en C rite?pas C ?Je n'ai jamais appris B4 C ..

<img src="http://www.edaboard.com/images/smiles/icon_redface.gif" alt="Embarrassé" border="0" />J'ai compilé le code mais j'ai reçu beaucoup d'erreurs avec lui.J'ai besoin de déclarer ou d'initialiser rite quelque chose?

 
function and use the code there.

Oui ce code est en C, mais il suffit d'utiliser fonction
main ()
et utilisez le code là.J'ai un exemple de projet à cet effet.Si vous avez toujours des erreurs alors je le donnerai à toi.Un fichier Simle C qui peut lire, traiter et écrire un fichier bitmap nouvelles.Mais je pense que si vous vous essayez d'abord, puis il sera plus utile pour vous dans le futur.

 
J'ai d'abord étudié la structure du fichier BMP, mais je sais pas vraiment comment faire appliquer tout en C / mode de programmation ..

J'ai réussi à obtenir des codes d'échantillons de la lecture d'un fichier BMP, j'ai même écrit une (avec malloc, mais avec l'erreur: lire cant / ouvre le fichier) .. Peut être que je force déclarer un en-tête pour le format BMP??

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying or Very sad" border="0" />

.. pourquoi issit semble si compliqué de comparer to ur code?

u n'avez pas besoin d'initialiser ou déclarer toute ur-tête pour le code en C?

Oso im inquiets que le code proposé u cant face à l'étape suivante de mon i coz progrès nécessité d'appliquer certaines orientations et les algorithmes correspondant à plus tard ... peut-il?

 
Mon code est juste pour la lecture d'un fichier bitmap simple de largeur connue, hauteur et les couleurs.Le décalage est également connu.Par conséquent, il ne nécessite aucun en-tête.Lorsque vous exécutez ce code avec succès, la prochaine étape sera d'étendre ce code pour tous les fichiers.A ce stade, vous aurez besoin de fichiers en-tête mais pas maintenant.

 
mais je ne sais pas comment l'exécuter sans en-tête .. j'ai des erreurs comme des identificateurs non déclaré pour fread, fseek, etc .. que je viens de courir.

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying or Very sad" border="0" />btw, le u SPIE mentionné qu'il liés à l'imagerie médicale?!u're intéressés par ces?

 
@ zkai2000:
Quote:

J'ai des erreurs comme des identificateurs non déclaré pour fread, fseek, etc .. que je viens de courir
 

Welcome to EDABoard.com

Sponsor

Back
Top