资源描述:
《常用图像处理算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、常用图像处理算法彩色图像转换为灰度图像R,G,B为彩图三原色数组,gray为灰度值数组,则gray=R*0.299+G*0.587+B*0.114;比例变换把原象素的灰度放大一个比例,最后截至[0,255]。比例变换可以改变图像的对比度。gray=gray*scale;gray(find(gray<0)) =0;gray(find(gray>255))=255;线性变换把[a,b]之间的灰度值变换到[c,d],区间之外的灰度值不变。area=find(gray>=a&gray<=b);grayArea =gray(
2、area);gray(area)=(d-c)*(grayArea-a)/(b-a)+c;阈值变换将灰度图像转换为黑白二值图像,小于阈值的灰度设为0,大于等于阈值的灰度设为255。bin =zeros(size(gray));bin(find(gray=T))=255;窗口变换灰度区间[down,up]内的象素不变,小于down的灰度置零,大于up的灰度置255。gray1 =gray;gray1(find(grayup))
3、 =255;直方图均衡直方图是灰度-频率图。直方图均衡将原始图像的直方图变成均匀分布的形式,因此 gray=255*灰度不大于gray的象素出现的频率。计算步骤如下:(1)常用图像处理算法彩色图像转换为灰度图像R,G,B为彩图三原色数组,gray为灰度值数组,则gray=R*0.299+G*0.587+B*0.114;比例变换把原象素的灰度放大一个比例,最后截至[0,255]。比例变换可以改变图像的对比度。gray=gray*scale;gray(find(gray<0)) =0;gray(find
4、(gray>255))=255;线性变换把[a,b]之间的灰度值变换到[c,d],区间之外的灰度值不变。area=find(gray>=a&gray<=b);grayArea =gray(area);gray(area)=(d-c)*(grayArea-a)/(b-a)+c;阈值变换将灰度图像转换为黑白二值图像,小于阈值的灰度设为0,大于等于阈值的灰度设为255。bin =zeros(size(gray));bin(find(gray=T))=255;窗口变换灰度区间[do
5、wn,up]内的象素不变,小于down的灰度置零,大于up的灰度置255。gray1 =gray;gray1(find(grayup)) =255;直方图均衡直方图是灰度-频率图。直方图均衡将原始图像的直方图变成均匀分布的形式,因此 gray=255*灰度不大于gray的象素出现的频率。计算步骤如下:(1)统计各个灰度的象素数;(2)计算各个灰度的频率;(3)计算不大于各个灰度的灰度值频率;(4)用公式计算均衡化后的灰度值。Hough变换Hough
6、变换检测物体的本质 目标物体的所有象素点具有恒定的hough域参数。如关于线段检测的hough变换: (x,y)==>(r,q):r=x*cos(q)+y*sin(q)使得同一线段上的象素点具有相同的(r,q)参数。Hough变换从二值图中检测线段的步骤 [Matlab代码](1)求过二值图中每个黑色象素(x,y)的直线簇{(r,q)},同时增加相应直线的含量。 forq=Dq,2*Dq,3*Dq,...,pi,不妨取Dq=pi/180,即pi=180*Dq。 r=x*
7、cos(q)+y*sin(q); content(r,q)=content(r,q)+1; end(2)求单直线(rmax,qmax)。 (rmax,qmax)=argmax(r,q){content(r,q)}(3)检测每个黑色象素(x,y)是否位于直线(rmax,qmax)上,是则提取。 r=x*cos(qmax)+y*sin(qmax); if(r==rmax),extract(x,y);end一些图像处理算法浮雕算法:R=(R-r)+NumberB=(B-b)+NumberG=(G-
8、g)+Number模糊算法:取一个像素块(3*3或5*5或7*7),求出像素块总的R、G、B值,然后取平均值做当前像素点的R、G、B值。锐化算法:R=R+(R-r)+NumberB=B+(B-b)+NumberG=G+(G-g)+Number其中R,G,B是像素对应的RGB值,r,g,b是该点相临像素的RGB值,Number是决定