Вывод значений в пикселях, но изображение перекрывается. Изображение в три раза больше, чем должно быть

Всем добрый день. Мне удалось распечатать значения пикселей (int из байта) из моего сканера отпечатков пальцев и отобразить его как изображение. Текстовый файл, содержащий значения пикселей, в три раза больше, чем должен быть. И картинки перекрываются. Могу ли я знать, что не так ??? Вот код Кстати, исходное изображение должно быть размером 150 Кбайт (480×320 пикселей).

Согласно спецификации, изображение 8 бит 256 градаций серого.

Я подозреваю, что это как-то связано с размером pBuffer, в котором хранится необработанное изображение. Пожалуйста, помогите, я не знаю, как решить эту проблему.

я использовал

 sizeof(pBuffer)

он возвращает значение четыре. И четыре изображения совпадают. Все, что я хочу, это одно изображение.

void main()
{
ofstream rawImage("Raw image.txt",ios::out);

PBYTE pvData = (PBYTE)pBuffer;//pBuffer stores the raw image
byte *bPoint = (byte*) pvData;

byte TempArr[153600];
byte *bTo = TempArr;
int Int32[153600];
memcpy(bTo, bPoint, 153600);
for(int i=0;i<153600;i++)
{

Int32[i] = (int)TempArr[i];
rawImage<<" "<<Int32[i];
}
}

-1

Решение

Код, который вы опубликовали, пишет текст файл, содержащий 150К чисел, разделенных пробелами. Если числа в десятичной форме обычно имеют 2 цифры, это объясняет размер вашего файла.

Если вы хотите записать двоичный файл (содержащий 150 Кбайт), вам следует

  • Не называйте это .txt
  • открой его ios::out | ios::binary
  • позвонить write метод для всего блока или put метод для отдельных символов вместо использования оператора форматированного вывода <<
0

Другие решения

Хорошо. Решил проблему. Это проблема таблицы данных устройства. Устройство указало, что это 480×320, но в реальном случае это 320×480. Вот что послужило причиной наложения изображений. Потребовалось так много времени, чтобы решить эту проблему. И, кстати, спасибо, ребята, за попытку помочь

0

По вопросам рекламы [email protected]