小说下载网站哪个好,网站推广方案书,计算机系毕设代做网站,班服定制的网站1、blob#xff08;Binary Large Object#xff09;是指二值图像中连通区域。 预处理通常包括一系列步骤#xff0c;例如去噪、形态学操作、特征提取等。 read_image(Image,claudia)
get_image_size(Image,Width,Height)
dev_open_window_fit_size (0, 0, Width, Width, -1,…1、blobBinary Large Object是指二值图像中连通区域。 预处理通常包括一系列步骤例如去噪、形态学操作、特征提取等。 read_image(Image,claudia)
get_image_size(Image,Width,Height)
dev_open_window_fit_size (0, 0, Width, Width, -1, -1, WindowHandle)
dev_display(Image)* 高斯分布
gauss_distribution (60, Distribution)
* 添加高斯噪声分布
add_noise_distribution (Image, ImageNoise, Distribution)* 生成图像保存到本地这里保存的使‘bmp’格式的图片第三个参数是保存的路径
* 生成图像保存到本地
* 参数一句柄
* 参数二保存的图片格式
* 参数三保存的路径
dump_window (WindowHandle, bmp, D:/Halcon/绘制图形/高斯噪声)* 均值平滑 (对图像进行平均滤波处理以降低图像中的噪声。)
* 参数一原始图像
* 参数二输出图像
* 参数三、四计算局部均值时使用的窗口的宽高
mean_image (ImageNoise, ImageMean, 5,5)
dump_window (WindowHandle, bmp, D:/Halcon课程/绘制图形/均值平滑)* 中值滤波
* 参数一输入图像,
* 参数二输出图像,
* 参数三滤波器形状(圆circle、正方形square)
* 参数四尺寸,
* 参数五mirrored 表示边缘处理方式当窗口超出图像边界时使用镜像方式进行处理
median_image (ImageMean, ImageMedian, circle, 1, mirrored)
dump_window (WindowHandle, bmp, D:/Halcon/绘制图形/中值滤波1)median_image (ImageMean, ImageMedian, square, 5, mirrored)
dump_window (WindowHandle, bmp, D:/Halcon/绘制图形/中值滤波5)median_image (ImageMean, ImageMedian, square, 7, mirrored)
dump_window (WindowHandle, bmp, D:/Halcon/绘制图形/中值滤波7)* 椒盐噪声分布
* 参数一、二生成噪声的宽度和高度
sp_distribution (5, 5, Distribution)
* 生成的随机噪声添加到图像中
add_noise_distribution (ImageMedian, ImageNoise1, Distribution)
dump_window (WindowHandle, bmp, D:/Halcon/绘制图形/椒盐噪声)参考文章median_image 2、将彩图转化为灰度图
read_image (Image, patras)
*将彩色图像转成灰色图像
rgb1_to_gray (Image, GrayImage)dev_display (GrayImage)* 将RGB彩色图像分解为单独的通道红色、绿色、蓝色
decompose3 (Image, R, G, B)* 将RGB彩色图像的红、绿、蓝通道合并为灰度图像
rgb3_to_gray (R, G, B, ImageGray)dev_display (ImageGray)3、全阈值分割 threshold二值化
* 获取当前活动窗口的句柄(handle)
dev_get_window (WindowHandle)
read_image (Image, pellets.png)* 全局阈值分割适用于环境稳定目标与背景存在明显的灰度差的情况
* 参数一、二输入图像和输出区域
* 参数三、四阈值上限和下限
threshold (Image, Region, 128, 255)* connection 连通性对区域进行链接操作
* 参数一输入的二值化或分割后的图像区域。
* 参数二输出链接
connection (Region, Connection)* select_shape 根据形状的特征选择目标区域
* 参数一输入图像链接或区域
* 参数二输出的选择后的区域
* 参数三选择区域的特征area表示区域的面积
* 参数四多个条件的逻辑关系and表示满足所有条件的区域
* 参数五、六表示选择面积的最大值和最小值
select_shape (Connection, SelectedRegions, area, and, 550, 99999)* erosion_circle 对选定的区域进行圆形腐蚀操作断开链接区域
* 参数一输入选定区域
* 参数二输出腐蚀后的区域
* 参数三腐蚀半径大小
erosion_circle (SelectedRegions, RegionErosion, 7.5)* connection 连通性
connection (RegionErosion, ConnectedRegions2)* 膨胀对每个连通域做圆形膨胀操作还原轮廓大小目的是为了绘制边缘(半径越大膨胀越明显)
dilation_circle (ConnectedRegions2, RegionDilation, 7.5)* 设置绘制操作margin 参数表示设置绘图模式为绘制边缘。
dev_set_draw (margin)dev_display (Image)
dev_display (RegionDilation)* area_center 用于计算给定区域的面积以及重心的位置
* 参数一要计算属性的输入区域
* 参数二表示计算得到的区域的面积
* 参数三、四计算得到的区域中心的行和列坐标
area_center (RegionDilation, Area, Row, Column)* gen_cross_contour_xld 生成一个由两条相互垂直的线段组成的轮廓形成一个十字形状。
gen_cross_contour_xld (Cross, Row, Column, 15, 0.785398)* count_obj 计数器出现一次 RegionDilation出现一次加的值在Number
count_obj (RegionDilation, Number)* 设置绘图颜色
dev_set_color(green)
* 设置显示字体属性
* 参数一句柄
* 参数二字体大小
* 参数三mono 表示选择单色字体
* 参数四表示字体是否加粗
* 参数五表示是否设置字体倾斜
set_display_font (WindowHandle, 16, mono, true, false)* 设置文本放的位置
set_tposition (WindowHandle,10,240)
* 设置文本的内容
write_string (WindowHandle, 数量Number)参考文章select_shape 4、局部阈值分割
read_image (Image, clip)
* 全自动阈值分割主要原理是两个波峰图像的自动阈值分割
* 参数一输入的灰度图像
* 参数三 max_separability(最大限度的可分型) 和 smooth_histo(直方图平滑)
* 参数四dark表示目标为暗色物体
* 参数五输出的阈值
binary_threshold (Image, Region, max_separability, dark, UsedThreshold)* 计算图像的平均值图像(可以通过对图像中每个像素周围的邻域进行像素值的平均来生成一个平均值图像。)
mean_image (Image, ImageMean, 7, 7)* 根据图像的局部特性和平均值图像进行动态阈值分割可以根据图像的不同区域自适应地选择阈值进行分割。
* 参数一输入的图像
* 参数二平均值图像
* 参数三输出的动态阈值分割的结果区域
* 参数四指定斑点的大小用于控制动态阈值计算的斑点尺寸
* 参数五light表示目标为亮色物体目标像素灰度值较大
* dyn_threshold (Image, ImageMean, RegionDynThresh, 5, light)* 根据图像的局部方差和均值进行阈值分割。它可以根据图像局部区域的方差和均值来选择合适的阈值从而实现图像的分割。主要是用来区分目标和背景
* 参数一输入的平均值图像
* 参数二输出的阈值分割结果区域
* 参数三、四指定邻域的宽高
* 参数五指定方差缩放因子用于调整方差的权重
* 参数六dark 表示目标为灰色物体
var_threshold (ImageMean, Region1, 15, 15, 0.2, 2, dark)* 自动计算图像的阈值并将图像分割成不同的区域
* 2代表sigma数值越大代表提取区域越小
auto_threshold (ImageMean, Regions, 2)* 快速全局阈值分割类似于threshold速度更快
* 参数三、四指定阈值的下限和上限
* 参数五指定阈值类型
fast_threshold (ImageMean, Region2, 128, 255, 20)* 基于阈值的分水岭算法对图像进行分割
* 参数三指定阈值
watersheds_threshold (ImageMean, Basins, 10)参考文章dyn_threshold 5、blob斑点检测案例
read_image (Image, progres)
get_image_size(Image,Width,Height)
dev_open_window(0,0,Width,Height,black,WindowHandle)
dev_display(Image)
dev_set_color (green)
dev_set_draw (margin)* 创建旋转矩形
gen_rectangle2 (ROI_0, 308, 212, rad(4.15129), 124, 36)
* 裁剪
reduce_domain (Image, ROI_0, ImageReduced)
* 阈值分割
threshold (ImageReduced, Region, 0, 160)* 连接区域
connection (Region, ConnectedRegions)
* 根据面积筛选
select_shape (ConnectedRegions, SelectedRegions, area, and, 20, 30)* 计算选定区域的椭圆轴参数
* 参数二椭圆的半长轴长度。
* 参数三椭圆的半短轴长度。
* 参数四椭圆的旋转角度。
elliptic_axis (SelectedRegions, Ra, Rb, Phi)* 获取区域面积与中心点
area_center (SelectedRegions, Area, Row, Column)dev_display (Image)
dev_set_color (red)
dev_display (SelectedRegions)6、形态学调整
* 关闭窗口更新
dev_update_window (off)
* 清空显示窗口内容
dev_clear_window ()
dev_open_window (0, 0, 730, 520, black, WindowID)
read_image (Bond, die/die_03.png)
dev_display (Bond)
set_display_font (WindowID, 16, mono, true, false)* 在窗口中显示消息
* 参数二表示消息的颜色为黑色
* 参数三显示消息时是否等待用户确认
disp_continue_message (WindowID, black, true)
* 停止程序执行
stop ()* 用于进行图像阈值分割
threshold (Bond, Bright, 100, 255)
* 将二值化区域转化成一个带方向的矩形。主要的用途是定位将来也可以做orc识别
shape_trans (Bright, Die, rectangle2)
* 设置字体颜色
dev_set_color (green)
* 设置绘制线条的宽度
dev_set_line_width(3)
* 设置显示设备的绘制模式边缘
dev_set_draw(margin)
dev_display (Die)
disp_continue_message (WindowID, black, true)
stop ()* 裁剪图像
reduce_domain (Bond, Die, DieGray)
* 对输入图像进行阈值处理
threshold (DieGray, Wries, 0, 50)
* 填充具有给定形状特征的区域中的空限定条件是面积在1~100的孔进行填充。
fill_up_shape (Wries, WiresFilled, area, 1, 100)
dev_display (Bond)
dev_set_draw (fill)
dev_set_color (red)
dev_display (WiresFilled)
disp_continue_message (WindowID, black, true)
stop ()* 对对象进行圆形开运算 先腐蚀后膨胀
* 平滑和连接对象边界去除小的噪点或连接断裂的部分。
* 参数三开运算所使用的圆形结构元素的半径大小。
opening_circle (WiresFilled, Balls, 15)
dev_set_color (green)
dev_display (Balls)
disp_continue_message (WindowID, black, true)
stop ()* 把整个区域断开
* connection (Balls, ConnectedRegions)
* select_shape (ConnectedRegions, SelectedRegions, area, and, 0, 2000)
* count_obj(SelectedRegions, Number)
* area_center(SelectedRegions, Area, Row, Column)
* for i:1 to |Number| by 1
* a:sqrt(Area/3.14)
* b:Row[i]20
* c:Column[i]-10
* dev_set_color (red)
* set_tposition (WindowID, b, c)
* write_string (WindowID, 半径a)
* endfor* 把整个区域断开
connection (Balls, ConnectedRegions)
* 选择圆的相似度在0.9~1之间
select_shape (ConnectedRegions, SelectedRegions, circularity, and, 0.9, 1)
* 如果不进行 connection 断开则是整个区域没办法使用
* connection (SelectedRegions, ConnectedRegions1)* 对输入的区域进行排序操作
* 参数三指定排序的依据first_point 按照区域的第一个点的坐标进行排序。
* 参数四是否采用升序排序
* 参数五排序的方式这里是按照列的顺序进行排序。
sort_region (SelectedRegions, SortedRegions, first_point, true, column)
dev_display (Bond)
dev_display (SortedRegions)* 找到包围输入区域的最小圆
* 参数二、三最小圆的圆心的XY坐标。
* 参数四最小圆的半径
smallest_circle (SortedRegions, Row, Column, Radius)* 准备元组取出来Radius
NumBalls:|Radius|
* 直径
Diameter:2*Radius
* 最小值
minDiameter : min(Diameter)
* 最大值
maxDiameter : max(Diameter)
* 平均值
meanDiameter : mean(Diameter)dev_display (Bond)
disp_circle (WindowID, Row, Column, Radius)
dev_set_color (white)
for i:1 to NumBalls by 1* 1.输入窗口句柄 2.输入要打印的信息 3.参考的位置 45.打印的位置 6.颜色 7.边框disp_message (WindowID, 直径Diameter, window, Row, Column, black, true)
endfor
dev_set_color (green)
dev_update_window (on)
disp_continue_message (WindowID, black, true)
stop ()7、开运算、闭运算
* read_image (Image, claudia)
* 转灰度
* rgb1_to_gray (Image, GrayImage)
* 设置阈值
* threshold (GrayImage, Regions, 32, 113)
* 阈值分割
* connection (Regions, ConnectedRegions)
* 选择区域
* select_shape (ConnectedRegions, SelectedRegions, area, and, 20377.7, 83996)
* area_center (SelectedRegions1, Area, Row, Column)* 形态学操作 圆形膨胀
* dilation_circle (SelectedRegions1, RegionDilation, 3.5)
* dilation_rectangle1* 形态学操作 腐蚀
* erosion_circle (RegionDilation, RegionErosion, 3.5)********** 开运算先腐蚀后膨胀
* read_image (Image, pellets)
* 全局阈值分割
* threshold (Image, Regions, 106, 255)
* connection (Regions, ConnectedRegions1)
* select_shape(ConnectedRegions1,SelecteRegions,area,and,500,9999)* 腐蚀
* erosion_circle (SelecteRegions, fushi, 7.5)
* connection 分割区域将所关联的像素区域连成一组
* connection (fushi, ConnectedRegions)* 膨胀
* dilation_circle (ConnectedRegions, pengzhang, 7.5)
* dev_display (Image)
* dev_display (pengzhang)********** 闭运算先膨胀后腐蚀
* 结构元素半径:边长越大膨胀或腐蚀越明显
* 增加像素使用膨胀或闭运算
* 减少像素使用腐蚀或开运算
read_image (Image, pellets)
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, area, and, 150, 99999)
dilation_circle (SelectedRegions, pengzhang, 3.5)
connection (pengzhang, ConnectedRegions1)
erosion_circle (ConnectedRegions1, fushi, 3.5)
dev_display (Image)
dev_display(fushi)参考文章数学形态学运算——腐蚀、膨胀、开运算、闭运算