Halcon 与OpenCV 预处理的区别

目录

 

 

机器视觉重要知识点总结    图像处理---预处理【图像处理部分】

引子

1、Halcon的预处理

a、处理图像预处理算子

b、图像的加、减、乘、除

c、图像的gamma变换、log变换和pow变换

d、图像最大值处理、最小值处理

e、图像增强

f、示例

2、OpenCV的预处理【待续】


 

机器视觉重要知识点总结
    图像处理---预处理【图像处理部分】

 

引子

一张图像怎么处理?

         相机拍照取图--->   相机采集抛上来一张图片  【需求】算法处理---> 返回结果[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 底层逻辑

 

你可能感兴趣的:(交流学习,计算机视觉,opencv)