Всем добрый день. Мне удалось распечатать значения пикселей (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];
}
}
Код, который вы опубликовали, пишет текст файл, содержащий 150К чисел, разделенных пробелами. Если числа в десятичной форме обычно имеют 2 цифры, это объясняет размер вашего файла.
Если вы хотите записать двоичный файл (содержащий 150 Кбайт), вам следует
.txt
ios::out | ios::binary
write
метод для всего блока или put
метод для отдельных символов вместо использования оператора форматированного вывода <<
Хорошо. Решил проблему. Это проблема таблицы данных устройства. Устройство указало, что это 480×320, но в реальном случае это 320×480. Вот что послужило причиной наложения изображений. Потребовалось так много времени, чтобы решить эту проблему. И, кстати, спасибо, ребята, за попытку помочь