Matlab读和写图像需要注意的问题
(本人注:尤其是最后一行的imwrite,參數缺一不可。)
1.讀入圖片:imread('filename')
如:f=imread('chest.jpg');
注意:1.括號內為單引號,注意與C區(qū)分
2.命令行最后為冒號,否則會吃苦頭的哦,呵呵
3.保證圖片chest.jpg在當前目錄下,否則要給出圖片的完全路徑
如:f=imread('D:\myimages\chest.jpg');
4.filename后要跟圖片格式后綴。
2.顯示圖片:imshow(f,[ ])
注:上述為推薦使用方式,即使用imshow(f),也可以,二者之間的區(qū)別可以從下面兩幅圖的顯示上看出
imshow(f)imshow(f,[ ])
第一幅圖片的灰度級較小,而,通過imshow(f,[ ])后它的灰度級范圍得到拉伸。
imshow(f,[ ])是imshow(f,[ min? high])的特例,即將f的實際最小對應到min,而其最大灰度級對應到max。
而對于f中小于等于min的灰度級顯示為黑色,大于等于max的灰度級顯示為白色。
3.寫入圖片:imwrite(f,'filename')
其中對于JEPG格式的圖片有
imwrite(f,'filename.jpg','quality',q)?????????????? 0<=q<=100
下面看一個簡單的小程序:
for q=0:5:100
filename=sprintf('series_%3d.jpg',q);
imwrite(f,filename,'quality',q);
end
此程序寫入quality=0,5,10.......共21種quality的圖片,下面看下quality分別為0、5、15、25、50以及原圖的顯示
其中對于TIF格式的圖片有:
imwrite(g,'filename.tif','compression','parameter','resolution',[colres?? rowres])
注:compression:壓縮比率
parameter:none/packbits/ccitt
resolution:分辨率
例如:原始圖片為:jpg格式,200dpi,450*450
由450/200=2.25,知 寬*高=2.25*2.25,要使其變?yōu)閷?高=1.5*1.5,不損失pixels,知compression為none
resolustion=200*2.25/1.5=300
于是:? imwrite(f,'jinpeng.tif','compression','none','resolution',[300 300])
也可以如下顯示:
res=round(200*2.5/1.5);
imwrite(f,'jinpeng.tif','compression','none','resolution',res);
總結
以上是生活随笔為你收集整理的Matlab读和写图像需要注意的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC文件操作
- 下一篇: 协方差矩阵的概念,算法以及自己的一些理解