目录
机器视觉重要知识点总结 图像处理---预处理【图像处理部分】
机器视觉重要知识点总结
图像处理---预处理【图像处理部分】
引子
一张图像怎么处理?
相机拍照取图---> 相机采集抛上来一张图片 【需求】算法处理---> 返回结果[OK NG Unknow]
图像的预处理是对相机采集图片的再次像素加工
--->便于后续特征提取【ROI】
万事开头难?
一张图像,可以能为多少种类型?
图像 format---> jpg,bmp,png等
图像 classes---> 彩色图像,黑白图像
图像 channel---> 3通道,单通道
1、Halcon的预处理
a、处理图像预处理算子
消除噪声
mean_image(Image : ImageMean : MaskWidth, MaskHeight : )
binomial_filter(Image : ImageBinomial : MaskWidth, MaskHeight : )
抑制小斑点或细线
median_image(Image : ImageMedian : MaskType, Radius, Margin : )
灰度值的开运算和闭运算
gray_opening_shape(Image : ImageOpening : MaskHeight, MaskWidth, MaskShape : )
gray_closing_shape(Image : ImageClosing : MaskHeight, MaskWidth, MaskShape : )
图像平滑
smooth_image(Image : ImageSmooth : Filter, Alpha : )
图像平滑但尽可能保留边缘
anisotropic_diffusion(Image : ImageAniso : Mode, Contrast, Theta, Iterations : )
b、图像的加、减、乘、除
加
add_image(Image1, Image2 : ImageResult : Mult, Add : )
g’ := (g1 + g2) * Mult + Add
减
sub_image(ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : )
g’ := (g1 - g2) * Mult + Add
乘
mult_image(Image1, Image2 : ImageResult : Mult, Add : )
g’ := (g1* g2) * Mult + Add
除
div_image(Image1, Image2 : ImageResult : Mult, Add : )
g’ := (g1 /g2) * Mult + Add
c、图像的gamma变换、log变换和pow变换
gamma_image(Image,GammaImage,Gamma,Offset,Threshold,MaxGray,Encode)
halcon标准gamma变换的参数设置。
对于sRGB standard,Gamma = 1.0/2.4, Offset = 0.055, Threshold = 0.0031308;
对于HDTV video standard,Gamma = 0.45, Offset = 0.099, Threshold = 0.018
log_image(Image,LogImage,Base)
Base为对数的底,一般取自然对数e, 2, 10等
pow_image(Image,PowImage,Exponent)
Exponent为指数,一般取0.25, 0.5, 2, 3, 4等
d、图像最大值处理、最小值处理
比较两幅图像每个像素的灰度值大小,并将较大/较小灰度值作为新图像该像素点的灰度值。
max_image(Image1, Image2 : ImageMax : : )
min_image(Image1, Image2 : ImageMin : : )
scale_image(Image : ImageScaled : Mult, Add : )
scale_image_max(Image : ImageScaleMax : : )
求图像最小灰度值和最大灰度值
min_max_gray (Image, Image, 0, Min, Max, Range)*拉伸灰度值
scale_image_max (Image, ImageScaleMax)
求图像最小灰度值和最大灰度值
min_max_gray (ImageScaleMax, ImageScaleMax, 0, Min, Max, Range)
e、图像增强
灰度值线性变换
算子实现线性变化,呈现效果会让黑的地方更黑,亮的地方更亮。
scale_image(Image : ImageScaled : Mult, Add : )
将灰度值拉伸到0-255
scale_image_max(Image : ImageScaleMax : : )
增强图像对比度
emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )
illuminate(Image : ImageIlluminate : MaskWidth, MaskHeight, Factor : )
f、示例
read_image (Image, 'test')
get_image_size (Image, Width, Height)
decompose3 (Image, R, G, B)
emphasize (R, ImageEmphasize, Width, Height, 1)
median_image (ImageEmphasize, ImageMedian, 'circle', 5, 'mirrored')
gray_opening_shape (ImageMedian, ImageOpening, 5, 5, 'octagon')
2、OpenCV的预处理【待续】
OpenCV 底层逻辑