add_metrology_object_generic 添加测量模型对象。找两条直线,并计算两条线的夹角和两个线的总长度,转换成毫米单位

*添加测量模型对象
*将测量对象添加到测量模型中
*算子参数:
*    MeasureHandle:输入测量模型的句柄;
*    Shape:输入要测量对象的类型;默认值:‘circle’,参考值:‘circle’圆,‘ellipse’椭圆,‘line’线,‘rectangle2’矩形,长方形;
*    ShapeParam:要添加的测量对象的参数。
*    MeasureLength1:输入垂直于边界的测量区域的一半长度(卡尺长度);默认值:20,参考值:10,20,30;最小增量:1.0;建议增量:10.0
*    MeasureLength2:输入与边界相切的测量区域的一半长度(卡尺宽度);默认值:5,参考值:3,5,10;最小增量:1.0;建议增量:10.0
*    MeasureSigma:输入用于平滑的高斯函数的sigma;默认值:1,参考值:0.4,0.6,0.8,1.0,1.5,2.0,3.0,4.0,5.0,7.0,10.0;最小增量:0.01;建议增量:0.1;限制:(0.4 <= MeasureSigma)&&(MeasureSigma <= 100)
*    MeasureThreshold:输入测量阈值/最小边缘幅度;默认值:30,参考值:5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0;最小增量:0.5;建议增量:2;
*    GenParamName:输入参数名称;参考: ‘distance_threshold’, ‘end_phi’, ‘instances_outside_measure_regions’, ‘max_num_iterations’, ‘measure_distance’, ‘measure_interpolation’, ‘measure_select’, ‘measure_transition’, ‘min_score’, ‘num_instances’, ‘num_measures’, ‘point_order’, ‘rand_seed’, ‘start_phi’;
*    GenParamValue:输入参数值;参考:1, 2, 3, 4, 5, 10, 20, ‘all’, ‘true’, ‘false’, ‘first’, ‘last’, ‘positive’, ‘negative’, ‘uniform’, ‘nearest_neighbor’, ‘bilinear’, ‘bicubic’;
*    Index:输出创建测量对象的索引值;


add_metrology_object_generic (MetrologyHandle, 'line', LineParam, 300, 5, 1, 30, [], [], Index)

示例 找两条直线,并计算两条线的夹角和两个线的总长度,转换成毫米单位

效果

代码

dev_get_window (WindowHandle)
*定义一个像素代表的实际物理尺寸
hv_mm_Per_Pixel := 0.014128
*读取图像
read_image (Image, 'E:/机器视觉学习/海康视觉平台/二期VM视觉学习/二期VM视觉学习/机器视觉程序/侧视相机检查程序Update-0325/侧视相机检查程序/20240324165707.bmp')

*获取图像大小
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
rgb1_to_gray (Image, GrayImage)

*生成ROI区域
draw_rectangle1 (WindowHandle, rectangleRow, rectangleColumn, rectangleRow2, rectangleColumn2)
*生成矩形区域
gen_rectangle1 (Rectangle, rectangleRow, rectangleColumn, rectangleRow2, rectangleColumn2)
*缩小图像的域(ROI) Image
reduce_domain (GrayImage, Rectangle, ImageReduced)
*做模板,提取模板轮廓
create_scaled_shape_model (ImageReduced, 'auto', rad(0), rad(360), 'auto', 0.3, 1.1, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)

*根据模板去匹配(查找)图像
find_scaled_shape_model (ImageReduced, ModelID, rad(0), rad(360), 0.9, 1.1, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle1, Scale, Score)
*显示匹配(查找)到的图像
dev_display_shape_matching_results (ModelID, 'red', Row3, Column3, Angle1, 1, 1, 0)
*设置显示的字体
set_display_font (WindowHandle, 26, 'mono', 'true', 'false')
disp_message (WindowHandle, '匹配坐标:'+Row3+','+Column3, 'window', 20, 20, 'red', 'true')
*显示十字中心
disp_cross (WindowHandle, Row3, Column3, 50, Angle1)

*方式一绘制测量位置直线
*draw_line (WindowHandle, Row1, Column1, Row2, Column2)
 
*方式二 固定测量位置直线坐标
*919
Row1 := Row3 + 200
*187
Column1 := 187 
*显示十字中心
disp_cross (WindowHandle, Row3, Column1, 50, Angle1)
Row2 := Row1
Column2 := Column3-100
disp_cross (WindowHandle, Row2, Column2, 50, Angle1)
 
*根据绘制的直线坐标来构建参数对象
LineParam := [Row1, Column1,Row2, Column2]

*行1:846.5,列1:1710.5
*行2:1068.5,列2:1992.5
*RowR1 := Row1+10.5
*-100.5
RowR1 := Row1+15
*Column2
ColumnR1 := Column2 + 100
disp_cross (WindowHandle, RowR1, ColumnR1, 50, Angle1+10)
RowR2 := RowR1
ColumnR2 := ColumnR1 + 200
disp_cross (WindowHandle, RowR2, ColumnR2, 50, Angle1+10)
 
*根据绘制的直线坐标来构建参数对象
LineParam2 := [RowR1, ColumnR1,RowR2, ColumnR2]
 
*绘制测量位置直线 时把直线的坐标写入文本文件,以变查看。这样就可以知道绘制的坐标。
*实际测量时是不可能让人,手动的去绘制每张要测量的图片的
*open_file ('LineParam.txt', 'output', FileHandle)
fileStr := '绘制线的坐标Row1:'+Row1+',Column1:'+Column1+',Row2:'+Row2+',Column2:'+Column2
*fwrite_string (FileHandle, fileStr)
*设置显示的字体
set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
disp_message (WindowHandle, fileStr, 'window', 0, 0, 'red', 'true')
 
*找左边直线
*创建计算测量句柄
create_metrology_model (MetrologyHandle)
 
*句柄关联测试的图坐标位置
*设置测量对象图像的大小
*参数:
*    MeasureHandle:输入测量模型的句柄;
*    Width:输出图像宽;
*    Height:输出图像高;
set_metrology_model_image_size (MetrologyHandle, Width, Height)
 
*添加测量模型对象(此处是线)
*将测量对象添加到测量模型中
*算子参数:
*    MeasureHandle:输入测量模型的句柄;
*    Shape:输入要测量对象的类型;默认值:‘circle’,参考值:‘circle’圆,‘ellipse’椭圆,‘line’线,‘rectangle2’矩形,长方形;
*    ShapeParam:要添加的测量对象的参数。
*    MeasureLength1:输入垂直于边界的测量区域的一半长度(卡尺长度);默认值:20,参考值:10,20,30;最小增量:1.0;建议增量:10.0
*    MeasureLength2:输入与边界相切的测量区域的一半长度(卡尺宽度);默认值:5,参考值:3,5,10;最小增量:1.0;建议增量:10.0
*    MeasureSigma:输入用于平滑的高斯函数的sigma;默认值:1,参考值:0.4,0.6,0.8,1.0,1.5,2.0,3.0,4.0,5.0,7.0,10.0;最小增量:0.01;建议增量:0.1;限制:(0.4 <= MeasureSigma)&&(MeasureSigma <= 100)
*    MeasureThreshold:输入测量阈值/最小边缘幅度;默认值:30,参考值:5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0;最小增量:0.5;建议增量:2;
*    GenParamName:输入参数名称;参考: ‘distance_threshold’, ‘end_phi’, ‘instances_outside_measure_regions’, ‘max_num_iterations’, ‘measure_distance’, ‘measure_interpolation’, ‘measure_select’, ‘measure_transition’, ‘min_score’, ‘num_instances’, ‘num_measures’, ‘point_order’, ‘rand_seed’, ‘start_phi’;
*    GenParamValue:输入参数值;参考:1, 2, 3, 4, 5, 10, 20, ‘all’, ‘true’, ‘false’, ‘first’, ‘last’, ‘positive’, ‘negative’, ‘uniform’, ‘nearest_neighbor’, ‘bilinear’, ‘bicubic’;
*    Index:输出创建测量对象的索引值;
add_metrology_object_generic (MetrologyHandle, 'line', LineParam, 300, 5, 1, 30, [], [], Index)
 
*为测量模型的测量对象设置参数 set_metrology_object_param
*根据需求设置测量的参数
*设置找线的方式(positive,negative,all)从黑到白,从白到黑
*算子参数:
*    MeasureHandle:输入测量模型的句柄;
*    Index:指定测量对象,为all时所有计量对象的参数都被设置(‘all’);
*    GenParamName:输入参数名称;默认:‘num_instances’,参考:
*            'measure_length1':区域,垂直于边界的测量区域的一半长度
*            'measure_length2':区域,相切于边界的测量区域的一半长度
*            'measure_distance':区域,两个测量区域中心之间的距离
*            'num_measures':区域,测量区域数
*            'measure_sigma':测量,用于平滑的高斯函数的 Sigma
*            'measure_threshold':测量,最小边缘幅度阈值
*            'measure_select':测量,边缘端点的选择('last'、'first')
*            'measure_transition':测量,方向('all'、'negative'从白到黑、 'positive'从黑到白)
*            'measure_interpolation':测量,插值类型
*            'min_score':拟合,最小分数
*            'num_instances':拟合,成功拟合实例的最大数量
*            'distance_threshold':拟合,距离阈值 
 
*set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'all')
set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'positive')
 
*预期测量的区域个数。 拟合,成功拟合实例的最大数量
*set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 12)
set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 1)
 
*拟合数
set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 6)
 
*高斯平滑系数,值越大,唯一的边缘越清晰
set_metrology_object_param (MetrologyHandle, 'all', 'measure_sigma', 5)
 
*区域,垂直与边界的测量区域的一半长度(卡尺长度)
*set_metrology_object_param (MetrologyHandle, 'all', 'measure_length1', 80)
 
*区域,相切于边缘的测量区域的一半长度(卡尺宽度)
*set_metrology_object_param(MetrologyHandle, 'all', 'measure_length2', 10)
 
*最小边缘幅度越大,要求找到的边缘越锐利(灰度变换明显),反而不容易找到边缘
set_metrology_object_param (MetrologyHandle, 'all', 'measure_threshold', 20)
 
*测量双立方插入值,区别与bilinear双线性
set_metrology_object_param (MetrologyHandle, 'all', 'measure_interpolation', 'bicubic')
 
*取值(测量选择) all,first,best,last
set_metrology_object_param (MetrologyHandle, 'all', 'measure_select', 'all')
 
*设置最小分数0.7
set_metrology_object_param (MetrologyHandle, 'all', 'min_score', 0.7)
 
*开始找边缘
apply_metrology_model (Image, MetrologyHandle)
 
*获取测量区域找到的边缘坐标集合
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
 
*把找到的点通过十字叉来显示
gen_cross_contour_xld (Cross, Row, Column, 6, 0.785398)
 
*得到线的起点坐标并显示出来
*得到计量模型的测量结果
get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter)
 
*获取计量模型的计量结果轮廓
*创建一个变化模型用于图像比较
*在图像坐标中执行的测量结果轮廓。
*参数说明
*Contour (输出参数)给定计量对象的结果轮廓。
*MetrologyHandle (输入参数)计量模型的句柄
*Index (输入参数)计量对象的索引。建议值:'all', 0,1,2
*Instance 计量对象的实例。建议值:'all', 0,1,2
*Resolution 相邻轮廓点之间的距离 默认值: 1.5
get_metrology_object_result_contour (Contour, MetrologyHandle, 0, 'all', 1.5)
*取第一条边放到ObjectSelected变量中
*函数可以用于根据对象的特征,从一组对象中选择满足条件的对象。
*参数说明
*Objects 输入对象
*ObjectSelected (输出参数)选定的对象
*Index (输入参数)待选择对象的索引
select_obj (Contour, ObjectSelected, 1)

*显示线的轮廓
ContourLen := |Contour|
dev_set_color ('red')
dev_set_line_width(3)
dev_display (Contour)
*获取轮廓对象长度
length_xld (ObjectSelected, Length)
*设置显示的字体
set_display_font (WindowHandle, 26, 'mono', 'true', 'false')
disp_message (WindowHandle, '线的轮廓长度:'+Length, 'window', 40, 0, 'green', 'true')

*取第二条边放到ObjectSelected1变量中
select_obj (Contour, ObjectSelected1, 2)
*get_region_polygon (ObjectSelected1, 5, Rows, Columns)

*设置显示的字体
set_display_font (WindowHandle, 26, 'mono', 'true', 'false')

*获取轮廓对象长度
length_xld (ObjectSelected1, Length1)

disp_message (WindowHandle, '线的轮廓长度1:'+Length1, 'window', 120, 0, 'green', 'true')

*测量两个轮廓之间的距离
*//参数1:第一个轮廓
*//参数2:第二个输入轮廓
*//参数3:距离计算模式
*'point_to_point'     确定轮廓线之间的最小和最大距离
*'point_to_segment'   轮廓线段之间的实际最小距离
*//参数4:返回两个轮廓之间的最小距离
*//参数5:两个轮廓之间的最大距离
*distance_cc (ObjectSelected, ObjectSelected1, 'point_to_point', DistanceMin, DistanceMax)

*disp_message (WindowHandle, 'length:'+DistanceMin, 'window', 200, 0, 'green', 'true')


********************************************
*找左边直线
*创建计算测量句柄
create_metrology_model (MetrologyHandleRight)
 
*句柄关联测试的图坐标位置
*设置测量对象图像的大小
*参数:
*    MeasureHandle:输入测量模型的句柄;
*    Width:输入图像宽;
*    Height:输入图像高;
set_metrology_model_image_size (MetrologyHandleRight, Width, Height)
 
*添加测量模型对象(此处是线)
*将测量对象添加到测量模型中
*算子参数:
*    MeasureHandle:输入测量模型的句柄;
*    Shape:输入要测量对象的类型;默认值:‘circle’,参考值:‘circle’圆,‘ellipse’椭圆,‘line’线,‘rectangle2’矩形,长方形;
*    ShapeParam:要添加的测量对象的参数。
*    MeasureLength1:输入垂直于边界的测量区域的一半长度(卡尺长度);默认值:20,参考值:10,20,30;最小增量:1.0;建议增量:10.0
*    MeasureLength2:输入与边界相切的测量区域的一半长度(卡尺宽度);默认值:5,参考值:3,5,10;最小增量:1.0;建议增量:10.0
*    MeasureSigma:输入用于平滑的高斯函数的sigma;默认值:1,参考值:0.4,0.6,0.8,1.0,1.5,2.0,3.0,4.0,5.0,7.0,10.0;最小增量:0.01;建议增量:0.1;限制:(0.4 <= MeasureSigma)&&(MeasureSigma <= 100)
*    MeasureThreshold:输入测量阈值/最小边缘幅度;默认值:30,参考值:5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0;最小增量:0.5;建议增量:2;
*    GenParamName:输入参数名称;参考: ‘distance_threshold’, ‘end_phi’, ‘instances_outside_measure_regions’, ‘max_num_iterations’, ‘measure_distance’, ‘measure_interpolation’, ‘measure_select’, ‘measure_transition’, ‘min_score’, ‘num_instances’, ‘num_measures’, ‘point_order’, ‘rand_seed’, ‘start_phi’;
*    GenParamValue:输入参数值;参考:1, 2, 3, 4, 5, 10, 20, ‘all’, ‘true’, ‘false’, ‘first’, ‘last’, ‘positive’, ‘negative’, ‘uniform’, ‘nearest_neighbor’, ‘bilinear’, ‘bicubic’;
*    Index:输出创建测量对象的索引值;
add_metrology_object_generic (MetrologyHandleRight, 'line', LineParam2, 50, 5, 1, 30, [], [], Index)
 
*为测量模型的测量对象设置参数 set_metrology_object_param
*根据需求设置测量的参数
*设置找线的方式(positive,negative,all)从黑到白,从白到黑
*算子参数:
*    MeasureHandle:输入测量模型的句柄;
*    Index:指定测量对象,为all时所有计量对象的参数都被设置(‘all’);
*    GenParamName:输入参数名称;默认:‘num_instances’,参考:
*            'measure_length1':区域,垂直于边界的测量区域的一半长度
*            'measure_length2':区域,相切于边界的测量区域的一半长度
*            'measure_distance':区域,两个测量区域中心之间的距离
*            'num_measures':区域,测量区域数
*            'measure_sigma':测量,用于平滑的高斯函数的 Sigma
*            'measure_threshold':测量,最小边缘幅度阈值
*            'measure_select':测量,边缘端点的选择('last'、'first')
*            'measure_transition':测量,方向('all'、'negative'、 'positive')
*            'measure_interpolation':测量,插值类型
*            'min_score':拟合,最小分数
*            'num_instances':拟合,成功拟合实例的最大数量
*            'distance_threshold':拟合,距离阈值 
 
*set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_transition', 'all')
set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_transition', 'positive')
 
*预期测量的区域个数
set_metrology_object_param (MetrologyHandleRight, 'all', 'num_instances', 1)
 
*拟合数
set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 6)
 
*高斯平滑系数,值越大,唯一的边缘越清晰
set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_sigma', 5)
 
*区域,垂直与边界的测量区域的一半长度(卡尺长度)
*set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_length1', 80)
 
*区域,相切于边缘的测量区域的一半长度(卡尺宽度)
*set_metrology_object_param(MetrologyHandleRight, 'all', 'measure_length2', 10)
 
*最小边缘幅度越大,要求找到的边缘越锐利(灰度变换明显),反而不容易找到边缘
set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_threshold', 20)
 
*测量双立方插入值,区别与bilinear双线性
set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_interpolation', 'bicubic')
 
*取值 all,first,best,last
set_metrology_object_param (MetrologyHandleRight, 'all', 'measure_select', 'all')
 
*设置最小分数0.7
set_metrology_object_param (MetrologyHandleRight, 'all', 'min_score', 0.7)
 
*开始找边缘
apply_metrology_model (Image, MetrologyHandleRight)
 
*获取测量区域找到的边缘坐标集合
get_metrology_object_measures (ContoursRight, MetrologyHandleRight, 'all', 'all', RowRight, ColumnRight)
 
*把找到的点通过十字叉来显示
gen_cross_contour_xld (CrossRight, RowRight, ColumnRight, 6, 0.785398)
 
*得到线的起点坐标并显示出来
get_metrology_object_result (MetrologyHandleRight, 0, 'all', 'result_type', 'all_param', Parameter)
 
*获取计量模型的计量结果轮廓
get_metrology_object_result_contour (ContourRight, MetrologyHandleRight, 0, 'all', 1.5)

*显示线的轮廓
dev_set_color ('red')
dev_set_line_width(3)
dev_display (ContourRight)

*清除显示
*dev_clear_window ()

lastRowIndex := |Row|-1
lastColumIndex := |Column|-1
lastRowIndexRight := |RowRight|-1
lastColumIndexRight := |ColumnRight|-1
*显示第一条线
LineWidth := 3
LineHeight := 2
* 使用min_vector获取数组中的最小值
*tuple_max(Row,Max)
*2、求数组元素的最小值
tuple_min(Row,RowMin)
* 生成直线
*生成直线区域
*参数1:起点y坐标
*参数2:起点x坐标
*参数3:终点y坐标
*参数4:终点x坐标
*draw_line (WindowHandle, Row[0], Column[0], Row[lastRowIndex], Column[lastColumIndex])
*gen_rectangle1 (Rectangle, Row[0], Column[0], Row[lastRowIndex], Column[lastColumIndex])
gen_region_line (RegionLines1, RowMin, Column[0], Row[lastRowIndex], Column[lastColumIndex])

dev_set_color ('green')
dev_set_line_width(3)
dev_display(RegionLines1)
* 生成直线2
gen_region_line (RegionLines2, RowRight[0], ColumnRight[0], RowRight[lastRowIndexRight], ColumnRight[lastColumIndexRight])
dev_display(RegionLines2)

*计算两段线的夹角
*Row, Column
*参数
*RowA1 (输入参数)第一条直线第一点的行坐标。
*ColumnA1 (输入参数)第一条直线第一个点的列坐标。
*RowA2 (输入参数)第一条直线第二点的行坐标
*ColumnA2(输入参数)第一条直线第二个点的列坐标
*RowB1 (输入参数)第二条直线第一个点的行坐标。
*ColumnB1 (输入参数)第二条直线第一个点的列坐标。
*RowB2 (输入参数)第二条直线第二点的行坐标。
*ColumnB2(输入参数)第二条直线第二点的列坐标。
*Angle (输出参数)线条间的夹角[弧度]。
angle_ll (Row[0], Column[0], Row[lastRowIndex], Column[lastColumIndex], RowRight[0], ColumnRight[0], RowRight[lastRowIndexRight], ColumnRight[lastColumIndexRight], Angle)

*计算总长度
lastRowLen := |Row|
lastColumnLen := |Column|
*两点之间的距离算子
*Row1 点1的行坐标
*Column1 点1的列坐标
*Row2 点2的行坐标
*Column2 点2的列坐标
*Distance 输出的两点之间的距离
distance_pp (RowMin, Column[0], Row[lastRowLen-1], Column[lastColumnLen-1], Distance)

distance_pp (RowRight[0], ColumnRight[0], RowRight[lastRowIndexRight], ColumnRight[lastColumIndexRight], Distance2)
*Dis := Distance + 98 + Distance2
Dis := Distance + 110 + Distance2
disMM := Dis * hv_mm_Per_Pixel
disp_message (WindowHandle, '线的轮廓距离:'+Dis+'px, '+disMM+' mm,角度:'+Angle, 'window', 80, 0, 'green', 'true')
 *获取直线角度,计算直线的方向
*前两个是线的起点XY坐标,
*第三,四个是线的终点XY坐标,
*Phi (输出参数)返回线的方向
*line_orientation (Row[0], Column[0], Row[lastRowLen-1], Column[lastColumnLen-1], Phi)
*disp_message (WindowHandle, '线的轮廓方向:'+Phi+',count:'+lastRowLen, 'window', 160, 0, 'green', 'true')
*-0.00942175 NG 向下
*-0.125872 正常 count:319
*-0.125347 正常 count:321
*-0.278258 NG 向上 count:322
*-0.133453 NG 向前 count:226
*-0.0609025 NG 向后 count:317
*清除句柄
clear_metrology_model (MetrologyHandle)
*清除句柄
clear_metrology_model (MetrologyHandleRight)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/774612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

淘宝扭蛋机小程序:打造新的扭蛋体验

扭蛋机行业近年来发展非常迅速&#xff0c;呈现出了明显的增长势头&#xff0c;深受年轻消费者的青睐。当下在消费市场中&#xff0c;年轻人占据了很大的份额&#xff0c;这也推动了扭蛋机市场的发展。如今&#xff0c;扭蛋机也正在向多个方向发展&#xff0c;不再局限于线下扭…

如何利用代理IP打造热门文章

作为内容创作者&#xff0c;我们都知道&#xff0c;有时候地理限制和访问障碍可能会成为我们获取新鲜素材和优质信息的障碍。使用代理IP&#xff0c;正是突破这些限制的好方法&#xff01; 1. 无缝获取全球视野 如果你还在苦恼看不到其他地区的热点文章&#xff0c;你可以尝试…

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代&#xff0c;信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及&#xff0c;企业面临着越来越多的信息安全威胁和挑战&#xff0c;如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁&#xff0c;企业…

docker集群部署主从mysql

搭建一个mysql集群&#xff0c;1主2从&#xff0c;使用docker容器 一、创建docker的mysql镜像 下次补上&#xff0c;因为现在很多网络不能直接pull&#xff0c;操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架&#xff0c;它提供了一种新的开发方式和更好的性能体验&#xff0c;帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是&#xff1a;Astro这个是一个网站生成器&#xff0c;可以直接…

生成式人工智能如何改变软件开发:助手还是取代者?

生成式人工智能如何改变软件开发&#xff1a;助手还是取代者&#xff1f; 生成式人工智能&#xff08;AIGC&#xff09;正在引领软件开发领域的技术变革。从代码生成、错误检测到自动化测试&#xff0c;AI工具在提高开发效率的同时&#xff0c;也引发了对开发者职业前景的讨论…

标贝语音识别在智能会议系统的应用案例

语音识别是指将语音信号转换成文本或者其他数字信号形式的过程&#xff0c;随着人工智能在人们日常工作生活中的普及&#xff0c;语音识别技术也被广泛的应用在智能家居、智能会议、智能客服、智能驾驶等领域&#xff0c;以语音识别技术在智能会议系统中的应用为例&#xff0c;…

【读点论文】基于二维伽马函数的光照不均匀图像自适应校正算法

基于二维伽马函数的光照不均匀图像自适应校正算法 摘 要:提出了一种基于二维伽马函数的光照不均匀图像自适应校正算法.利用多尺度高斯函数提取出场景的光照分量,然后构造了一种二维伽马函数,并利用光照分量的分布特性调整二维伽马函数的参数,降低光照过强区域图像的亮度值,提高…

服务器U盘安装Centos 7时提示Warning:/dev/root does not exist

这是没有找到正确的镜像路径导致的&#xff0c;我们可以在命令行输入ls /dev看一下有哪些盘符 像图中红色圈起来的就是我插入U盘的盘符&#xff0c;大家的输几盘可能做了多个逻辑盘&#xff0c;这种情况下就可以先将U盘拔掉再ls /dev看一下和刚才相比少了那两个盘符&#xff0c…

Redis高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过…

空调计费系统是什么,你知道吗

空调计费系统是一种通过对使用空调的时间和能源消耗进行监测和计量来进行费用计算的系统。它广泛应用于各种场所&#xff0c;如家庭、办公室、商场等&#xff0c;为用户提供了方便、准确的能源使用管理和费用控制。 可实现功能 智能计费&#xff1a;中央空调分户计费系统通过智…

光电液位传感器在宠物洗澡机的应用

光电液位传感器在宠物洗澡机中的应用&#xff0c;为洗澡机的智能化管理提供了重要支持和保障。这种先进的传感技术不仅提升了设备的操作便捷性&#xff0c;还大幅度提高了洗澡过程的安全性和效率。 宠物洗澡机作为宠物护理的重要设备&#xff0c;其水位的控制至关重要。光电液…

SD16S1Y 符合GB2312标准16X16点阵汉字库芯片IC

一般概述 SD16S1Y是一款内含16x16点阵的汉字库芯片&#xff0c;支持GB2312国标简体汉字(含有国家信标委 合法授权)、ASCII字符。排列格式为竖置横排。用户通过字符内码&#xff0c;利用本手册提供的方法计算出 该字符点阵在芯片中的地址&#xff0c;可从该地址连续读出字…

STM32/GD32驱动步进电机芯片TM2160

文章目录 官方概要简单介绍整体架构流程 官方概要 TMC2160是一款带SPI接口的大功率步进电机驱动IC。它具有业界最先进的步进电机驱动器&#xff0c;具有简单的步进/方向接口。采用外部晶体管&#xff0c;可实现高动态、高转矩驱动。基于TRINAMICs先进的spreadCycle和stealthCh…

以太网协议介绍——UDP

注&#xff1a;需要先了解一些以太网的背景知识&#xff0c;方便更好理解UDP协议、 以太网基础知识一 以太网基础知识二 UDP协议 UDP即用户数据报协议&#xff0c;是一种面向无连接的传输层协议&#xff0c;属于 TCP/IP 协议簇的一种。UDP具有消耗资源少、通信效率高等优点&a…

第二届计算机、视觉与智能技术国际会议(ICCVIT 2024)

随着科技的飞速发展&#xff0c;计算机、视觉与智能技术已成为推动现代社会进步的重要力量。为了汇聚全球顶尖专家学者&#xff0c;共同探讨这一领域的最新研究成果和前沿技术&#xff0c;第二届计算机、视觉与智能技术国际会议&#xff08;ICCVIT 2024&#xff09;将于2024年1…

从海上长城到数字防线:视频技术在海域边防现代化中的创新应用

随着全球化和科技发展的加速&#xff0c;海域安全问题日益凸显其重要性。海域边防作为国家安全的第一道防线&#xff0c;其监控和管理面临着诸多挑战。近年来&#xff0c;视频技术的快速发展为海域边防场景提供了新的解决方案&#xff0c;其高效、实时、远程的监控特点极大地提…

【稳定检索/投稿优惠】2024年教育、人文发展与艺术国际会议(EHDA 2024)

2024 International Conference on Education, Humanities Development and Arts 2024年教育、人文发展与艺术国际会议 【会议信息】 会议简称&#xff1a;EHDA 2024 大会时间&#xff1a;点击查看 截稿时间&#xff1a;点击查看 大会地点&#xff1a;中国北京 会议官网&#…

云微客短视频矩阵全域营销,更高效的获客引流方式!

在抖音这样一个拥有海量用户和内容的短视频平台上&#xff0c;单一账号往往难以覆盖我们的客户群体&#xff0c;甚至于每天发布四五条视频&#xff0c;所引发的流量也是微乎其微的。在竞争如此激烈的市场环境中&#xff0c;商家企业无不想方设法追求更高效的获客引流方式&#…

【selenium 】操作元素

操作元素 元素操作鼠标操作键盘操作 元素操作 元素操作示例清空输入框clear()deiver.find_element_by_id(“username”).clear()输入文字send_keys()deiver.find_element_by_id(“username”).send_keys(‘zs’)元素点击 click()deiver.find_element_by_id(“login”).click()…