自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 使用C++、OpenCV和PCL进行三维点云处理

在进行点云处理之前,通常需要对点云数据进行滤波以去除噪声和不必要的信息。通过使用C++编程语言以及开源库OpenCV和PCL(点云库),可以方便地进行三维点云数据的读取、处理和可视化。通过使用这些强大的库,我们可以轻松读取、处理和可视化三维点云数据。在实际应用中,可以根据具体的任务和需求,结合这些库提供的功能进行更复杂的点云处理和分析。这只是点云处理的基础,OpenCV和PCL库提供了许多其他功能和算法,如点云配准、特征提取、平面分割等。通过可视化,我们可以直观地查看点云数据的内容和处理效果。

2023-09-22 20:34:09 797

原创 PCD文件格式解析及在PCL中读取PCD文件

在本文中,我们将详细解析PCD文件的结构,并提供使用PCL(Point Cloud Library)读取PCD文件的示例代码。在本文中,我们将详细解析PCD文件的结构,并提供使用PCL(Point Cloud Library)读取PCD文件的示例代码。PCD文件由文件头和数据组成,其中文件头包含了描述点云数据的元信息,而数据部分则存储了实际的点云数据。PCD文件由文件头和数据组成,其中文件头包含了描述点云数据的元信息,而数据部分则存储了实际的点云数据。PCL中读取PCD文件的示例代码。

2023-09-22 12:14:47 642

原创 大数据和人工智能:解析 PCL

大数据(Big Data)是指规模庞大、复杂多样的数据集合,无法使用传统的数据处理方法进行管理和分析。大数据的特点主要包括四个方面:数据量大、流速快、种类多和价值密度低。大数据分析利用先进的技术和工具来发现数据中的模式、关联和趋势,从而为企业和组织提供决策支持和商业价值。人工智能(Artificial Intelligence,简称 AI)是指使机器具备智能行为和智能思维的技术和方法。人工智能的目标是使机器能够像人类一样感知、理解、学习和决策。

2023-09-21 23:05:29 398

原创 点云投影至指定平面:使用CloudCompare和PCL

在上述代码中,我们首先加载了一个点云数据文件(input_cloud.pcd),然后定义了一个平面模型的系数对象,并设置了平面的法向量和原点到平面的距离。点云投影是将三维点云数据映射到一个平面上的过程。在本文中,我们将介绍如何使用CloudCompare和PCL(点云库)来实现点云投影至指定平面的功能。步骤5:保存投影后的点云数据。可以选择菜单栏中的“文件”选项,然后选择“保存”功能来保存投影后的点云数据。函数进行点云投影,并将投影后的点云保存为另一个文件(projected_cloud.pcd)。

2023-09-21 22:41:23 993

原创 点云地面分割滤波算法(PCL)

点云地面分割滤波是一种常用的算法,用于从三维点云数据中提取地面平面。在本文中,我们将介绍如何使用点云库(Point Cloud Library,PCL)实现点云地面分割滤波算法,并提供相应的源代码。以上就是使用PCL库实现点云地面分割滤波算法的示例代码。通过适当调整滤波参数,您可以根据实际需求对点云数据进行地面分割滤波。希望这对您有所帮助!首先,我们需要导入PCL库,并创建一个PointCloud对象,用于存储点云数据。的类,用于实现点云地面分割滤波算法。方法执行滤波操作,并将滤波后的地面点云数据保存到。

2023-09-21 19:12:42 511

原创 计算点到平面的距离

希望通过这篇文章,你对计算点到平面的距离有了更好的理解,并能够在自己的应用程序中使用这个算法。记得根据你的实际需求修改代码中的平面参数和待计算距离的点,以及使用适合你编程语言的相应库来进行计算。在本文中,我将介绍如何计算点到平面的距离,并提供相应的源代码。下面是一个示例函数,它接受平面的法向量 N、平面上的一点 P0 和待计算距离的点 P,并返回点到平面的距离。在这个示例中,我们假设平面的法向量为 [1, 1, 1],平面上的一点为 [0, 0, 0],待计算距离的点为 [1, 2, 3]。

2023-09-21 17:54:39 461

原创 Windows 10: 使用Visual Studio 2015属性管理器配置PCL

在Windows 10操作系统下,使用Visual Studio 2015可以很方便地进行属性管理器的配置,特别是在处理PCL(Portable Class Library,可移植类库)项目时。如果需要添加新的平台配置,可以右键点击解决方案,选择“添加新平台”选项,并根据需要进行配置。可以通过选择相应的平台和配置,点击“生成”菜单中的“生成解决方案”选项来进行构建。现在,我们将配置Debug|x86平台的属性。接下来,可以通过在解决方案资源管理器中选择不同的平台来配置其他平台的属性。

2023-09-21 08:13:15 669

原创 使用PCL提取OBJ模型资源并在Unity中展示粒子效果

通过将点云数据保存为CSV文件,并利用Unity的粒子系统,我们能够以粒子形式展示模型的形态。我们将使用C++编写PCL代码来提取点云数据,然后将提取的数据导入到Unity中,使用Unity的粒子系统来展示模型的形态。在Unity中,将该脚本添加到空的游戏对象上,并将CSV文件和粒子系统组件分配给相应的公共变量。接下来,我们将点云数据导入Unity中,以便使用Unity的粒子系统展示模型的形态。上述代码将点云数据保存为PCD文件。在上述脚本中,我们首先将CSV文件按行解析,并将每个点的位置存储在一个。

2023-09-21 06:40:53 503

原创 两亲性嵌段共聚物超顺磁性纳米粒子:PEG-PLGA纳米载体PCL的设计与应用

该纳米载体结合了聚苯乙烯-聚丙烯酸(PS-PAA)和双硒键Se-Se的聚乙醇(PEG-PLGA)纳米粒子,具有优良的药物包封能力和生物相容性。两亲性嵌段共聚物超顺磁性纳米粒子是一种新型的纳米载体系统,由聚苯乙烯-聚丙烯酸(PS-PAA)和双硒键Se-Se的聚乙醇(PEG-PLGA)纳米粒子组成,具有优良的药物包封能力和生物相容性。然后,在PEG-PLGA共聚物中引入双硒键Se-Se,通过适当的反应条件,制备得到双硒键Se-Se的PEG-PLGA纳米粒子。2.1 PEG-PLGA纳米载体的制备。

2023-09-20 19:31:11 469

原创 使用Visual Studio 2013配置PCL

在“新建项目”对话框中,选择“Visual C#”->“Windows”->“PCL”模板。首先,打开Visual Studio 2013,并选择“文件”->“新建”->“项目”。在项目模板中,选择“Visual C#”->“Windows”->“空白解决方案”,并为您的解决方案指定一个名称。在解决方案资源管理器中,右键单击启动项目,并选择“设为启动项目”。例如,如果您想在PCL项目中使用.NET Framework中的类库,可以选择“框架”选项卡,并选择所需的程序集。右键单击项目,选择“引用”选项。

2023-09-20 18:17:00 498

原创 计算点云模型曲率的 VTK 算法

接下来,我们需要读取点云模型的数据。VTK 提供了多种读取点云数据的方法,例如读取 PCL 的 PCD 格式或者使用 VTK 自带的格式(如 VTP、VTK 等)。同时,VTK 还提供了丰富的功能和算法,可以用于点云的可视化、滤波、配准等任务。读取点云数据后,我们可以创建一个曲率计算器对象,并设置一些参数,如曲率类型、曲率范围等。在 VTK 中,可以选择多种曲率类型,例如高斯曲率、平均曲率、最小曲率和最大曲率等。通过这些代码,我们可以读取点云数据,计算高斯曲率和平均曲率,并将结果保存到文件中。

2023-09-20 17:11:02 466

原创 PCL Alpha Shapes:平面点云边界特征提取

点云数据通常包含大量的离散点,而提取点云数据的边界特征对于对象分割、形状分析和场景理解等任务至关重要。在本文中,我们将探讨一种名为PCL Alpha Shapes的方法,该方法可以用于从平面点云中提取边界特征。Alpha Shapes算法利用了点云中点的邻域信息,通过计算不同参数下的Alpha形状,寻找点云的边界。使用PCL Alpha Shapes算法从平面点云中提取边界特征可以帮助我们更好地理解点云数据的形状和结构。通过调整Alpha参数,我们可以控制提取的边界特征的详细程度,从而满足不同应用的需求。

2023-09-20 04:31:21 716

原创 IntelliSense 引擎由于错误过多而无法正常运行(PCL)

在使用 C++ 编程语言开发应用程序时,Visual Studio 提供了强大的 IntelliSense 功能,它可以为我们提供实时的代码补全、语法检查和错误提示。然而,有时在引入 WinRT 头文件时,可能会遇到 IntelliSense 引擎无法正常工作的问题,并收到以下错误提示:“There are too many errors for the IntelliSense engine to function properly”。本文将介绍这个问题的原因,并提供解决方案。

2023-09-19 23:40:52 1097

原创 在Linux上安装Mono和C# PCL

对于在Linux操作系统上进行C#开发的开发人员来说,安装Mono和C# PCL是至关重要的。Mono是一个跨平台的开源实现,允许我们在Linux上运行和开发C#应用程序。希望本文对您有所帮助,让您能够在Linux上使用Mono和C# PCL进行开发。现在,您已经成功安装了Mono和配置了C# PCL,让我们编写一个简单的C#程序并运行它。这将下载并安装.NET Core SDK,该SDK包含用于开发和构建C# PCL的工具。您已成功使用C# PCL在Linux上编写和运行了一个简单的应用程序。

2023-09-19 17:48:59 658

原创 点云处理:实现点云的平移和旋转

在点云处理中,常常需要对点云进行平移和旋转操作,以实现目标点云的对齐、配准等任务。本文将介绍如何使用PCL(点云库)实现点云的仿射变换,具体包括点云的平移和旋转。点云平移是将点云中的每个点沿着指定的方向进行移动,实现整体位置的变换。在PCL中,可以通过创建一个4x4的变换矩阵,将点云中的每个点与该矩阵相乘,从而实现平移操作。点云旋转是将点云中的每个点绕指定的旋转轴进行旋转,实现整体方向的变换。在PCL中,可以通过创建一个4x4的变换矩阵,将点云中的每个点与该矩阵相乘,从而实现旋转操作。

2023-09-19 15:18:26 788

原创 Python中的列表操作指南

列表是Python中最常用的数据结构之一,它允许我们存储和操作一系列元素。本文将介绍一些常见的列表操作,并提供相应的Python源代码示例。还可以指定步长来提取间隔的元素。以上是Python中常见的列表操作。通过灵活运用这些操作,您可以更好地处理和管理列表数据。方法在特定位置插入新元素。要删除特定值的元素,可以使用。

2023-09-19 13:50:37 449

原创 使用Visual Studio和CUDA实现PCL的GPU计算

通过利用CUDA的并行计算能力,可以加速PCL的算法执行,从而提高点云处理的效率。通过创建CUDA项目、导入PCL库、编写CUDA核函数以及进行编译和运行,可以实现GPU加速的PCL开发。在实际应用中,可以根据具体需求编写更复杂的CUDA核函数,并结合PCL的其他功能和算法来处理和分析点云数据。实际应用中,可以根据具体的需求编写更复杂的CUDA核函数,并结合PCL的其他功能和算法来实现更多的点云处理任务。在Visual Studio中,选择“新建项目”并选择“CUDA 项目”,然后选择“空项目”。

2023-09-19 13:12:13 1140 1

原创 使用 arcEngine 计算点到一组polyline的最近点,包括垂足的计算

接下来,我们创建一个函数,该函数将接收一个点和一个polyline集合作为输入,并返回最近点及其垂足。在ArcGIS ArcObjects的开发环境中,我们可以使用arcEngine来进行点到polyline集合的最近点计算,并且可以计算最近点的垂足。这样,我们就完成了使用arcEngine计算点到polyline集合的最近点,并计算最近点的垂足的过程。最后,我们通过打印结果来输出计算得到的最近点和垂足的坐标。接下来,我们可以在主程序中使用这些方法来进行点到polyline集合的最近点计算。

2023-09-19 10:58:57 515 1

原创 使用MATLAB配置OpenCV和PCL

OpenCV(Open Source Computer Vision Library)和PCL(Point Cloud Library)是两个功能强大的开源计算机视觉和点云处理库。这篇文章将详细介绍如何在MATLAB中配置和使用OpenCV和PCL,并提供相应的源代码示例。安装完成后,我们需要配置MATLAB与OpenCV和PCL的接口,以便在MATLAB中使用它们。配置完成后,我们可以开始在MATLAB中使用OpenCV和PCL进行计算机视觉和点云处理。步骤3:在MATLAB中使用OpenCV和PCL。

2023-09-19 10:09:36 1564 1

原创 远程桌面连接遇到内部错误的原因及解决方法

远程桌面连接出现内部错误可能是由于网络连接问题、防火墙设置、远程桌面服务未启动或远程桌面连接配置错误等原因引起的。检查远程计算机和本地计算机上的防火墙设置,确保允许远程桌面连接通过防火墙。检查远程计算机和本地计算机上的远程桌面连接配置,确保它们正确匹配。确保远程计算机已启用远程连接,并且与本地计算机使用相同的协议和端口进行连接。远程桌面连接是一种常用的技术,可以使用户能够通过网络连接到远程计算机并远程控制它。如果服务未启动,可以尝试手动启动它,并重新尝试远程桌面连接。内部错误可能是由于网络连接问题引起的。

2023-09-19 05:57:19 3322 1

原创 微分方程数值解法:PCL

本文将介绍一种常用的微分方程数值解法——PCL(Predictor-Corrector-Loop)方法,并提供相应的源代码。总之,PCL方法是一种常用的微分方程数值解法,通过预测和修正的迭代过程逼近微分方程的数值解。本文提供了PCL方法的实现示例代码,希望对你理解微分方程的数值求解方法有所帮助。停止准则可以是达到指定的迭代次数或两次迭代之间的解的差值小于给定的容差。使用PCL方法求解微分方程的关键是选择适当的步长和停止准则。PCL方法是一种迭代方法,通过不断迭代逼近微分方程的数值解。是微分方程的右侧函数,

2023-09-18 22:23:37 458

原创 PCL安装教程:VS2013 + CMake + QT

在本教程中,我们将介绍如何在Windows操作系统上使用Visual Studio 2013、CMake和QT来安装PCL,并提供相应的源代码。例如,对于默认安装位置,将路径添加为:C:\Program Files\PCL 1.12.0\include。例如,对于默认安装位置,将路径添加为:C:\Program Files\PCL 1.12.0\lib。你已成功安装和配置了PCL,并创建了一个简单的PCL应用程序。7. 在属性页中,选择"链接器",然后选择"输入"。4. 在属性页中,选择"VC++目录"。

2023-09-18 20:59:03 516

原创 OpenWrt网络打印机TCP/IP共享设置教程——以703N为例(PCL)

在打印对话框中,选择你的打印机,并确保它已设置为默认打印机。首先,确保你已经在OpenWrt路由器上安装了最新版本的OpenWrt固件,并且已经连接到你的网络。通过按照这些步骤,你可以轻松地将打印机连接到你的网络,并实现网络打印功能。然后,在“Printer Device”字段中选择你连接到路由器的打印机设备。现在,当你点击“打印”按钮时,打印作业将通过网络发送到OpenWrt路由器,并被路由器上的p910nd服务接收并发送到连接的打印机。在我们的例子中,我们选择PCL作为打印机的语言。

2023-09-18 17:55:39 3002

原创 简单的图像显著性区域特征提取方法——OpenCV实现LC、AC、FT PCL

FT PCL(Frequency-tuned Perceptual Color Local)方法是基于频率调谐的感知色彩局部对比度的显著性区域检测方法。这些简单的方法可以帮助我们识别图像中最显著的区域,对于图像分析和理解任务具有重要意义。图像显著性区域特征提取是计算机视觉领域的一个重要任务,它可以帮助我们理解和分析图像中最具吸引力和重要性的区域。在本文中,我们将使用OpenCV库实现三种简单的图像显著性区域特征提取方法:LC、AC和FT PCL。这些方法可以帮助我们识别出图像中最显著的区域。

2023-09-18 15:31:21 601

原创 PCIe训练PCL:加速深度学习的高性能计算框架

PCIe训练PCL(PCIe Training Parallel Computing Library)是一种针对深度学习模型训练的高性能计算框架,它利用PCIe总线的高带宽和低延迟特性,提供了一种有效的加速方案。通过利用PCIe总线的高带宽和低延迟特性,它能够将训练过程分解为多个并行任务,并在多个计算设备上执行,从而实现深度学习模型的快速训练。PCIe训练PCL利用PCIe总线的高带宽和低延迟特性,将深度学习模型的训练过程分解为多个任务,并在多个计算设备上并行执行。方法获取训练后的模型。

2023-09-18 10:29:44 519

原创 K均值聚类算法的改进——K均值++算法

K均值聚类算法是一种常用的无监督机器学习算法,它将数据点分成不同的簇,使得同一簇内的数据点相似度较高,而不同簇之间的相似度较低。然而,传统的K均值算法对初始聚类中心的选择比较敏感,可能导致陷入局部最优解。为了解决这个问题,研究人员提出了改进的K均值++算法。通过智能选择初始聚类中心,K均值++算法能够更好地避免陷入局部最优解,从而提高了聚类算法的性能和效果。K均值++算法的核心思想是更智能地选择初始聚类中心,以提高算法的稳定性和收敛速度。下面我们来详细介绍K均值++算法的实现。

2023-09-18 09:25:23 579

原创 PCL 平面点云 B 样条曲线拟合

在计算机视觉和几何建模领域中,曲线拟合是一项重要的任务,可以用来获取点云数据的连续性表示。本文将介绍如何使用点云库(Point Cloud Library,PCL)实现平面点云的 B 样条曲线拟合,并提供相应的源代码。接下来,加载平面点云数据并进行预处理。这里我们使用一个简单的示例点云数据,你可以根据自己的需求替换为真实的点云数据。这样,我们就完成了平面点云的 B 样条曲线拟合。你可以根据自己的实际需求调整拟合参数,以获得更好的拟合效果。最后,我们可以将拟合结果可视化,并保存拟合后的点云数据和曲面模型。

2023-09-18 00:31:28 605

原创 PCL随机选择点并计算与其最远点的距离

在本文中,我们将使用点云库(Point Cloud Library,PCL)来随机选择一个点,并计算距离它最远的点的距离。您可以从PCL官方网站下载预编译的二进制包,或者使用包管理器进行安装,具体取决于您的操作系统和偏好。请注意,这只是一个简单的示例,用于说明如何使用PCL库进行随机点选择和距离计算。希望这篇文章能帮助您理解如何使用PCL库随机选择点并计算与其最远点的距离。最后,我们计算了与最远点的距离,并将结果输出到控制台。在这个示例代码中,我们首先创建了一个包含随机点的点云对象。函数随机选择一个点。

2023-09-17 23:38:02 490

原创 PCL快速双边滤波:高效处理点云数据的滤波方法

PCL中的快速双边滤波算法可以高效地处理点云数据,本文将详细介绍该算法的原理和使用方法,并提供相应的源代码示例。对于输入的点云数据,算法首先在三维空间中计算每个点与其周围点的距离,并根据距离阈值确定每个点的邻域。对于输入的点云数据,算法首先在三维空间中计算每个点与其周围点的距离,并根据距离阈值确定每个点的邻域。然后,对于每个点,算法计算其与邻域内点的灰度差异,并根据灰度阈值来确定是否滤波该点。本文介绍了快速双边滤波算法的原理,并提供了使用PCL快速双边滤波:高效处理点云数据的滤波方法。

2023-09-17 21:36:48 692

原创 使用 PCL QVTKWidget 插件进行可视化

QVTKWidget 是 PCL 中的一个插件,它结合了 Qt 框架和 VTK(Visualization Toolkit)库,提供了一个方便的界面来显示点云数据并进行交互操作。它首先移除之前的点云数据,然后根据传入的点云数据创建一个 PCLVisualizer 可视化对象,并设置相应的渲染属性和摄像机参数。接下来,我们将创建一个基于 Qt 的窗口应用程序,并在窗口中添加一个 QVTKWidget 控件用于显示点云数据。运行程序后,你将看到一个显示点云数据的窗口。然后,我们设置了点云数据并显示主窗口。

2023-09-17 20:32:48 487

原创 Ubuntu下安装和配置PCL,以及问题解决

PCL(Point Cloud Library)是一个开源的、跨平台的点云处理库,提供了许多用于点云数据处理、滤波、分割、配准等功能的算法。本文将介绍在Ubuntu操作系统下如何安装和配置PCL,并提供一些常见问题的解决方案。

2023-09-17 17:13:09 1349

原创 基于法线微分的分割算法:基于Differential Operator Network (DON)的改进

该模块通过引入图卷积网络,利用点云之间的关系进行信息传递和聚合,从而进一步提高分割的准确性和稳定性。DON是一种基于法线微分的点云分割算法,它通过计算点云中每个点的曲率和法线变化来实现分割。然而,原始的DON算法存在一些问题,例如对于具有复杂形状的点云数据,分割结果不够准确。本文介绍了一种改进的基于法线微分的分割算法,通过引入局部特征增强和全局一致性优化模块,提高了分割结果的准确性和稳定性。在计算机视觉中,点云分割是一项重要的任务,旨在将点云数据划分为具有语义意义的子集。

2023-09-17 03:55:13 497

原创 Emacs中配置C/C++编程环境以使用PCL库

可以使用命令M-x(按住Alt键同时按下x键),然后输入c+±mode或c-mode,选择适合你的代码文件类型(C++或C)。在这里,我们假设你已经熟悉PCL库的使用,并且你知道如何在代码中包含所需的头文件和使用PCL函数。在这里,我们假设你已经熟悉PCL库的使用,并且你知道如何在代码中包含所需的头文件和使用PCL函数。一旦你成功编译你的代码,你可以在Emacs中直接运行它,或者通过终端运行生成的可执行文件。一旦你成功编译你的代码,你可以在Emacs中直接运行它,或者通过终端运行生成的可执行文件。

2023-09-17 02:38:17 519

原创 使用Open3D在PCL中显示3D标注内容

Open3D是一个用于处理三维数据的开源库,而PCL(Point Cloud Library)是另一个广泛使用的处理点云数据的库。在本文中,我们将介绍如何使用Open3D在PCL中显示3D标注内容。通过运行上面的代码,您将能够在PCL中使用Open3D显示3D标注内容。然后,我们创建了一个Open3D可视化窗口,并将Open3D点云对象添加到窗口中。首先,我们需要安装Open3D和PCL库,并确保其可用于我们的项目。最后,我们设置了可视化窗口的相机参数,并运行可视化窗口,直到关闭。

2023-09-17 02:01:56 526

原创 Visual Studio 2015+ PCL:安装与配置

Visual Studio是一款强大的集成开发环境(IDE),而PCL(Portable Class Library)是一种用于跨平台开发的库。通过按照本文的步骤,您可以安装和配置Visual Studio 2015以及使用PCL进行开发。现在,您可以构建并运行您的PCL项目了。一旦您完成了PCL的配置,您就可以开始使用它进行开发了。最后,我们输出点云中的点数。在上面的示例代码中,我们使用了PCL库的一些基本功能。这表明您的PCL项目已经成功运行,并且成功加载了PCD文件中的点云数据。对象来存储点云数据。

2023-09-17 01:28:05 595

原创 博途PLC / PLC MODBUS-RTU通讯性能优化

在博途PLC中,可以通过设置串行通信模块的参数来配置通信速率。优化数据读写方式:在MODBUS-RTU通信中,可以使用不同的功能码来读取和写入远程设备的寄存器。对于数据读取,可以使用读取多个寄存器的功能码,减少通信的次数,从而提高读取效率。优化数据读写方式:在MODBUS-RTU通信中,可以使用不同的功能码来读取和写入远程设备的寄存器。对于数据读取,可以使用读取多个寄存器的功能码,减少通信的次数,从而提高读取效率。通过以上的优化措施,可以明显提升博途PLC与PLC之间使用MODBUS-RTU通信的性能。

2023-09-16 22:52:59 757

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除