图 像 的 灰 度 变 化 图像的灰度变化 图像的灰度变化
1.图像灰度值变化(图像增强)
灰度变换目的:图像灰度值变换主要为了提高图像的对比度
。
对比度就是图像的清晰程度,不同的物体与背景是否对比清晰。包括1.灰度变换
以及2.直方图变换
等。
灰度线性变换
:将图像的像素点的灰度值按照线性变换函数进行变换。
g(x,y) =af(xy)+b
还可以进行分段变换,比如
g(x,y)=v1 0<f(x,y)<m1
g(x,y)=af(x,y)+b m1<=f(x,y)<m2
g(x,y)=v3 m2<=f(x,y)<=255
图像取反:g(x,y)=255-f(x,y)
add_image()
:图像相加
invert_image()
:图像取反
灰度线性变换
add_image
add_image(Image1, Image2 : ImageResult : Mult, Add : )
g' := (g1 + g2) * Mult + Add
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
* 关闭变量赋值,加快运行速度
dev_update_off ()
read_image (Image, Selection)
rgb1_to_gray (Image, GrayImage)
* 灰度线性变换
add_image (GrayImage, GrayImage, ImageResult, 0.5,100)
灰度分段变换
* 灰度分段变换
get_domain (GrayImage, Domain)
get_region_points (Domain, Rows, Columns)
get_grayval (GrayImage, Rows, Columns, Grayval)
for i := 0 to |Grayval|-1 by 1
if (Grayval[i]>100)
Grayval[i] := 255
endif
endfor
set_grayval (ImageResult, Rows, Columns, Grayval)
灰度的非线性变换
灰度的非线性变换:图像灰度值采用非线性函数进行变换,常用的为对数函数与指数函数。
* 提升低范围的亮度而不提升高范围的
log_image (GrayImage, LogImage, 'e')
* 提升高范围的亮度而不提升低范围的
exp_image (LogImage, ExpImage, 'e')
灰度直方图变换:对图像中的像素灰度做映射变换,但是这种映射是基于灰度直方图的。这里介绍直方图均衡化。,
equ_histo_image(inputImg,outputImg) 直方图均衡化
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
dev_update_off ()
read_image (Image, Selection)
rgb1_to_gray (Image, GrayImage)
* 灰度线性变换
add_image (GrayImage, GrayImage, ImageResult, 0.5,100)
* 灰度分段变换
get_domain (GrayImage, Domain)
get_region_points (Domain, Rows, Columns)
get_grayval (GrayImage, Rows, Columns, Grayval)
for i := 0 to |Grayval|-1 by 1
if (Grayval[i]>100)
Grayval[i] := 255
endif
endfor
set_grayval (ImageResult, Rows, Columns, Grayval)
* 提升低范围的亮度而不提升高范围的
log_image (GrayImage, LogImage, 'e')
* 提升高范围的亮度而不提升低范围的
exp_image (LogImage, ExpImage, 'e')
直方图均衡化
* 直方图均衡化
equ_histo_image (GrayImage, ImageEquHisto)