- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2014国赛集训专题5 效果如图 5.2 灰度拉伸 灰度扩展的意思就是把你所感兴趣的灰度范围拉开,使得该范围内的像素亮的越亮,暗的越暗,从而达到了增强对比度的目的。由于图像摄取设备精度的限制,这项技术对图像识别有着重要的意义。 I = imread ( ’chepai. jpg’) ; J = imadjust ( I, [ 0. 2, 0. 8 ] , [ ] ) ; imshow (J ) ; 效果如图 load woman %read data X and map imshow(uint8(X)) figure;image(X);colormap(map) 内存数据的图像显示 imshow( ) 可根据图像数据显示灰度图或彩色图 数据类型必须为uint8,如果数据是double,可用uint8()函数转换 另:image()函数可以将矩阵的数据作为图像显示,可接收double、uint16、uint8类型,同时需通过colormap函数进行颜色配置 3 图像的直方图 定义:灰度级的函数,描述的是图像中每种灰度级像素的个数,反映图像中每种灰度出现的频率。横坐标是灰度级,纵坐标是灰度级出现的频率。 直方图计算 依据定义,若图像具有L(通常L=256,即8位灰度级)级灰度,则大小为MxN的灰度图像f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得: 初始化 hist[k]=0; k=0,…,L-1 统计 hist[f (x,y)]++; x=0,…,M-1, y =0,…,N-1 归一化 hist[f (x,y)]/=M*N Matlab函数imhist() 直方图的用处 1)数字化参数 一般一幅数字图像应该利用全部或几乎全部可能的灰度级; 对直方图做快速检查。 2 )边界阈值选择 使用轮廓线确定简单物体的边界的方法,称为阈值化; 对物体与背景有较强对比的景物的分割特别有用; 基于直方图的图像矫正、分割…… 直方图均衡化 使一输入图像转换为在每一灰度级上都有相同的像素点数(即输出的直方图是平的) 进一步的作用在于图像比较和分割 实际是完成直方图变换:DB=f (DA) 累积分布密度为 变换 例 %初始化及得到lenna的灰度 lenna=zeros(128,128); lenna_equ=zeros(128,128); histgram=zeros(256); cdf=zeros(256); [lenna,map]=imread(c:\temp\lenna.bmp,bmp); %get histogram for i=1:128 for j=1:128 k=lenna(i,j); histgram(k)=histgram(k)+1; end end %get cdf cdf(1)=histgram(1); for i=2:256 cdf(i)=cdf(i-1)+histgram(i); end %run point operation for i=1:128 for j=1:128 k=lenna(i,j); lenna_equ(i,j)=cdf(k)*256/(128*128); end end %生成直方图均衡化后的lenna图 imwrite(lenna_equ,map,c:\temp\lenna_equ.bmp); 图像文件读取 函数imread可以从任何Matlab支持的图像文件格式中以任意位深度读取一幅图像。 [X,MAP]=imread(Filename,’FMT’) Filename:读入的文件名。 FMT为图像格式,如果不指定FMT参数,系统将根据文件名自动判断图像类型。 输出参数X:存储图像数据的矩阵名。 MAP:当图像为索引图像时,MAP为该图像的调色板。 Example: RGB=imread(‘peppers.png’) I=imread(‘moon.tif’) [X,map]=imread(‘canoe.tif’) 注意: imread的使用方法是: I=imread(‘C:\XXXX\XXXX.jpg’); load 是读取matalab本身附带的索引图(具体路径是C:\MATLAB2009\toolbox\wavelet\wavedemo); 而imread是读取你自己的图片(也就是你电脑上的图); 问题在于你处理的图片是真彩图(256*256*3)还是伪彩图(256*256);一般我们电脑上的图片都是真彩图,而索引图是伪彩图,所以如果使用imread的话,需要把图片格式转换。 图像文件的写入(保存) 函数imwrite可以将一幅图像写成一个Matlab支持的格式图
原创力文档


文档评论(0)