Перейти к содержимому
Compvision.ru
mrgloom

PIL Image.fromstring binary string + opencv

Recommended Posts

вообщем есть такой код на питоне

где сверху приходит бинарная строка img_str, потом с помощью PIL

img = Image.fromstring(“L”, (size, size), img_str)

img.save('test_image.png')

проверяю test.dat получен с помощью

fd= open(“test.dat”,'wb')"))

fd.write(img_str)

fd.close()

через интерпертатор картинка валидная

>>> import Image

>>> fd=open(“C:/test.dat”,'rb')

>>> s=fd.read()

>>> len(s)/512

512

>>> im=Image.fromstring(“L”,(512,512),s)

>>> im.show()

пытаюсь прочитать через c++ и opencv

const char *filename = "C:/test.dat";

ifstream infile(filename, fstream::in/*,fstream::binary*/);

//картинка у нас одноканальная заданного размера

infile.seekg(0,ios::end);

int file_size=infile.tellg();

infile.seekg(0,ios::beg);

std::vector<unsigned char> data(file_size, 0);

infile.read(reinterpret_cast<char*>(&data[0]), file_size);

cv::Mat img(data);

int c= img.channels();

cv::Mat r= img.reshape(0,512);

imwrite("C:/test.png",r);

картинка получается невалидная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

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

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×