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.mzph.cn/news/866830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝牙模块功耗优化技术研究

蓝牙模块作为无线通信技术的重要组成部分&#xff0c;在智能家居、可穿戴设备、医疗健康等领域得到了广泛应用。然而&#xff0c;随着设备功能的不断增加和用户对续航能力的日益关注&#xff0c;蓝牙模块的功耗问题逐渐凸显。因此&#xff0c;对蓝牙模块功耗优化技术的研究具有…

154. 寻找旋转排序数组中的最小值 II(困难)

154. 寻找旋转排序数组中的最小值 II 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转&#xff1a;154. 寻找旋转排序数组中的最小值 II 2.详细题解 该题是153. 寻找旋转排序数组中的最小值的进阶题&#xff0c;在153. 寻找旋转排序数组中的最小值…

2024年7月6日 十二生肖 今日运势

小运播报&#xff1a;2024年7月6日&#xff0c;星期六&#xff0c;农历六月初一 &#xff08;甲辰年庚午月辛未日&#xff09;&#xff0c;法定节假日。 红榜生肖&#xff1a;猪、马、兔 需要注意&#xff1a;狗、鼠、牛 喜神方位&#xff1a;西南方 财神方位&#xff1a;正…

【介绍下JSON,JSON是什么?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 💡JSON讲解 💡1. 介绍💡2. JSON的基本规则💡3. JSON中的数…

Linux配置固定ip地址

虚拟机的Linux操作系统&#xff0c;其IP地址是通过DHCP服务获取的 DHCP&#xff1a;动态获取IP地址&#xff0c;即每次重启设备后都会获取一次&#xff0c;可能导致IP地址频繁变更。 一般系统默认的ip地址设置都是自动获取&#xff0c;故每次系统重启后ip地址都可能会不一样&a…

【C语言】typedef 关键字

在C语言中&#xff0c;typedef关键字用于给现有的数据类型起一个新的名字。它在提高代码可读性、简化复杂类型声明、增强可维护性方面非常有用。typedef通常用于定义结构体、指针、函数指针以及其他复杂类型。 基本用法 typedef int MyInt; MyInt x 10;在这个例子中&#xf…

植物学(书籍学习资料)

包含观赏植物学、植物学、植物学百科图鉴等多本植物学方面的书籍学习资料。 图2、3为观赏植物学截图&#xff1b; 图4、5为植物学百科图鉴截图&#xff1b; 图6、7为植物学学习指南截图。

RocketMQ-订阅一致及解决方案

背景 这里借用Rocketmq官方的一句话来描述订阅关系一致: 订阅关系一致指的是同一个消费者分组Group ID下&#xff0c;所有Consumer实例所订阅的Topic和Tag必须完全一致。如果订阅关系不一致&#xff0c;可能导致消息消费逻辑混乱&#xff0c;消息被重复消费或遗漏。 具体的问题…

代码随想录第44天|动态规划

188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 参考 class Solution { public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(), vector<int>(4, 0));dp[0][0] -prices[0];dp[0][1] 0;dp[0][2] 0;d…

中英双语介绍大英博物馆(British Museum)

中文版 大英博物馆简介 大英博物馆&#xff08;British Museum&#xff09;位于英国伦敦市中心&#xff0c;成立于1753年&#xff0c;是世界上历史最悠久、规模最大的博物馆之一。以下是对大英博物馆的详细介绍&#xff0c;包括其地理位置、周边环境、知名度、镇馆之宝以及与…

技术驱动:探索SpringBoot的大文件上传策略

1.分片上传技术 为了处理大文件上传并保证性能&#xff0c;前后端可以使用分片上传&#xff08;也称为分块上传&#xff09;技术。 1.选择原因 分片上传&#xff08;也称为分块上传&#xff09;是一种处理大文件上传的技术&#xff0c;主要目的是提高上传的可靠性和效率。 网…

论文导读 | 综述:大模型与推荐系统

最近&#xff0c;预训练语言模型&#xff08;PLM&#xff09;在自然语言处理领域取得了巨大成功&#xff0c;并逐渐引入推荐系统领域。本篇推文介绍了最近的两篇预训练语言模型和推荐系统结合的综述&#xff1a; [1] Pre-train, Prompt, and Recommendation: A Comprehensive …

华夏女中师生深入同仁堂,感悟中医药文化之精髓

华夏女中师生深入同仁堂&#xff0c;感悟中医药文化之精髓 2024年7月4日下午&#xff0c;北京师范大学实验华夏女子中学15名学生在薛艳老师的带领下来到北京同仁堂中医医院&#xff0c;开展职业影随活动。何泽扬院长对她们的到来表示欢迎。随后&#xff0c;在“冯建春全国名老中…

vue 模糊查询加个禁止属性

vue 模糊查询加个禁止属性 父组件通过属性传&#xff0c;是否禁止输入-------默认可以输入

Docker:三、安装nginx与tomcat

&#x1f341;安装常见服务 &#x1f332;安装nginx &#x1f9ca;1、搜索镜像 Ⅰ.hub docker上查询&#xff1a;https://hub.docker.com/_/nginx Ⅱ. 命令查询&#xff1a;docker search nginx &#x1f9ca;2、下载镜像 命令&#xff1a;docker pull nginx &#x1f9c…

软件测试面试题总结(超全的)

前面看到了一些面试题&#xff0c;总感觉会用得到&#xff0c;但是看一遍又记不住&#xff0c;所以我把面试题都整合在一起&#xff0c;都是来自各路大佬的分享&#xff0c;为了方便以后自己需要的时候刷一刷&#xff0c;不用再到处找题&#xff0c;今天把自己整理的这些面试题…

【Spring Boot】统一数据返回

目录 统一数据返回一. 概念二.实现统一数据返回2.1 重写responseAdvice方法2.2 重写beforeBodyWriter方法 三. 特殊类型-String的处理四. 全部代码 统一数据返回 一. 概念 其实统一数据返回是运用了AOP&#xff08;对某一类事情的集中处理&#xff09;的思维&#xff0c;简单…

Python自动化,实现自动登录并爬取商品数据,实现数据可视化

关于如何使用Python自动化登录天 猫并爬取商品数据的指南&#xff0c;我们需要明确这是一个涉及多个步骤的复杂过程&#xff0c;且需要考虑到天猫的反爬虫策略。以下是一个简化的步骤指南&#xff1a; 步骤一&#xff1a;准备工作 环境准备&#xff1a;确保你的Python环境已经…

《C语言》认识数据类型和理解变量

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C语言基础 目录 前言 一、数据类型的介绍 1.1 字符型 1.2 整形 1.3 浮点型 1.4 布尔类型 1.5 各种数据类型的长度 1.5.1 sizeof操作符 1.5.2 数据类型长度…

全端面试题15(canvas)

在前端开发领域&#xff0c;<canvas> 元素和相关的 API 是面试中经常被提及的主题。下面是一些常见的关于 HTML5 Canvas 的面试问题及解答示例&#xff1a; 1. 什么是 <canvas> 元素&#xff1f; <canvas> 是 HTML5 引入的一个用于图形渲染的标签。它本身并…