mrgloom 242 Жалоба Опубликовано June 25, 2012 вообщем есть такой код на питоне где сверху приходит бинарная строка 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); картинка получается невалидная. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах