Hi! I am writing programm that will determine what number is drawn in bmp image (there is only one digit number in image).
So, I am trying realize it the following way:

  1. read image pixel by pixel
  2. create a two dimentional array of pixel values
  3. if color of pixel i read is not equal to background color of the image i output "*" else i output " ".

And i see that in my text file has drawn the same numbers by "". But i expected the number will be drawn only one time, but it draws 4 times, and there are many "" on background.
So, who can answer me, why it is so? Here is my code:

    #include <iostream>
    #include <fstream>
    #include <windows.h>
    #include <string>
    #include <cstdlib>
    #include <cstdio>

    using namespace std;

    int main(){
        ofstream out("map.txt",ios::out);
        ifstream im("im.bmp", ios::in|ios::binary);
        BITMAPFILEHEADER bfh;
        BITMAPINFOHEADER bih;
        im.read((char*)(&bfh),sizeof(bfh));
        im.read((char*)(&bih),sizeof(bih));
        RGBQUAD map[bih.biHeight][bih.biWidth];
        int sum = 0;
        int x = bih.biHeight;
        int y  = bih.biWidth;
        for(int i = 0;i<x;i++){
           for(int j = 0;j<y;j++){
                   im.read((char*)(&map[i][j]),sizeof(RGBQUAD));
     if(map[i][j].rgbBlue == 255 && map[i][j].rgbGreen == 255 && map[i][j].rgbRed == 255 ) out<<" ";
                   else out<<"*";
                   sum++;
                   }     
                   out<<endl;
                }

         out.close();       
        system("pause");        
        return 0;
        }

    Some image where is some number drawn(For ex.: 4) with background color white!
    After i draw it by pixels in txt:

    ***********************************************************************************************************
    ***********************************************************************************************************
    *****************************************                                                                  









                                           **                         **                         **
                 **                         **                         **                         **
                  **                         **                    ********                   ********
              ********                   ********                   **   **                    **   **
               **   **                    ***  **                     **  **                     **  **
                 **  **                     **  **                     **  **                     **  **
                   ** **                      ** **                      ** **                      ** **
                    ** **                      ** **                      ** **                       ****
                      ****                       ****                       ****                       ****
                       ****                       ****                        ***                        ***
                         ***




                                                                       ****************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ****************************************************************************************** ****************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ***********************************************************************************************************
    ******************* *********************** ***************************************************************

Edited 3 Years Ago by pyTony: fixed formating

Please use code tags when you post code. Also, please use very small examples (5x5 images for example) to test. This way we can interpret the output instead of seeing full pages of stars.

Comments
thanks for resurrecting an old post that even the OP didn't care about.
This article has been dead for over six months. Start a new discussion instead.