後,這是我的計劃的一部分:JPG圖像從30KB變爲300KB cvCreateImageHeader
// let's get jpg image from socket
int iRcvdBytes=recvfrom(iSockFd, buff, bufferSize, 0,
(struct sockaddr*)&cliAddr, (socklen_t*)&cliAddrLen);
// buff now contains 30KB jpg image
// let's load the jpg image to IplImage
IplImage* fIplImageHeader;
fIplImageHeader = cvCreateImageHeader(cvSize(640, 480), 8, 1);
fIplImageHeader->imageData = (char *)buff;
// now let's check the size difference
cout << "Received " << iRcvdBytes << " bytes from the client" << endl;
cout << fIplImageHeader->imageSize << endl;
,輸出是:
Received 31860 bytes from the client
307200
現在這是爲什麼? cvCreateImageHeader()將jpg圖像轉換爲RGB或類似的內部?我希望它保持JPG並用cvShowImage()顯示它。
請任何幫助,歡迎。
是的。但我想從緩衝區加載JPG而不解壓縮。 – 2010-11-23 23:33:44