0

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 by pyTony: fixed formating

2
Contributors
1
Reply
2
Views
5 Years
Discussion Span
Last Post by daviddoria
0

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.

Votes + Comments
thanks for resurrecting an old post that even the OP didn't care about.
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.