沪浙网站江苏专业做网站的公司哪家好

web/2025/10/6 1:59:35/文章来源:
沪浙网站,江苏专业做网站的公司哪家好,福州网站建设价格,工程建设的概念是什么ABCnutter/CrackFeature: #x1f680;使用计算机视觉相关算法提取裂缝的骨架#xff08;矢量化#xff09;、轮廓【支持提前修复断裂裂缝】#xff0c;以及几何特征参数#xff08;长度、宽度、面积和主要方向#xff09;【欢迎Star】。主要流程以及相关算法如下#x…ABCnutter/CrackFeature: 使用计算机视觉相关算法提取裂缝的骨架矢量化、轮廓【支持提前修复断裂裂缝】以及几何特征参数长度、宽度、面积和主要方向【欢迎Star】。主要流程以及相关算法如下 注意要求输入为裂缝提取结果的二值图像 代码如下 import os import math from tqdm import tqdm import numpy as np import matplotlib.pyplot as plt from skimage import io from skimage.measure import find_contours, regionprops, label from skimage.morphology import skeletonize, closing, square from sklearn.neighbors import KDTreedef load_image_list(image_dir):if not os.path.exists(image_dir):raise FileNotFoundError(image_dir not found!)image_path_list []image_name_list []for img in os.listdir(image_dir):image_path_list.append(os.path.join(image_dir, img))image_name_list.append(img)return image_path_list, image_name_listdef SVD(points):# 二维三维均适用# 二维直线三维平面pts points.copy()# 奇异值分解c np.mean(pts, axis0)A pts - c # shift the pointsA A.T # 3*nu, s, vh np.linalg.svd(A, full_matricesFalse, compute_uvTrue) # Au*s*vhnormal u[:, -1]# 法向量归一化nlen np.sqrt(np.dot(normal, normal))normal normal / nlen# normal 是主方向的方向向量 与PCA最小特征值对应的特征向量是垂直关系# u 每一列是一个方向# s 是对应的特征值# c 点的中心# normal 拟合的方向向量return u, s, c, normaldef calcu_dis_from_ctrlpts(ctrlpts):if ctrlpts.shape[1] 4:return np.sqrt(np.sum((ctrlpts[:, 0:2] - ctrlpts[:, 2:4]) ** 2, axis1))else:return np.sqrt(np.sum((ctrlpts[:, [0, 2]] - ctrlpts[:, [3, 5]]) ** 2, axis1))def get_crack_ctrlpts(centers, normals, bpoints, hband5, vband2, est_width0):# main algorithm to obtain crack widthcpoints np.copy(centers)cnormals np.copy(normals)xmatrix np.array([[0, 1], [-1, 0]])cnormalsx np.dot(xmatrix, cnormals.T).T # the normal of x axisN cpoints.shape[0]interp_segm []widths []for i in range(N):try:ny cnormals[i]nx cnormalsx[i]tform np.array([nx, ny])bpoints_loc np.dot(tform, bpoints.T).Tcpoints_loc np.dot(tform, cpoints.T).Tci cpoints_loc[i]bl_ind (bpoints_loc[:, 0] - (ci[0] - hband)) * (bpoints_loc[:, 0] - ci[0]) 0br_ind (bpoints_loc[:, 0] - ci[0]) * (bpoints_loc[:, 0] - (ci[0] hband)) 0bl bpoints_loc[bl_ind] # left pointsbr bpoints_loc[br_ind] # right pointsif est_width 0:# 下面的数值 est_width 是预估计的裂缝宽度half_est_width est_width / 2blt bl[(bl[:, 1] - (ci[1] half_est_width)) * (bl[:, 1] - ci[1]) 0]blb bl[(bl[:, 1] - (ci[1] - half_est_width)) * (bl[:, 1] - ci[1]) 0]brt br[(br[:, 1] - (ci[1] half_est_width)) * (br[:, 1] - ci[1]) 0]brb br[(br[:, 1] - (ci[1] - half_est_width)) * (br[:, 1] - ci[1]) 0]else:blt bl[bl[:, 1] np.mean(bl[:, 1])]if np.ptp(blt[:, 1]) vband:blt blt[blt[:, 1] np.mean(blt[:, 1])]blb bl[bl[:, 1] np.mean(bl[:, 1])]if np.ptp(blb[:, 1]) vband:blb blb[blb[:, 1] np.mean(blb[:, 1])]brt br[br[:, 1] np.mean(br[:, 1])]if np.ptp(brt[:, 1]) vband:brt brt[brt[:, 1] np.mean(brt[:, 1])]brb br[br[:, 1] np.mean(br[:, 1])]if np.ptp(brb[:, 1]) vband:brb brb[brb[:, 1] np.mean(brb[:, 1])]t1 blt[np.argsort(blt[:, 0])[-1]]t2 brt[np.argsort(brt[:, 0])[0]]b1 blb[np.argsort(blb[:, 0])[-1]]b2 brb[np.argsort(brb[:, 0])[0]]interp1 (ci[0] - t1[0]) * ((t2[1] - t1[1]) / (t2[0] - t1[0])) t1[1]interp2 (ci[0] - b1[0]) * ((b2[1] - b1[1]) / (b2[0] - b1[0])) b1[1]if interp1 - ci[1] 0 and interp2 - ci[1] 0:widths.append([i, interp1 - ci[1], interp2 - ci[1]])interps np.array([[ci[0], interp1], [ci[0], interp2]])interps_rec np.dot(np.linalg.inv(tform), interps.T).Tinterps_rec interps_rec.reshape(1, -1)[0, :]interp_segm.append(interps_rec)except:print(the %d-th was wrong % i)continueinterp_segm np.array(interp_segm)widths np.array(widths)return interp_segm, widthsdef estimate_normal_for_pos(pos, points, n):# estimate normal vectors at a given pointpts np.copy(points)tree KDTree(pts, leaf_size2)idx tree.query(pos, kn, return_distanceFalse, dualtreeFalse, breadth_firstFalse)normals []for i in range(0, pos.shape[0]):pts_for_normals pts[idx[i, :], :]_, _, _, normal SVD(pts_for_normals)normals.append(normal)normals np.array(normals)return normalsdef estimate_normals(points, n):pts np.copy(points)tree KDTree(pts, leaf_size2)idx tree.query(pts, kn, return_distanceFalse, dualtreeFalse, breadth_firstFalse)normals []for i in range(0, pts.shape[0]):pts_for_normals pts[idx[i, :], :]_, _, _, normal SVD(pts_for_normals)normals.append(normal)normals np.array(normals)return normalsdef close_skeleton_contour(image_path, square_value, contours_value):image io.imread(image_path)if len(image.shape) ! 2:raise ValueError(fPlease check input images, guaranteed to be a single-channel image!)image[image ! 0] 1# 使用闭运算填充小孔和连接小块closed_image closing(image, square(square_value))skeleton_zha skeletonize(closed_image)# skeleton_lee skeletonize(closed_image, methodlee)# 提取轮廓contours find_contours(closed_image, contours_value)# 创建一个空白图像contour_image np.zeros_like(image)# 在空白图像上绘制轮廓for contour in contours:contour_image[np.round(contour[:, 0]).astype(int), np.round(contour[:, 1]).astype(int)] 1skeleton_zha_contour_image np.zeros((3, image.shape[0], image.shape[1]), dtypenp.uint8)skeleton_zha_contour_image[0, skeleton_zha] 255for contour in contours:skeleton_zha_contour_image[1, np.round(contour[:, 0]).astype(int), np.round(contour[:, 1]).astype(int)] 255# skeleton_zha_contour_image[1, contour_image] 255skeleton_zha_contour_image np.transpose(skeleton_zha_contour_image, (1, 2, 0))# skeleton_lee_contour_image np.zeros(# (3, image.shape[0], image.shape[1]), dtypenp.uint8# )# skeleton_lee_contour_image[0, skeleton_lee] 255# for contour in contours:# skeleton_lee_contour_image[# 1, np.round(contour[:, 0]).astype(int), np.round(contour[:, 1]).astype(int)# ] 255# # skeleton_lee_contour_image[1, contour_image] 255# skeleton_lee_contour_image np.transpose(skeleton_lee_contour_image, (1, 2, 0))return (image,closed_image,skeleton_zha,# skeleton_lee,contour_image,skeleton_zha_contour_image,# skeleton_lee_contour_image,)def calculate_crack_length(skeletons, scale_factor):# 标记连通区域labeled_skeletons label(skeletons)# 存储所有裂隙的像素坐标、微分裂隙的长度和像素个数all_crack_coordinates []all_crack_lengths []all_crack_pixel_counts []# 处理每个连通域for skeleton_idx in range(1, np.max(labeled_skeletons) 1): # 从1开始因为0表示背景# 提取当前连通域的骨架current_skeleton (labeled_skeletons skeleton_idx).astype(np.uint8)# # 提取当前骨架的坐标和像素个数coords np.column_stack(np.where(current_skeleton))pixel_count np.sum(current_skeleton)# 提取当前骨架的轮廓contour find_contours(current_skeleton, level0.5)[0]# 裂隙的像素坐标crack_coordinates np.round(contour).astype(int)# # 微分法求取单条裂隙的长度# dx np.diff(crack_coordinates[:, 1])# dy np.diff(crack_coordinates[:, 0])# distances np.sqrt(dx**2 dy**2)total_length np.sum(current_skeleton) * scale_factor# 将每一微分段裂隙单元的长度进行累加得到单条裂隙的总长度# total_length np.sum(distances)# 根据比例缩放# total_length * scale_factorprint(fcrack connected domain-{skeleton_idx} average lengths:{total_length})# 存储当前裂隙的信息all_crack_coordinates.append(crack_coordinates)all_crack_pixel_counts.append(pixel_count)all_crack_lengths.append([skeleton_idx, total_length])all_crack_average_lengths np.sum(all_crack_lengths) / len(all_crack_lengths)print(fcrack average lengths:{all_crack_average_lengths})return (all_crack_coordinates,all_crack_lengths,all_crack_pixel_counts,all_crack_average_lengths,)# # 将每一微分段骨架单元的长度进行累加得到骨架的总长度# total_length np.sum(skeleton) * scale_factor# # total_length np.sum(distances)# return total_lengthdef calculate_crack_width(image,skeletons,scale_factor,tree_n3,find_contours_level0.5,hband5,vband5,est_width50, ):# 标记连通区域labeled_skeletons label(skeletons)# 存储所有裂隙的像素坐标、微分裂隙的长度和像素个数all_crack_interps []all_crack_widths []all_connected_domain_widths []# 处理每个连通域for skeleton_idx in range(1, np.max(labeled_skeletons) 1): # 从1开始因为0表示背景# 提取当前连通域的骨架current_skeleton (labeled_skeletons skeleton_idx).astype(np.uint8)# 提取当前骨架的坐标和像素个数coords np.column_stack(np.where(current_skeleton))pixel_count np.sum(current_skeleton)normals estimate_normals(coords, tree_n)# 提取当前连通域的轮廓labeled_images label(image)if np.max(labeled_skeletons) ! np.max(labeled_images):raise ValueError(fthe number of images ! the number of skeletons)current_connected_domain_coords np.column_stack(np.where((labeled_images skeleton_idx).astype(np.uint8)))current_connected_domain np.zeros_like(labeled_images)current_connected_domain[current_connected_domain_coords[:, 0], current_connected_domain_coords[:, 1]] 1contours find_contours(current_connected_domain, levelfind_contours_level)bpoints np.vstack(contours)interps, widths get_crack_ctrlpts(coords, normals, bpoints, hband, vband, est_width)# print(widths)# if len(widths) 0 or len(interps) 0:per_crack_widths np.sum(np.abs(widths[:, 1:]), axis1)# 计算当前裂缝连通域的宽度平均值average_crack_widths np.sum(per_crack_widths) / len(widths) * scale_factorprint(fcrack connected domain-{skeleton_idx} average widths:{average_crack_widths})all_crack_interps.append(interps)all_crack_widths.append(widths)all_connected_domain_widths.append([skeleton_idx, average_crack_widths])# 计算图像中的所有裂缝的宽度平均值all_average_crack_widths np.sum(np.array(all_connected_domain_widths)[:, 1]) / len(all_connected_domain_widths)print(fcrack average widths:{all_average_crack_widths})return (all_crack_interps,all_crack_widths,all_connected_domain_widths,all_average_crack_widths,)def draw_widths(image, interps, show_points_nums, save_dir, image_name, plugin):# inters 为 all_crack_interpsfig, ax plt.subplots()for interp in interps:show_points_nums_copy np.copy(show_points_nums)if interp.shape[0] show_points_nums_copy:show_points_nums_copy interp.shape[0]interps_show interp[np.random.choice(interp.shape[0], show_points_nums_copy, replaceFalse), :]for i in range(interps_show.shape[0]):ax.plot([interps_show[i, 1], interps_show[i, 3]],[interps_show[i, 0], interps_show[i, 2]],cc,ls-,lw2,markero,ms4,mecc,mfcc,)ax.imshow(image)# 设置坐标轴不可见ax.axis(off)# 调整子图的间距使得图像紧凑显示plt.subplots_adjust(left0, right1, top1, bottom0)save_file_dir os.path.join(save_dir, image_name.split(.)[0])if not os.path.exists(save_file_dir):os.makedirs(save_file_dir)plt.savefig(os.path.join(save_file_dir, image_name.split(.)[0] f{plugin}.png),bbox_inchestight,pad_inches0,)# 显示结果# plt.show()def radians_to_degrees_minutes_seconds(angle_radians):# 转换弧度为度angle_degrees math.degrees(angle_radians)# 提取度、分、秒degrees int(angle_degrees)remainder_minutes (angle_degrees - degrees) * 60minutes int(remainder_minutes)seconds (remainder_minutes - minutes) * 60return degrees, minutes, secondsdef estimate_crack_direction(image):# 标记裂缝连通域labeled_image label(image)# 存储裂缝的法线方向和椭圆信息crack_connected_domain_directions []# 处理每个连通域for region in regionprops(labeled_image):current_crack_direction region.orientationdegrees, minutes, seconds radians_to_degrees_minutes_seconds(current_crack_direction)print(f{region.label}-{current_crack_direction}-子连通域弧度对应的度分秒为{degrees}° {minutes} {seconds}\)crack_connected_domain_directions.append([region.label, current_crack_direction, degrees, minutes, seconds])# 计算图像中的所有裂缝的面积平均值all_average_crack_directions np.sum(np.array(crack_connected_domain_directions)[:, 1]) / len(crack_connected_domain_directions)all_average_degrees, all_average_minutes, all_average_seconds (radians_to_degrees_minutes_seconds(all_average_crack_directions))print(f整体平均弧度-{all_average_crack_directions}-对应的度分秒为{all_average_degrees}° {all_average_minutes} {all_average_seconds}\)all_average_crack_direction [all_average_crack_directions,all_average_degrees,all_average_minutes,all_average_seconds,]return crack_connected_domain_directions, all_average_crack_directiondef extract_crack_areas(image, scale_factor1):# 标记裂缝连通域labeled_image label(image)# 存储裂缝的法线方向和椭圆信息crack_connected_domain_areas []# 处理每个连通域for region in regionprops(labeled_image):crack_area region.area * (scale_factor * scale_factor)print(f{region.label}-子连通域面积为{crack_area})crack_connected_domain_areas.append([region.label, crack_area])# 计算图像中的所有裂缝的面积平均值all_average_crack_areas np.sum(np.array(crack_connected_domain_areas)[:, 1]) / len(crack_connected_domain_areas)print(fcrack average areas:{all_average_crack_areas})return crack_connected_domain_areas, all_average_crack_areasdef save_results(save_dir, image_name, image, plugin):save_file_dir os.path.join(save_dir, image_name.split(.)[0])if not os.path.exists(save_file_dir):os.makedirs(save_file_dir)io.imsave(fnameos.path.join(save_file_dir, image_name.split(.)[0] f{plugin}.png),arrimage,)def extract_crack_feature_parameters(image_dir,save_dir,square_value,contours_value,scale_factor,tree_n3,find_contours_level0.5,hband5,vband5,est_width50,show_points_nums50, ):img_path_list, img_name_list load_image_list(image_dir)for img_path, img_name in tqdm(zip(img_path_list, img_name_list)):try:print(f***************************************************************************************************)print(f**************************************** {img_name} BEGIN! ****************************************)print(f***************************************************************************************************)########################################## calculate_crack_closed_skeleton ##########################################(image,closed_image,skeleton_zha,# skeleton_lee,contour_image,skeleton_zha_contour_image,# skeleton_lee_contour_image,) close_skeleton_contour(img_path, square_value, contours_value)save_results(save_dir, img_name, image * 255, _image)save_results(save_dir, img_name, closed_image * 255, _closed_image)save_results(save_dir, img_name, skeleton_zha, _skeleton_zha)# save_results(save_dir, img_name, skeleton_lee * 255, _skeleton_lee)save_results(save_dir, img_name, contour_image * 255, _contour_image)save_results(save_dir,img_name,skeleton_zha_contour_image,_skeleton_zha_contour_image,)# save_results(save_dir, img_name, skeleton_lee_contour_image, _skeleton_lee_contour_image)save_file_dir os.path.join(save_dir, img_name.split(.)[0])if not os.path.exists(save_file_dir):os.makedirs(save_file_dir)########################################## calculate_crack_length ##########################################(all_crack_coordinates,all_crack_lengths,all_crack_pixel_counts,all_crack_average_lengths,) calculate_crack_length(skeleton_zha, scale_factor)# 将lengths逐行写入文本文件with open(f{save_file_dir}/{img_name}_crack_length.txt, w) as file:for row in all_crack_lengths:file.write(_crack_connected_domain_average_length: .join(map(str, row)) \n)file.write(ftotal figure crack average length: {all_crack_average_lengths})########################################## calculate_crack_width ##########################################print(f{img_name} BEGIN!)(all_crack_interps,all_crack_widths,all_connected_domain_widths,all_average_crack_widths,) calculate_crack_width(closed_image,skeleton_zha,scale_factor,tree_n,find_contours_level,hband,vband,est_width,)# 将widths逐行写入文本文件with open(f{save_file_dir}/{img_name}_crack_width.txt, w) as file:for row in all_connected_domain_widths:file.write(_crack_connected_domain_average_width: .join(map(str, row)) \n)file.write(ftotal figure crack average width: {all_average_crack_widths})draw_widths(skeleton_zha_contour_image,all_crack_interps,show_points_nums,save_dir,img_name,_width,)########################################## calculate_crack_direction ##########################################crack_connected_domain_directions, all_average_crack_direction (estimate_crack_direction(closed_image))# 将direction逐行写入文本文件with open(f{save_file_dir}/{img_name}_crack_direction.txt, w) as file:for row in crack_connected_domain_directions:file.write(f{row[0]}_crack_connected_domain_average_direction:{row[1]} --- 对应的度分秒为{row[2]}° {row[3]} {row[4]}\ \n)file.write(ftotal figure crack average direction: {all_average_crack_direction[0]} --- 对应的度分秒为{all_average_crack_direction[1]}° {all_average_crack_direction[2]} {all_average_crack_direction[3]})########################################## calculate_crack_area ##########################################crack_connected_domain_areas, all_average_crack_areas extract_crack_areas(closed_image, scale_factor)# 将area逐行写入文本文件with open(f{save_file_dir}/{img_name}_crack_area.txt, w) as file:for row in crack_connected_domain_areas:file.write(_crack_connected_domain_average_area: .join(map(str, row)) \n)file.write(ftotal figure crack average area: {all_average_crack_areas})print(f####################################################################################################)print(f######################################### {img_name} OVER! #########################################)print(f####################################################################################################)except:import logginglogging.error(f!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! {img_name} exists wrong !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)continueif __name__ __main__:import configparser# 将参数保存到配置文件config configparser.ConfigParser()config[Parameters] {square_value: 20,contours_value: 0.8,scale_factor: 2.6,tree_n: 3,find_contours_level: 0.5,hband: 5,vband: 5,est_width: 30,show_points_nums: 150,image_dir: test, # 存放所有裂缝二值图片的文件夹save_dir: results,}# 保存配置文件# 保存配置文件到 save_dir 路径下save_file_dir config[Parameters][save_dir]if not os.path.exists(save_file_dir):os.makedirs(save_file_dir)config_file_path os.path.join(config[Parameters][save_dir], config.ini)with open(config_file_path, w) as configfile:config.write(configfile)# 读取配置文件中的参数config configparser.ConfigParser()config.read(config_file_path)square_value int(config[Parameters][square_value])contours_value float(config[Parameters][contours_value])scale_factor float(config[Parameters][scale_factor])tree_n int(config[Parameters][tree_n])find_contours_level float(config[Parameters][find_contours_level])hband int(config[Parameters][hband])vband int(config[Parameters][vband])est_width int(config[Parameters][est_width])show_points_nums int(config[Parameters][show_points_nums])image_dir config[Parameters][image_dir]save_dir config[Parameters][save_dir]# 然后在你的函数中使用这些参数extract_crack_feature_parameters(image_dir,save_dir,square_value,contours_value,scale_factor,tree_n,find_contours_level,hband,vband,est_width,show_points_nums,)

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

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

相关文章

桐城网站开发内容不相关的网站做301重定向

近日,NVIDIA发布了用于自动驾驶和机器人的高度先进的软件定义平台——NVIDIA DRIVE AGX Orin™。 该平台内置全新Orin系统级芯片。该芯片由170亿个晶体管组成,凝聚着NVIDIA团队为期四年的努力。Orin系统级芯片集成了NVIDIA新一代GPU架构和Arm Hercules C…

常州专业房产网站建设网站怎么做权重

题目链接 点击打开链接 题目解法 好神仙的题啊!!! 首先一个合法的选路径方案等价于没有偶环出现 我们先判掉和树边能组成偶环的非树边 然后考虑一个结论是:如果有一条边被两个偶环都经过了一次,那么这个方案不合法 …

做后台网站深圳网站建设行吗

近日,中国计算机学会(CCF)正式公布了 2024 年“CCF 杰出工程师奖”获奖名单,其中,涛思数据(TDengine)创始人陶建辉凭借其在开源领域和时序数据库领域的卓越贡献,荣获此项殊荣。这一奖…

百度 特定网站搜索内江市规划建设教育培训 网站

还在为在linux下画二叉树等图苦恼吗,现在就安利一波linux程序猿的作图神器——Graphviz。(本来在写其他东西,刚好要绘图,强行插入一篇blog) Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源…

律师事务所公司类网站建设案例织梦cms网站分页打不开

本心、输入输出、结果 文章目录 2D 3D 工业组态技术 meta2d JavaScript前言2D 3D 工业组态技术 meta2d JavaScript 简介2D 3D 工业组态技术 meta2d JavaScript 特性丰富的组态能力0代码数据通信组态的应用多端适配能力强大的扩展能力追求卓越性能丰富的组件库资源广泛的应用场景…

闵行区做网站公司山东最新消息今天

C11新特性选讲 语言部分 侯捷 本课程分为两个部分:语言的部分和标准库的部分。只谈新特性,并且是选讲。 本文为语言部分笔记。 语言 Variadic Templatesmove semanticsautoRange-based for loopInitializer listLambdas… 标准库 type_traitsunodered…

微信小程序与微网站南昌网站制作方案定制

ABoVE: Modeled Top Cover by Plant Functional Type over Alaska and Yukon, 1985-2020 1985-2020 年阿拉斯加和育空地区按植物功能类型划分的模型表层覆盖率 简介 文件修订日期:2022-05-31 数据集版本: 1.1 本数据集包含阿拉斯加和育空地区北极和北方地区按…

网站建设需要审批吗杭州住房城乡建设网站查询

我创建了一个spring boot应用程序,这就是我的控制器的样子 . 我使用postman在请求体中发送json,在请求头中发送一个字符串,然后进一步散列json并将其与请求头获取的字符串进行比较 . 问题是我不知道获取请求体和请求头以便使用MockMvc测试相应…

网站地图模板.zip开发软件和做网站的区别

丢字的本质 丢字的本质是在一段音频中一小段数据变为0 丢字对主观感受的影响 1. 丢字位置 丢字的位置对感知效果有很大影响。如果丢字发生在音频信号的静音部分或低能量部分,感知可能不明显;而如果丢字发生在高能量部分或关键音素上,感知…

网上教学网站建设怎样做网站制作

Python的生成器是一种特殊的函数,它可以在迭代过程中动态生成值,而不是一次性生成所有值。生成器使用yield语句来产生一个值,并且在每次调用时暂停执行,保留当前的状态。当再次调用生成器时,它会从上次暂停的地方继续执…

怎样提高网站打开速度慢怎么制作小程序卖东西

银行家算法的实现需要三个矩阵: Max矩阵:用于存储每个进程完成所需要的全部资源量Allocation矩阵:用于存储每个进程每个资源已分配的情况Need矩阵:存储每个进程还需要的各个资源数 如下以一个实例来说明银行家算法: …

网站建设公司选哪个好扮家家室内设计平台

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 这个章节主要是介…

动态电子商务网站 制作网站底部导航设置

题目 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。 示例 2: 输入: "aba…

阜宁县城乡建设局新的官方网站盗用别的公司网站模块

您好,这里是「码农镖局」CSDN博客,欢迎您来,欢迎您再来~ 截止到目前,算上ZGC,Java一共有九种类型的GC,它们分别是: 1、Serial GC 串行/作用于新生代/复制算法/响应速度优先/适用于单…

网站定制公司多少人用wordpress

1.前言 cesium中提供了一些高级的api,可以自己写一些shader来制作炫酷的效果。 ShaderToy 是一个可以在线编写、测试和分享图形渲染着色器的网站。它提供了一个图形化的编辑器,可以让用户编写基于 WebGL 的 GLSL 着色器代码,并实时预览渲染结…

无锡个人网站制作网站建设实习困难

题意 给定n个非负整数\(a_1,a_2,...,a_n\),其中每个数表示坐标点\((i,a_i)\),i是数组下标,\(a_i\)是对应高度.寻找两条线,使得两条线构成的长方形面积最大,盛水最多. Example: Input: [1,8,6,2,5,4,8,3,7] Output: 49 解 暴力破解 对每种情况进行循环,计算对应的面积,同时保存最…

网站建设6000元在线教学网站开发

电脑20多天没用,忘记Ubuntu 14.04 root密码了,下面是在网上找到的一个解决办法,其它的和这个也大概相同。因为其中有些缺漏,没能给我解决问题。通过分析最终问题还是解决了,现解决方案的关键点记录一下。希望能方便到其…

柴沟堡做网站设计logo网站侵权吗知乎

一.回调函数: 1.什么事回调函数:通过函数指针调用函数 2.应用例子: https://blog.csdn.net/hot_water_oh/article/details/136572650?spm1001.2014.3001.5501 (此链接为提到转义表所在博客的链接) 依然以转义表为例…

手机端网站尺寸dede网站地图

我一直以为我电脑上的摄像头老是打不开是因为硬件不匹配的问题。知道我发现了我的拯救者Y7000的机身盘边的“摄像头开关”按钮。。。 我去,你的摄像头开关按钮怎么设置在机身旁边啊。。。。 —————————————————————— 2024年3月21日更新记录&a…

企业网站 phpcmswordpress 插件权限

【0】README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象——远程方法中的参数和返回值远程对象激活 的相关知识; 【1】远程方法中的参数和返回值 1) 在开始进行远程方法调用时,调用参数需要从…