六、在Qt下通过PCL在VTK9.3.0下显示自己的pcd点云文件

news2024/10/5 0:30:02

前几天刚整理好VTK8.2.0,发现我们的项目使用的PCL自带的VTK是9.3.0的,脸黑了快
VTK8.2.0可参考该篇博文:五、在Qt下加载QVTKWidget控件(VTK8.2.0),生成Visual Studio项目,显示点云(C++)
没办法,重新搞下VTK9.3.0

区别:VTK8.2.0采用的是拖拽QVTKWidget控件进行相应的操作;
VTK9.3.0把这个控件给取消掉了,但是封装了QVTKOpenGLNativeWidget类,该类是一个自定义控件,继承了OpenGL Widget控件。使用的时候,需要拖拽一个OpenGL Widget控件然后提升为QVTKOpenGLNativeWidget即可;可以看出VTK官网是提倡用户进行自定义控件的~~

一、下载解压VTK9.3.0

我下载的是v9.3.0
在这里插入图片描述
老规矩,VTK-9.3.0-src存放源码,将下载好的源码文件解压到这里
VTK-9.3.0-build用于ALL_BUILD的时候存放路径
VTK-9.3.0-install-release用于INSTALL的时候存放路径
我只需要release不需要debug

在这里插入图片描述

附加其他内容: 既需要release又需要用到debug的操作如下:
多创建一个文件夹VTK-9.3.0-install-debug,CMake的时候build路径选择VTK-9.3.0-install-debug
1,ALL_BUILD Release x64
2,INSTALL Release
运行完之后,将VTK-9.3.0-install-debug内容剪切到VTK-9.3.0-install-release
这算是最终的Release的内容 然后重复操作再次
1,ALL_BUILD Debugx64
2,INSTALL Debug
运行完之后,VTK-9.3.0-install-debug文件夹下的内容就是最终的Debug的内容

二、CMake编译下VTK9.3.0

选好源码文件位置(E:/VTK9.3.0/VTK-9.3.0-src)和build文件位置(E:/VTK9.3.0/VTK-9.3.0-build),直接Configure一下
在这里插入图片描述

1,CMAKE_INSTALL_PREFIX

选择VTK编译之后的库存放的位置,E:/VTK9.3.0/VTK-9.3.0-install-release/
在这里插入图片描述

2,找到所有包含qt的

①VTK下面的全都设置为WANT,且版本设置为5

在这里插入图片描述

②Ungrouped Entries下的Qt路径要确定下是不是自己的Qt路径

我的这里系统默认是的Anaconda下的Qt路径,需要修改一下
在这里插入图片描述

3,再次Configure,不暴红,全是白色的即可进行Generate和Open Project操作

三、Open Project

1,生成 —> 批生成

①选择ALL_BUILD Release x64生成

在这里插入图片描述
时间有点久,生成完之后记得把 **√** 给取消掉哈

②选择INSTALL Release x64生成

在这里插入图片描述
这个比较快

生成完成之后可以看到文件夹下(E:\VTK9.3.0\VTK-9.3.0-install-release)多出来四个文件夹
ps:VTK8.2.0会生成五个文件夹,多一个plugins
在这里插入图片描述

2,配置VTK属性表

新建一个Qt项目,例如:VTK9.3.0
新建一个属性表,例如:vtk930,用于配置VTK
新建一个属性表,例如:pcl_new_vtk,用于配置PCL

①VC++目录

包含目录E:\VTK9.3.0\VTK-9.3.0-install-release\include\vtk-9.3
在这里插入图片描述
库目录E:\VTK9.3.0\VTK-9.3.0-install-release\lib
在这里插入图片描述

②链接器 --> 输入 --> 附加依赖项

也就是文件夹E:\VTK9.3.0\VTK-9.3.0-install-release\lib里面所有lib文件的具体名称

在这里插入图片描述
敲黑板!!!小技巧:
打开cmd
输入命令:
E:
cd E:\VTK9.3.0\VTK-9.3.0-install-release\lib
DIR *.lib*/b>YY.txt // 语句的意思是将此路径下的所后缀是.lib*的文件(*.lib**为通配符,最后一个也有一个*哈),以名称(/b)的形式写入到YY.txt
在这里插入图片描述
YY.txt里面的内容复制到附加依赖项即可
在这里插入图片描述

vtkcgns-9.3.lib
vtkChartsCore-9.3.lib
vtkCommonColor-9.3.lib
vtkCommonComputationalGeometry-9.3.lib
vtkCommonCore-9.3.lib
vtkCommonDataModel-9.3.lib
vtkCommonExecutionModel-9.3.lib
vtkCommonMath-9.3.lib
vtkCommonMisc-9.3.lib
vtkCommonSystem-9.3.lib
vtkCommonTransforms-9.3.lib
vtkDICOMParser-9.3.lib
vtkDomainsChemistry-9.3.lib
vtkDomainsChemistryOpenGL2-9.3.lib
vtkdoubleconversion-9.3.lib
vtkexodusII-9.3.lib
vtkexpat-9.3.lib
vtkFiltersAMR-9.3.lib
vtkFiltersCellGrid-9.3.lib
vtkFiltersCore-9.3.lib
vtkFiltersExtraction-9.3.lib
vtkFiltersFlowPaths-9.3.lib
vtkFiltersGeneral-9.3.lib
vtkFiltersGeneric-9.3.lib
vtkFiltersGeometry-9.3.lib
vtkFiltersGeometryPreview-9.3.lib
vtkFiltersHybrid-9.3.lib
vtkFiltersHyperTree-9.3.lib
vtkFiltersImaging-9.3.lib
vtkFiltersModeling-9.3.lib
vtkFiltersParallel-9.3.lib
vtkFiltersParallelImaging-9.3.lib
vtkFiltersPoints-9.3.lib
vtkFiltersProgrammable-9.3.lib
vtkFiltersReduction-9.3.lib
vtkFiltersSelection-9.3.lib
vtkFiltersSMP-9.3.lib
vtkFiltersSources-9.3.lib
vtkFiltersStatistics-9.3.lib
vtkFiltersTensor-9.3.lib
vtkFiltersTexture-9.3.lib
vtkFiltersTopology-9.3.lib
vtkFiltersVerdict-9.3.lib
vtkfmt-9.3.lib
vtkfreetype-9.3.lib
vtkGeovisCore-9.3.lib
vtkgl2ps-9.3.lib
vtkglew-9.3.lib
vtkGUISupportQt-9.3.lib
vtkGUISupportQtQuick-9.3.lib
vtkGUISupportQtSQL-9.3.lib
vtkhdf5-9.3.lib
vtkhdf5_hl-9.3.lib
vtkImagingColor-9.3.lib
vtkImagingCore-9.3.lib
vtkImagingFourier-9.3.lib
vtkImagingGeneral-9.3.lib
vtkImagingHybrid-9.3.lib
vtkImagingMath-9.3.lib
vtkImagingMorphological-9.3.lib
vtkImagingSources-9.3.lib
vtkImagingStatistics-9.3.lib
vtkImagingStencil-9.3.lib
vtkInfovisCore-9.3.lib
vtkInfovisLayout-9.3.lib
vtkInteractionImage-9.3.lib
vtkInteractionStyle-9.3.lib
vtkInteractionWidgets-9.3.lib
vtkIOAMR-9.3.lib
vtkIOAsynchronous-9.3.lib
vtkIOCellGrid-9.3.lib
vtkIOCesium3DTiles-9.3.lib
vtkIOCGNSReader-9.3.lib
vtkIOChemistry-9.3.lib
vtkIOCityGML-9.3.lib
vtkIOCONVERGECFD-9.3.lib
vtkIOCore-9.3.lib
vtkIOEnSight-9.3.lib
vtkIOExodus-9.3.lib
vtkIOExport-9.3.lib
vtkIOExportGL2PS-9.3.lib
vtkIOExportPDF-9.3.lib
vtkIOFLUENTCFF-9.3.lib
vtkIOGeometry-9.3.lib
vtkIOHDF-9.3.lib
vtkIOImage-9.3.lib
vtkIOImport-9.3.lib
vtkIOInfovis-9.3.lib
vtkIOIOSS-9.3.lib
vtkIOLegacy-9.3.lib
vtkIOLSDyna-9.3.lib
vtkIOMINC-9.3.lib
vtkIOMotionFX-9.3.lib
vtkIOMovie-9.3.lib
vtkIONetCDF-9.3.lib
vtkIOOggTheora-9.3.lib
vtkIOParallel-9.3.lib
vtkIOParallelXML-9.3.lib
vtkIOPLY-9.3.lib
vtkIOSegY-9.3.lib
vtkIOSQL-9.3.lib
vtkioss-9.3.lib
vtkIOTecplotTable-9.3.lib
vtkIOVeraOut-9.3.lib
vtkIOVideo-9.3.lib
vtkIOXML-9.3.lib
vtkIOXMLParser-9.3.lib
vtkjpeg-9.3.lib
vtkjsoncpp-9.3.lib
vtkkissfft-9.3.lib
vtklibharu-9.3.lib
vtklibproj-9.3.lib
vtklibxml2-9.3.lib
vtkloguru-9.3.lib
vtklz4-9.3.lib
vtklzma-9.3.lib
vtkmetaio-9.3.lib
vtknetcdf-9.3.lib
vtkogg-9.3.lib
vtkParallelCore-9.3.lib
vtkParallelDIY-9.3.lib
vtkpng-9.3.lib
vtkpugixml-9.3.lib
vtkRenderingAnnotation-9.3.lib
vtkRenderingCellGrid-9.3.lib
vtkRenderingContext2D-9.3.lib
vtkRenderingContextOpenGL2-9.3.lib
vtkRenderingCore-9.3.lib
vtkRenderingFreeType-9.3.lib
vtkRenderingGL2PSOpenGL2-9.3.lib
vtkRenderingHyperTreeGrid-9.3.lib
vtkRenderingImage-9.3.lib
vtkRenderingLabel-9.3.lib
vtkRenderingLICOpenGL2-9.3.lib
vtkRenderingLOD-9.3.lib
vtkRenderingOpenGL2-9.3.lib
vtkRenderingQt-9.3.lib
vtkRenderingSceneGraph-9.3.lib
vtkRenderingUI-9.3.lib
vtkRenderingVolume-9.3.lib
vtkRenderingVolumeOpenGL2-9.3.lib
vtkRenderingVtkJS-9.3.lib
vtksqlite-9.3.lib
vtksys-9.3.lib
vtkTestingRendering-9.3.lib
vtktheora-9.3.lib
vtktiff-9.3.lib
vtkverdict-9.3.lib
vtkViewsContext2D-9.3.lib
vtkViewsCore-9.3.lib
vtkViewsInfovis-9.3.lib
vtkViewsQt-9.3.lib
vtkWrappingTools-9.3.lib
vtkzlib-9.3.lib

在这里插入图片描述

3,配置PCL属性表

①VC++目录

包含目录:
E:\Program Files\PCL 1.14.0\bin
E:\Program Files\PCL 1.14.0\3rdParty\Boost\include\boost-1_84
E:\Program Files\PCL 1.14.0\3rdParty\Eigen3\include\eigen3
E:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Include
E:\Program Files\PCL 1.14.0\3rdParty\FLANN\include
E:\Program Files\PCL 1.14.0\3rdParty\Qhull\include
E:\Program Files\PCL 1.14.0\include\pcl-1.14
发现没,没有配置PCL自带的VTK,这点要注意哈,因为之前的VTK配置过了,这里不适应PCL自带的VTK了
在这里插入图片描述
库目录
E:\Program Files\PCL 1.14.0\3rdParty\OpenNI2\Lib
E:\Program Files\PCL 1.14.0\3rdParty\Qhull\lib
E:\Program Files\PCL 1.14.0\3rdParty\FLANN\lib
E:\Program Files\PCL 1.14.0\3rdParty\Boost\lib
E:\Program Files\PCL 1.14.0\lib
发现了吧,也没有配置PCL自带的VTK!
在这里插入图片描述

②链接器 --> 输入 --> 附加依赖项

也就是你安装的PCL所在文件夹E:\Program Files\PCL 1.14.0\lib里面所有lib文件的具体名称
在这里插入图片描述

配置VTK属性表中有所介绍,这里就不再赘述了,

在这里插入图片描述
在这里插入图片描述

vtkcgns-9.3.lib
vtkChartsCore-9.3.lib
vtkCommonColor-9.3.lib
vtkCommonComputationalGeometry-9.3.lib
vtkCommonCore-9.3.lib
vtkCommonDataModel-9.3.lib
vtkCommonExecutionModel-9.3.lib
vtkCommonMath-9.3.lib
vtkCommonMisc-9.3.lib
vtkCommonSystem-9.3.lib
vtkCommonTransforms-9.3.lib
vtkDICOMParser-9.3.lib
vtkDomainsChemistry-9.3.lib
vtkDomainsChemistryOpenGL2-9.3.lib
vtkdoubleconversion-9.3.lib
vtkexodusII-9.3.lib
vtkexpat-9.3.lib
vtkFiltersAMR-9.3.lib
vtkFiltersCellGrid-9.3.lib
vtkFiltersCore-9.3.lib
vtkFiltersExtraction-9.3.lib
vtkFiltersFlowPaths-9.3.lib
vtkFiltersGeneral-9.3.lib
vtkFiltersGeneric-9.3.lib
vtkFiltersGeometry-9.3.lib
vtkFiltersGeometryPreview-9.3.lib
vtkFiltersHybrid-9.3.lib
vtkFiltersHyperTree-9.3.lib
vtkFiltersImaging-9.3.lib
vtkFiltersModeling-9.3.lib
vtkFiltersParallel-9.3.lib
vtkFiltersParallelImaging-9.3.lib
vtkFiltersPoints-9.3.lib
vtkFiltersProgrammable-9.3.lib
vtkFiltersReduction-9.3.lib
vtkFiltersSelection-9.3.lib
vtkFiltersSMP-9.3.lib
vtkFiltersSources-9.3.lib
vtkFiltersStatistics-9.3.lib
vtkFiltersTensor-9.3.lib
vtkFiltersTexture-9.3.lib
vtkFiltersTopology-9.3.lib
vtkFiltersVerdict-9.3.lib
vtkfmt-9.3.lib
vtkfreetype-9.3.lib
vtkGeovisCore-9.3.lib
vtkgl2ps-9.3.lib
vtkglew-9.3.lib
vtkGUISupportQt-9.3.lib
vtkGUISupportQtQuick-9.3.lib
vtkGUISupportQtSQL-9.3.lib
vtkhdf5-9.3.lib
vtkhdf5_hl-9.3.lib
vtkImagingColor-9.3.lib
vtkImagingCore-9.3.lib
vtkImagingFourier-9.3.lib
vtkImagingGeneral-9.3.lib
vtkImagingHybrid-9.3.lib
vtkImagingMath-9.3.lib
vtkImagingMorphological-9.3.lib
vtkImagingSources-9.3.lib
vtkImagingStatistics-9.3.lib
vtkImagingStencil-9.3.lib
vtkInfovisCore-9.3.lib
vtkInfovisLayout-9.3.lib
vtkInteractionImage-9.3.lib
vtkInteractionStyle-9.3.lib
vtkInteractionWidgets-9.3.lib
vtkIOAMR-9.3.lib
vtkIOAsynchronous-9.3.lib
vtkIOCellGrid-9.3.lib
vtkIOCesium3DTiles-9.3.lib
vtkIOCGNSReader-9.3.lib
vtkIOChemistry-9.3.lib
vtkIOCityGML-9.3.lib
vtkIOCONVERGECFD-9.3.lib
vtkIOCore-9.3.lib
vtkIOEnSight-9.3.lib
vtkIOExodus-9.3.lib
vtkIOExport-9.3.lib
vtkIOExportGL2PS-9.3.lib
vtkIOExportPDF-9.3.lib
vtkIOFLUENTCFF-9.3.lib
vtkIOGeometry-9.3.lib
vtkIOHDF-9.3.lib
vtkIOImage-9.3.lib
vtkIOImport-9.3.lib
vtkIOInfovis-9.3.lib
vtkIOIOSS-9.3.lib
vtkIOLegacy-9.3.lib
vtkIOLSDyna-9.3.lib
vtkIOMINC-9.3.lib
vtkIOMotionFX-9.3.lib
vtkIOMovie-9.3.lib
vtkIONetCDF-9.3.lib
vtkIOOggTheora-9.3.lib
vtkIOParallel-9.3.lib
vtkIOParallelXML-9.3.lib
vtkIOPLY-9.3.lib
vtkIOSegY-9.3.lib
vtkIOSQL-9.3.lib
vtkioss-9.3.lib
vtkIOTecplotTable-9.3.lib
vtkIOVeraOut-9.3.lib
vtkIOVideo-9.3.lib
vtkIOXML-9.3.lib
vtkIOXMLParser-9.3.lib
vtkjpeg-9.3.lib
vtkjsoncpp-9.3.lib
vtkkissfft-9.3.lib
vtklibharu-9.3.lib
vtklibproj-9.3.lib
vtklibxml2-9.3.lib
vtkloguru-9.3.lib
vtklz4-9.3.lib
vtklzma-9.3.lib
vtkmetaio-9.3.lib
vtknetcdf-9.3.lib
vtkogg-9.3.lib
vtkParallelCore-9.3.lib
vtkParallelDIY-9.3.lib
vtkpng-9.3.lib
vtkpugixml-9.3.lib
vtkRenderingAnnotation-9.3.lib
vtkRenderingCellGrid-9.3.lib
vtkRenderingContext2D-9.3.lib
vtkRenderingContextOpenGL2-9.3.lib
vtkRenderingCore-9.3.lib
vtkRenderingFreeType-9.3.lib
vtkRenderingGL2PSOpenGL2-9.3.lib
vtkRenderingHyperTreeGrid-9.3.lib
vtkRenderingImage-9.3.lib
vtkRenderingLabel-9.3.lib
vtkRenderingLICOpenGL2-9.3.lib
vtkRenderingLOD-9.3.lib
vtkRenderingOpenGL2-9.3.lib
vtkRenderingQt-9.3.lib
vtkRenderingSceneGraph-9.3.lib
vtkRenderingUI-9.3.lib
vtkRenderingVolume-9.3.lib
vtkRenderingVolumeOpenGL2-9.3.lib
vtkRenderingVtkJS-9.3.lib
vtksqlite-9.3.lib
vtksys-9.3.lib
vtkTestingRendering-9.3.lib
vtktheora-9.3.lib
vtktiff-9.3.lib
vtkverdict-9.3.lib
vtkViewsContext2D-9.3.lib
vtkViewsCore-9.3.lib
vtkViewsInfovis-9.3.lib
vtkViewsQt-9.3.lib
vtkWrappingTools-9.3.lib
vtkzlib-9.3.lib

在这里插入图片描述

4,配置系统环境变量

VTK:E:\VTK9.3.0\VTK-9.3.0-install-release\bin
PCL:E:\Program Files\PCL 1.14.0
在这里插入图片描述
在这里插入图片描述

四、QVTKOpenGLNativeWidget控件

拖拽一个openGLWidget控件
我的是QMainWindow,这里就添加一个菜单项进行打开pcd文件
在这里插入图片描述
右击openGLWidget控件,选择提升为
在这里插入图片描述
提升为QVTKOpenGLNativeWidget控件
基类名称:QOpenGLWidget
提升的类名称:QVTKOpenGLNativeWidget
头文件:qvtkopenglnativewidget.h
在这里插入图片描述
我们也可以在E:\VTK9.3.0\VTK-9.3.0-install-release\include\vtk-9.3下也找到这个头文件
在这里插入图片描述

最终控件的效果如下
在这里插入图片描述

五、通过PCL在QVTKOpenGLNativeWidget中显示PCD文件

我的测试项目结构如下
在这里插入图片描述

1,main.cpp

压根没动,默认即可

#include "VTK930.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    VTK930 w;
    w.show();
    return a.exec();
}

2,VTK930.h

#pragma once

#include "ui_VTK930.h"

#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <vtkGenericOpenGLRenderWindow.h>


class VTK930 : public QMainWindow {
  Q_OBJECT

 public:
  VTK930(QWidget *parent = nullptr);
  ~VTK930();

 private:
  Ui::VTK930Class ui;

  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud;
  boost::shared_ptr<pcl::visualization::PCLVisualizer> view;

  void initialVtkWidget();

 private slots:
  void onOpen();
};

3,VTK930.cpp

#include "VTK930.h"
#include <QFileDialog>

VTK930::VTK930(QWidget *parent) : QMainWindow(parent) {
  ui.setupUi(this);

  initialVtkWidget();

  connect(ui.actionOpen, SIGNAL(triggered()), this, SLOT(onOpen()));
}

VTK930::~VTK930() {}

void VTK930::onOpen() {

  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(
      new pcl::PointCloud<pcl::PointXYZ>());  
  QString fileName = QFileDialog::getOpenFileName(this, "Open PointCloud", ".",
                                                  "Open PCD files(*.pcd)");
  if (fileName == "") return;
  pcl::io::loadPCDFile(fileName.toStdString(), *cloud);
  view->addPointCloud(cloud, "cloud");
  view->resetCamera(); 
  view->spin();
  ui.openGLWidget->update();
}

void VTK930::initialVtkWidget() {
  vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
  vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow =
      vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
  renderWindow->AddRenderer(renderer);
  view.reset(new pcl::visualization::PCLVisualizer(renderer, renderWindow,
                                                   "viewer", false));
  view->setupInteractor(ui.openGLWidget->interactor(),
                        ui.openGLWidget->renderWindow());
  ui.openGLWidget->setRenderWindow(view->getRenderWindow());
}

六、运行效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、其他

经过这几天的学习,发现了很多问题,网上出现QTWidget控件的大都是VTK8.2.0版本之前的,而且VTK9.3.0与之前的版本确实有很大的差异,还得去花功夫认真研究学习

E:\VTK9.3.0\VTK-9.3.0-install-release\include\vtk-9.3下的QVTKOpenGLWindow.h
这个头文件就跟之前控件(QVTKWidget)所含有的函数方法有很多差异的地方,需要多研究学习,加油吧!!!
在这里插入图片描述

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

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

相关文章

如何基于项目人力和管线方案选择FGUI和UGUI

1&#xff09;如何基于项目人力和管线方案选择FGUI和UGUI 2&#xff09;TMP字体出包丢失字体描边 3&#xff09;如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用 4&#xff09;为什么我的水这么干净&#xff0c;和UE教程里的有差别 这是第390篇UWA技术知识分享的…

ECharts Y轴倒置,X轴顶部,图表反向

1.配置&#xff1a; xAxis:{position: ‘top’} //让x轴在顶部 yAxis: { inverse:true} //让Y轴坐标为反向坐标 2.将数据的只转换成负值&#xff08;不建议&#xff09;&#xff0c;显示的时候formatter里面在显示正值&#xff08;不建议&#xff09;

强化安全新篇章:韶关石油化工可燃气体报警器年检解析

韶关&#xff0c;这座位于广东省北部的城市&#xff0c;近年来在石油化工行业取得了显著的发展。 随着一批批大型石化企业的进驻和投产&#xff0c;韶关不仅成为了区域性的石化产业基地&#xff0c;也为地方经济带来了强劲的增长动力。 然而&#xff0c;随着石化产业的快速发…

使用asyncua模块的subscribe_data_change监控opcua的Server节点数据变化

报错信息如下&#xff1b; ERROR:asyncua.common.subscription:DataChange subscription created but handler has no datachange_notification method 上述报错原因在于创建监控句柄SubscriptionHandler类时&#xff0c;节点数据变化的函数名称有问题&#xff0c;不是默认的da…

【NLP练习】Transformer实战-单词预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 任务&#xff1a;自定义输入一段英文文本进行预测 一、定义模型 from tempfile import TemporaryDirectory from typing import Tuple from torch import nn…

DVWA 靶场 Open HTTP Redirect 通关解析

前言 DVWA代表Damn Vulnerable Web Application&#xff0c;是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序&#xff0c;旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…

Nuxt快速学习开发---Nuxt3视图Views

Views Nuxt提供了几个组件层来实现应用程序的用户界面 默认情况下&#xff0c;Nuxt 会将app.vue文件视为入口点并为应用程序的每个路由呈现其内容 应用程序.vue <template> <div> <h1>Welcome to the homepage</h1> </div> </template> …

湖南科技大学24计算机考研情况,软工学硕考数二,分数线290分,录取均分321分!

湖南科技大学&#xff08;Hunan University of Science and Technology&#xff09;坐落在伟人故里、人文圣地湘潭&#xff0c;处于长株潭核心区域&#xff0c;比邻湘潭九华经济技术开发区&#xff08;国家级&#xff09;&#xff0c;是应急管理部、国家国防科技工业局与湖南省…

复分析——第6章—— Γ 函数和 ζ 函数(E.M. Stein R. Shakarchi)

第6章 Γ函数和Ζ函数(The Gamma and Zeta Functions) 毫不夸张地说&#xff0c;Γ函数和Ζ函数是数学中最重要的非初等函数之一。Γ函数在自然界中无处不在。它出现在大量计算中&#xff0c;并以分析中出现的大量恒等式为特征。对此的部分解释可能在于Γ函数的基本结构特性&…

Nginx HTTPS(证书) 部署实战

一、申请证书与认证 要搭建https服务首先需有SSL证书&#xff0c;证书通常是在第三方申请&#xff0c;在阿里云的安全服务中有SSL证书这一项&#xff0c;可以在里面申请免费的证书。也可以在自己电脑中生成&#xff0c;虽然也能完成加密&#xff0c;但是浏览器是不认可的&…

编译 CanMV 固件

前言 上一章节中已经搭建好了基于 CanMV 的 C 开发环境&#xff0c;这么一来便可以进行基于 C 语言和 FreeRTOS 的应用开发或者编译基于 MicroPython 语法的应用开发方式所需的 CanMV 固件&#xff0c;本 章就将带领读者体验一下 CanMV 固件的编译流程。 本章分为如下几个小节&…

Java面试题:mysql执行速度慢的原因和优化

Sql语句执行速度慢 原因 聚合查询 多表查询 表数据量过大查询 深度分页查询 分析 sql的执行计划 可以使用EXPLAIN或者DESC获取Mysql如何执行SELECT语句的信息 直接在select语句前加关键字explain/desc 得到一个执行信息表 信息字段分析 possible_keys:可能使用到的索…

云计算【第一阶段(18)】磁盘管理与文件系统

一、磁盘基础 磁盘&#xff08;disk&#xff09;是指利用磁记录技术存储数据的存储器。 磁盘是计算机主要的存储介质&#xff0c;可以存储大量的二进制数据&#xff0c;并且断电后也能保持数据不丢失。 早期计算机使用的磁盘是软磁盘&#xff08;Floppy Disk&#xff0c;简称…

海外社媒网站抓取经验总结:如何更高效实现网页抓取?

有效的网络抓取需要采取战略方法来克服挑战并确保最佳数据提取。让我们深入研究一些关键实践&#xff0c;这些实践将使您能够掌握复杂的网络抓取。 一、了解 Web 抓取检测 在深入探讨最佳实践之前&#xff0c;让我们先了解一下网站如何识别和抵御网络爬虫。了解您在这一过程中…

深度神经网络一

文章目录 深度神经网络 (DNN)1. 概述2. 基本概念3. 网络结构 深度神经网络的层次结构详细讲解1. 输入层&#xff08;Input Layer&#xff09;2. 隐藏层&#xff08;Hidden Layers&#xff09;3. 输出层&#xff08;Output Layer&#xff09;整体流程深度神经网络的优点深度神经…

[行业原型] 线上药房管理系统

​行业背景 据中国网上药店理事会调查报告显示&#xff1a;2011年&#xff0c;医药B2C的规模达到4亿元&#xff0c;仅出现5家销售额达5000万元的网上药店。而2011年医药行业的市场规模达到3718亿&#xff0c;线上药品的销售额还不到网下药店的一个零头&#xff0c;还有很大的发…

C++类基本常识

文章目录 一、类的默认方法二、类的成员变量初始化1 类的成员变量有三种初始化方法&#xff1a;2 成员变量初始化顺序3 const和static的初始化 三、C内存区域四、const和static 一、类的默认方法 C的类都会有8个默认方法 默认构造函数默认拷贝构造函数默认析构函数默认重载赋…

C语言基础关键字的含义和使用方法

​关键字在C语言中扮演着非常重要的角色&#xff0c;它们定义了语言的基本构造和语法规则&#xff0c;通过使用关键字&#xff0c;开发者可以创建变量、定义数据类型、控制程序流程&#xff08;如循环和条件判断&#xff09;、声明函数等。由于这些字是保留的&#xff0c;所以编…

springSecurity(二):实现登入获取token与解析token

登入生成token 主要思想 springSecurity使用UsernamePasswordAuthenticationToken类来封装用户名和密码的认证信息 代码实现 发起登入请求后&#xff0c;进入到login()方法 /*** 在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,* 所以需要在Secur…

Polyp-DDPM: Diffusion-Based Semantic Polyp Synthesis for Enhanced Segmentation

Polyp- ddpm:基于扩散的语义Polyp合成增强分割 摘要&#xff1a; 本研究介绍了一种基于扩散的方法Polyp-DDPM&#xff0c;该方法用于生成假面条件下息肉的逼真图像&#xff0c;旨在增强胃肠道息肉的分割。我们的方法解决了与医学图像相关的数据限制、高注释成本和隐私问题的挑…