1.threshold(全局)
2.dyn_threshold(动态)
3.var_threadshold(局部阈值和标准查)
4.binary_threshold(自动阈值)
一 阈值分割方式
1.全局阈值分割(实际开发中结合)灰度直方图动态调正,用于在场景中提取最大范围目标
threshold(Image,Region,128,255)
2.自动阈值分割:根据波峰图自动进行分割,如果图像黑白对比计较明显,灰度差异大的时候可以使用
建议采用默认的大津法。最大限度的提取
极性(选择一亮或暗)当作背景
binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
3.动态阈值分割:光照如果不均匀,灰度差异大的情况下使用(动态阈值分割一般都要搭配平滑算子)
*1.带分割图像,2.平滑后的图像3.处理后生成的图像4.分割的偏移量5.极性
dyn_threshold (Image, ImageMean, RegionDynThresh, 5, 'light')
4局部均值和标准差分割:光照不均匀,并且收到周围目标灰度值影响较大的时候使用(差异)
3.掩膜的厚度 4.掩模的高度3.掩膜的标准差6.灰度提取的值7.极性
var_threshold (Image, Region, 15, 15, 0.2, 2, 'dark')
光照均匀时用局部均值和标准差分割
光照不均匀,并且收到周围目标灰度值影响较大的时候使用(差异)
*3.掩膜的厚度 4.掩模的高度3.掩膜的标准差6.灰度提取的值7.极性
var_threshold (Image, Region, 15, 15, 0.2, 2, 'dark')
亚像素轮廓:把边缘特征中比较有特点的像素连接起来突出
threshold_sub_pix (Image, Border, 200)
自动根据灰度直方图划分的阈值分割(根据西格玛系数,值越大,划分的波动越大)
auto_threshold (Image, Regions, 2)
快速阈值分割:类似与全局阈值分割,虽然很快,但是不够
fast_threshold (Image, Region1, 150, 180, 20)
二平滑打磨
*在阈值分割之前也可以搭配形态学处理,对图像预处理>>加个图像,方便后面处理
*平滑处理“打磨”,相当于vp中的心态学操作,后面两个值代表平滑系统,值越大,越平滑
mean_image (Image, ImageMean, 5, 5)
三 图像处理——增强
根据指定的大小拟合窗体
dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle)
dev_display (Image)
*对当前窗体进行截屏
*1.窗体对象 2.保存的文件格式 3.路径,默认是hclcon安装目录
dump_window (WindowHandle, 'postscript', 'D:/ai机器视觉/Hcoled/截图/')
对图像灰度值进行取反
invert_image (Image, ImageInvert)
invert_image (ImageInvert, Image2)
增强图像的对比度(让黑的更黑,让白的更白)
*5.权重值,值越大,对比度原告
*emphasize (Image, ImageEmphasize, Width, Height, 10)
*减少对比度 3.代表的是减少的比列,大于1更亮 0代表全黑 4.权重
scale_image (Image, ImageScaled, 0.5, 0)
scale_image (Image, ImageScaled2, 1, 100)
scale_image (Image, ImageScaled3, 1, -100)
*检测某一块区域的最小灰度值
*1.待检测区域 2.检测的图像 3.最低需要大于灰度值的百分比 4-5返回得最小值 6.区间
min_max_gray (ROI_0, Image, 0, Min, Max, Range)
*对某一区域的灰度值进行最大话填充,效果是让原本的图像更加清晰
scale_image_max (Image, ImageScaleMax)
*把图像保存起来
write_image (ImageScaleMax, 'tiff', 0, 'D:/ai机器视觉/Hcoled/截图/')
*代码执行到这里会暂停,需要再次点击运行或者F5才会继续执行
stop()
通过幂指数运算到达增强效果
*核心是通过增强底灰度值的对比度,或者是降低高灰度值的对比度
*3.代表对比度0-1代表增强高灰度的对比度 大于则代表增强的是底灰度的对比度
pow_image (LogImage, PowImage, 2)
dev_open_window (0, 0, 150, 200, 'black', WindowHandle1)
set_display_font (WindowHandle1, 16, 'mono', 'true', 'false')
*获得图像的直方图
*3.输出的绝对的直方图组
*4.输出的相对直方图组
gray_histo(Image, PowImage, AbsoluteHisto, RelativeHisto)
dev_display (PowImage)
gen_region_histo (Region, AbsoluteHisto, 255, 255, 1)
四 图像处理——均值滤波
*想图像中添加高斯噪声点,值越大,噪声越明显
*1.制造噪声
gauss_distribution (100, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)
dev_display (ImageNoise)
*均值滤波可以对噪声进行消除
mean_image (ImageNoise, ImageMean, 3, 3)
dev_display (ImageNoise)
*中值滤波:以某中形态消除椒盐噪声
*1.带有噪声的图像
*2.处理之后的图像
*3.滤波器的形状, circle:半径为3的圆 square:正方形 跟卷积有关。
*4.半径或者尺寸
*5.滤波的方式
median_image (ImageMean, ImageMedian, 'circle', 1, 'mirrored')
高斯滤波
生成高斯滤波器
*1.滤波器区域
*2.SigmasX:高斯滤波器分布在x轴上的标准差
*3.SigmasY:高斯滤波器分布在y轴上的标准差
*注意2-3的作用是如果插值过大,产生的滤波器就会比较宽,对图像的平滑效果就会更明显
*4.角度
*5.滤波因子,目的是用来确保滤波起的权重,使用代数来表示
*6.滤波器类型,dc_center:圆 rft:放射矩形 dc_edge:圆形
*7~8:代表宽高
gen_gauss_filter (ImageGauss, 100, 100, 0, 'none', 'rft', Width, Height)
结合滤波器进行傅里叶变换(图像处理算法),目的是说成频或图像
*3.to_freq:正方向生成 from_freq:反方向
*4.傅里叶变换是需要用到的标准化因子:sqrt:平方化 n:归一化 none:默认的
*5输出的图像格式
*6变化是需要用到的宽度,尽量和滤波器宽度一致
*做深层次图像时会用到,一般用不到
rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)
*对当前的变换区域进行卷积处理,原理是使用上面的高斯当作卷积
convol_fft (ImageFFT, ImageGauss, ImageConvol)
二次变换:目的是从刚才的傅里叶区域切换回来。(因为上面一次转换的时候不包含高斯,但是这里已经包含了)
rft_generic (ImageConvol, ImageFFT2, 'from_freq', 'none', 'byte', Width)
*求两张图差值
*1.需要处理的图像
*2.减去的部分
*3.输出的图像
*4.校正因子
*5.需要矫正的值
sub_image (Image, ImageFFT2, ImageSub, 1, 128)
*提取高斯线
*1.输入图像
*2.输出的线段结合
*3.平滑系数
*4.阈值下降
*5.阈值上限
*6.明线或者暗线
*7.是否显示宽度
lines_gauss (ImageZoomed, Lines, 1.5, 3, 8, 'light', 'true', 'bar-shaped', 'true')
dev_display (ImageZoomed)
低通滤波和图像锐化
*1.输入图像
*2.输出图像
*3.过滤器的类型
*4.过滤器的尺寸,值越大,锐化的图像越暗
*锐化检测物体边缘
*sobel_amp (Image, EdgeAmplitude1, 'sum_abs', 3)
*sobel_amp (Image, EdgeAmplitude2, 'thin_sum_abs', 11)
*sobel_amp (Image, EdgeAmplitude3, 'thin_max_abs', 11)
*sobel_amp (Image, EdgeAmplitude4, 'sum_abs', 3)
*创建椒盐噪声点:数字的是噪声
*椒=黑 盐=白
sp_distribution (5, 5, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)
dev_display (ImageNoise)
*傅里叶变换
fft_generic (ImageNoise, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')

2554

被折叠的 条评论
为什么被折叠?



