*图像锐化和图像增强:
•图像锐化:frei_amp ()
•边缘提取算子:edges_image()
•亚像素边缘提取 :edges_sub_pix()
•骨架提取:skeleton()
•图像增强:emphasize()
•图像光照增强:illuminate()
cs
*// 获取图像
read_image (Image, 'printer_chip/printer_chip_01')
*// 图像锐化:一般是用于边缘提取,得到图像轮廓
*// Frei-Chen边缘幅值检测(基于Frei-Chen算子的图像锐化/边缘提取)
*// 原理: 通过Frei-Chen卷积核计算图像梯度,输出边缘幅值(锐化后的图像)
*// 参数1: 输入原始灰度图像
*// 参数2: 输出边缘幅值图像(像素值表示边缘强度,值越大边缘越明显)
frei_amp (Image, ImageEdgeAmp)
*// 边缘提取算子
*// 参数1: 输入原始图像
*// 参数2: 输出边缘幅值图像(每个像素的边缘强度)
*// 参数3: 输出边缘方向图像(每个像素的边缘方向,角度值)
*// 参数4: 边缘检测算法('canny'=Canny算法,最常用;还有'sobel'/'roberts'等)
*// 参数5: 高斯平滑sigma值(>0,值越大平滑越强,边缘越少;值越小保留细节但易有噪点)
*// 参数6: 边缘细化方式('nms'=非极大值抑制,仅保留边缘幅值最大的像素,得到单像素宽边缘)
*// 参数7: 低阈值(Canny算法的双阈值之一,低于此值的边缘直接舍弃)
*// 参数8: 高阈值(Canny算法的双阈值之一,高于此值的边缘保留,高低阈值间的边缘需连接到高阈值边缘才保留)
edges_image (Image, ImaAmp, ImaDir, 'canny', 1, 'nms', 20, 40)
*// 清空窗口
dev_clear_window ()
*// 亚像素边缘提取
* 参数1 Image 输入图像
* 参数2 Edges 输出亚像素边缘轮廓
* 参数3 'canny' 边缘检测算法
* 参数4 1 高斯平滑sigma值
* 参数5 20 低阈值 阈值越高检测到的边缘越少
* 参数6 40 高阈值 阈值越低检测到的边缘越多
* 对比度阈值区间值越高 检测的边缘(轮廓线)越少,反之检测的轮廓线越多
edges_sub_pix (Image, Edges, 'canny', 1, 20, 40)
*// 清空窗口
dev_clear_window ()
edges_sub_pix (Image, Edges, 'canny', 1, 80, 100)
*// 阈值分割
threshold (ImageEdgeAmp, Region, 30, 255)
*// 骨架提取(将边缘区域细化为单像素宽的轮廓线)
*// 原理: 迭代腐蚀区域,直到区域变为单像素宽的骨架,保留区域的拓扑结构
*// 参数1: 输入待细化的区域(阈值分割后的边缘区域)
*// 参数2: 输出骨架区域(单像素宽的边缘轮廓)
skeleton (Region, Skeleton)
*// 清空窗口
dev_clear_window ()
*// 图像增强
*// 先对图像做低通滤波,再用原始图像减去低通图像,增强边缘和细节
*// 参数1: 输入原始图像
*// 参数2: 输出增强后的图像
*// 参数3: 低通掩膜宽度(11,奇数,掩膜越大增强效果越明显)
*// 参数4: 低通掩膜高度(11,奇数,与宽度一致保证各向同性)
*// 参数5: 对比度强度因子(1,>0,值越大对比度增强越显著)
emphasize (Image, ImageEmphasize, 11, 11, 1)
*// 清空窗口
dev_clear_window ()
*// illuminate--图像光照增强(模拟光照效果,提升局部亮度/对比度)
*// 原理: 基于高斯函数模拟光源照射效果,增强图像局部区域的亮度
*// 参数1: 输入原始图像
*// 参数2: 输出光照增强后的图像
*// 参数3: 光源宽度(101,奇数,控制光照影响的横向范围)
*// 参数4: 光源高度(101,奇数,控制光照影响的纵向范围)
*// 参数5: 光照强度(0.7,取值0~1,值越大光照越强,图像越亮)
illuminate (Image, ImageIlluminate, 101, 101, 0.7)
*窗口的相关算子:
•打开一个指定大小的新窗口:dev_open_window ()
•打开一个窗口自适应图像的大小:dev_open_window_fit_image ()
•获取图像大小:get_image_size()
•打开具有给定最小和最大范围的新图形窗口:dev_open_window_fit_size()
•关闭窗口(只关闭一个窗口)dev_close_window ()
•清空内容:dev_clear_window ()
•打开一个文件对话框窗口:dev_open_file_dialog()
cs
*// 获取图像
read_image (Image, 'printer_chip/printer_chip_01')
*// 获取当前窗口句柄
dev_get_window (WindowHandle)
*// 指定大小打开一个窗口
* 参数1、2 打开的位置
* 参数3、4 打开的大小
* 参数5 WindowHandle1 新窗口的句柄对象
dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
*// 打开一个窗口 去自适应图像的大小
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle2)
*// 获取图像大小
get_image_size (Image, Width, Height)
*// 显示图片
dev_display (Image)
*// 指定窗口大小去打开一个窗口来展示图像100*100区间的图像
* 打开具有给定最小和最大范围的新图形窗口,以便保留给定图像大小的宽高比
* 参数1:相对于HDevelop窗口的y坐标
* 参数2:相对于HDevelop窗口的x坐标
* 参数3: 图像宽度
* 参数4: 图像高度
* 参数5: 宽度最大值
* 参数6: 高度的最大值
* 参数7: 窗口句柄
dev_open_window_fit_size (0, 0, 100, 100, -1, -1, WindowHandle3)
get_image_size (Image, Width1, Height1)//获取图像大小
dev_display (Image)//显示图片
*// 打开一个文件对话框窗口
*参数3 打开指定路径下的文件的路径
*参数4 Selection打开文件的路径
dev_open_file_dialog ('read_image', 'default', 'C:/', Selection)
*// 清空内容
dev_clear_window ()
*// 关闭窗口(只关闭一个窗口)
dev_close_window ()
希望对大家有所帮助, 感谢大家的关注和点赞。