【1】图像取反,增加对比度,减小对比度,增加亮度,减小亮度
halcon源码
read_image (Lena, 'C:/Users/Administrator/Desktop/lena.bmp')
rgb1_to_gray (Lena, GrayImage)
get_image_size (GrayImage, Width, Height)
*图像取反
invert_image (GrayImage, ImageInvert)
*增加对比度
emphasize (GrayImage, ImageEmphasize, Width, Height, 1)
*减小对比度
scale_image (GrayImage, ImageScaled, 0.5, 0)
*增加亮度
scale_image (GrayImage, ImageScaled1, 1, 100)
*减小亮度
scale_image (GrayImage, ImageScaled2,1, -100)
图片展示
【2】灰度变换
包含线性变换(分段变化)和非线性变换(对数变换,指数变化)
halcon源码
read_image (Lena, 'C:/Users/Administrator/Desktop/lena.bmp')
*————————————————————————————————————————————————————
*【1】线性灰度变换
*分段灰度变换
get_image_size (Lena, Width, Height)
*获取最大值和最小值
min_max_gray (Lena, Lena, 0, Min, Max, Range)
*线性灰度变换
scale_image_max (Lena, ImageScaleMax)
*————————————————————————————————————————————————————
*【2】非线性灰度变换
rgb1_to_gray (Lena, GrayImage)
*对数变换 扩大灰度较小的灰度范围,压缩数值较大的灰度范围
log_image (GrayImage, LogImage, 'e')
*指数变换可以有选择的增加低灰度区域或者搞灰度区域
*压缩高灰度区域
pow_image (GrayImage, PowImage, 2)
*正比变换
pow_image (GrayImage, PowImage1, 1)
*压缩低灰度区域
pow_image (GrayImage, PowImage2, 0.5)
图像展示
【3】图像平滑
图像平滑的目的是消除噪声点,中值滤波、 均值滤波、高斯滤波、低通滤波
低通滤波器代码
read_image (Lena, 'C:/Users/Administrator/Desktop/lena.bmp')
get_image_size (Lena, Width, Height)
*添加椒盐噪声
sp_distribution (1,1, Distribution)
add_noise_distribution (Lena, ImageNoise, Distribution)
*建立低通滤波器模型
gen_lowpass (ImageLowpass, 0.4, 'none', 'dc_center', Width, Height)
*傅里叶变换
fft_generic (ImageNoise, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
*频域图低通滤波
convol_fft (ImageFFT, ImageLowpass, ImageConvol)
*反傅里叶变换
fft_generic (ImageConvol, ImageFFT1, 'from_freq', 1, 'sqrt', 'dc_center', 'byte')
图像展示
【4】图像锐化
sobel算子 拉普拉斯算子 高通滤波法
高通滤波法源码
read_image (Lena, 'C:/Users/Administrator/Desktop/lena.bmp')
*——————————————————————————————————————————————————————————————————
*sobel算子
sobel_amp (Lena, EdgeAmplitude, 'sum_abs', 3)
sobel_amp (Lena, EdgeAmplitude1, 'x', 3)
sobel_amp (Lena, EdgeAmplitude2, 'y', 3)
*——————————————————————————————————————————————————————————————————
*拉普拉斯算子
laplace (Lena, ImageLaplace, 'absolute', 3, 'n_4')
*——————————————————————————————————————————————————————————————————
*高通滤波器
get_image_size (ImageLaplace, Width, Height)
*生成高通滤波器
gen_highpass (ImageHighpass, 0.1, 'none', 'dc_center', Width, Height)
*傅里叶变换
fft_generic (Lena, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
*高通滤波
convol_fft (ImageFFT, ImageHighpass, ImageConvol)
*反傅里叶变换
fft_generic (ImageConvol, ImageFFT1, 'from_freq', 1, 'sqrt', 'dc_center', 'byte')
图像展示