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:
- read image pixel by pixel
- create a two dimentional array of pixel values
- 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:
***********************************************************************************************************
***********************************************************************************************************
*****************************************
** ** **
** ** ** **
** ** ******** ********
******** ******** ** ** ** **
** ** *** ** ** ** ** **
** ** ** ** ** ** ** **
** ** ** ** ** ** ** **
** ** ** ** ** ** ****
**** **** **** ****
**** **** *** ***
***
****************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
****************************************************************************************** ****************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
***********************************************************************************************************
******************* *********************** ***************************************************************