#include "stdafx.h"
#include "highgui.h"
#include "iostream"
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
using namespace std;
int main() {
IplImage *InImage;
FILE *fp_raw;
InImage = cvLoadImage("66DK.png",-1);
short *source =NULL;
if(InImage==0)
{
cout<<"Error:couldn't open the image"<<endl;
system("PAUSE");
return 0;
}
CvScalar s;
source = new short[(InImage->width)*(InImage->height)];
for(int i=0;i<(InImage->width)*(InImage->height);i++)
{
s= cvGet1D(InImage,i);
short temp1= (short)s.val[0] & 0x000F;
short temp2= (short)s.val[0] & 0xFFF0;
short real_value = (temp1<<12)+(temp2>>4);
source[i]=real_value;
}
fp_raw=fopen("DK66.raw","wb");
fwrite(source,sizeof(short),(InImage->width)*(InImage->height),fp_raw);
delete []source;
fclose(fp_raw);
return 0;
}
I2luY2x1ZGUgInN0ZGFmeC5oIgojaW5jbHVkZSAiaGlnaGd1aS5oIgojaW5jbHVkZSAiaW9zdHJlYW0iCiNpbmNsdWRlIDxjdi5oPgojaW5jbHVkZSA8aGlnaGd1aS5oPgojaW5jbHVkZSA8c3RkaW8uaD4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBtYWluKCkgewoJSXBsSW1hZ2UgKkluSW1hZ2U7CglGSUxFICpmcF9yYXc7CiAKCUluSW1hZ2UgPSBjdkxvYWRJbWFnZSgiNjZESy5wbmciLC0xKTsKCXNob3J0ICpzb3VyY2UgPU5VTEw7CgkgaWYoSW5JbWFnZT09MCkKCSB7CgkJY291dDw8IkVycm9yOmNvdWxkbid0IG9wZW4gdGhlIGltYWdlIjw8ZW5kbDsKCQlzeXN0ZW0oIlBBVVNFIik7CiAgICAgICAgcmV0dXJuIDA7CgkgfQogCgkgQ3ZTY2FsYXIgczsKCSBzb3VyY2UgPSBuZXcgc2hvcnRbKEluSW1hZ2UtPndpZHRoKSooSW5JbWFnZS0+aGVpZ2h0KV07CgkgZm9yKGludCBpPTA7aTwoSW5JbWFnZS0+d2lkdGgpKihJbkltYWdlLT5oZWlnaHQpO2krKykKCSB7CgkJIHM9IGN2R2V0MUQoSW5JbWFnZSxpKTsKCQkgc2hvcnQgdGVtcDE9IChzaG9ydClzLnZhbFswXSAmIDB4MDAwRjsKCQkgc2hvcnQgdGVtcDI9IChzaG9ydClzLnZhbFswXSAmIDB4RkZGMDsKCQkgc2hvcnQgcmVhbF92YWx1ZSA9ICh0ZW1wMTw8MTIpKyh0ZW1wMj4+NCk7CgkJIHNvdXJjZVtpXT1yZWFsX3ZhbHVlOwoJIH0KIAoJIGZwX3Jhdz1mb3BlbigiREs2Ni5yYXciLCJ3YiIpOwoJIGZ3cml0ZShzb3VyY2Usc2l6ZW9mKHNob3J0KSwoSW5JbWFnZS0+d2lkdGgpKihJbkltYWdlLT5oZWlnaHQpLGZwX3Jhdyk7CiAKCWRlbGV0ZSBbXXNvdXJjZTsKCWZjbG9zZShmcF9yYXcpOwoJcmV0dXJuIDA7Cn0=