正文

图象格式转换2008-04-19 14:45:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/vfdff/34321.html

分享到:

图像格式的多样性,给我们带来了方便,也同样带来了不方便。raw,pgm,bmp,jpg我需要的格式不断地变,变,变...Raw的主要原理Raw实际上是各个相机厂商自己的原始数据格式,也是点的集合。由于每个厂商,其格式不一样,所以兼容性肯定是大大的差。但是Raw由它独特的好处:1,无失真2,保留了CCD捕捉的最原始数据,如果采用好的转化软件,可以得到比相机缺省转化要好的图像!专业摄影推荐。3,所有EXIF都有,原始信息嘛,不过不一定能很容易读出来(格式不兼容)4,里面的数据跟CCD的模数转化深度(数字信号的量化精度)一样,一般都在普通图像的8位以上,譬如12bit或16bit。也就是说精度高。当Raw转化到JPG的时候,一般精度就立刻降为8bit,Raw一般也会用无失真的压缩办法压缩一下。       raw是最直接也容易处理的图像,处理像素的信息,从文件中得不到图像的其他信息了,比如图像的大小,色彩等。虽然直观,还是使用的不多。      由raw转化为其他图像的最简单的方法就是利用matlab来处理,读数据到二维矩阵,然后以需要的格式再写道文件里就行了。由其他的文件转为raw 的格式也很简单,把图像以正确的格式读到矩阵中,把该矩阵写到文件里就ok了。/////////////////////////////////////////////////////////////////////////////////////////////////////////rh = fopen('test.raw','rb');image = fread(rh,'uint8');fclose(rh);imagesize  = sqrt(size(image(:,1)))for i=1:imagesize    for j= 1:imagesize        in(i,j) = uint8(image((i-1)*imagesize(1) +j));    endendimwrite(in,'test.bmp','bmp');/////////////////////////////////////////////////////////////////////////////////////////////////////////in=imread('test.pgm','pgm');fid=fopen('test.raw','wb');fwrite(fid,in,'uint8');fclose(fid);////////////////////////////////////////////////////////////////////////////////////////////////////////查找了jpg格式图像的原理,感觉想从这种格式(DCT变换+压缩)恢复到图像最原始的raw格式好像是不可能的了。

阅读(7061) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册