当前位置: 首页 > news >正文

郴州市宜章网站建设太原做手机网站建设

郴州市宜章网站建设,太原做手机网站建设,徐州百度快照优化,重庆中小企业网站建设公司这篇博文是接着VS2022联合Qt5开发学习7#xff08;QT5.12.3联合VTK在VS2022上开发医学图像项目2——十字叉标注#xff09;-CSDN博客这篇博文延伸开发医学图像的显示渲染相关项目#xff0c;主要介绍的是在之前显示的图像上增加滑块控制。 用到的内容有#xff1a; VS2022…这篇博文是接着VS2022联合Qt5开发学习7QT5.12.3联合VTK在VS2022上开发医学图像项目2——十字叉标注-CSDN博客这篇博文延伸开发医学图像的显示渲染相关项目主要介绍的是在之前显示的图像上增加滑块控制。 用到的内容有 VS2022联合Qt5开发学习5QT5.12.3联合VTK在VS2022上开发医学图像项目_vs2022 qt5.12-CSDN博客 VS2022联合Qt5开发学习7QT5.12.3联合VTK在VS2022上开发医学图像项目2——十字叉标注-CSDN博客 13. VTK采集点法向量标记、平面切割-CSDN博客 大家可以先提前瞅一眼或者直接读这一篇博文到了要用到的地方我会都标上的。 1. ScrollBar控制jpg图像对比度 下面这个例子是个纯粹的Qt项目用于ScrollBar控制图像对比度。先用这个小例子来熟悉一下ScrollBar的用法吧。 步骤一新建一个Qt Widgets Application项目打开UI界面。双击.ui文件。如图所示在界面上拖拽一个label插件一个ScrollBar插件调整到合适大小。 步骤二回到VS窗口在VS解决方案中选中方案右键-Qt-Refresh intelliSense进行刷新。 步骤三在VS解决方案中右键 .ui 文件 - 编译会生成对应的 ui_mainwindow_ScrollBar.h 头文件。 步骤四打开mainwindow_ScrollBar.h、mainwindow_ScrollBar.cpp两个文件添加相关功能。 mainwindow_ScrollBar.h #pragma once#include QtWidgets/QMainWindow #include ui_mainwindow_ScrollBar.hclass mainwindow_ScrollBar : public QMainWindow {Q_OBJECTpublic:mainwindow_ScrollBar(QWidget *parent nullptr);~mainwindow_ScrollBar();private:Ui::mainwindow_ScrollBarClass ui;private slots:void updateContrast(int value);private:QImage originalImage;void applyContrast(int value);};mainwindow_ScrollBar.cpp 图像地址的话自己根据自己图像在的地址改一下我这里就用了万能的lena图了。Lena我学习计算机可视化路上极其重要的一个女人哈哈哈。 #include mainwindow_ScrollBar.h #include QVBoxLayoutmainwindow_ScrollBar::mainwindow_ScrollBar(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);//读取原始图像originalImage.load(lena.jpg);// 设置对比度范围和初始值ui.contrastScrollBar-setRange(-100, 100);ui.contrastScrollBar-setValue(0);// 连接信号和槽connect(ui.contrastScrollBar, QScrollBar::valueChanged, this, mainwindow_ScrollBar::updateContrast);// 显示原始图像ui.imageLabel-setPixmap(QPixmap::fromImage(originalImage)); }mainwindow_ScrollBar::~mainwindow_ScrollBar() {}void mainwindow_ScrollBar::updateContrast(int value) {// 更新对比度并应用到图像applyContrast(value); }void mainwindow_ScrollBar::applyContrast(int value) {// 复制原始图像QImage adjustedImage originalImage;// 调整对比度for (int y 0; y adjustedImage.height(); y) {for (int x 0; x adjustedImage.width(); x) {QRgb pixel adjustedImage.pixel(x, y);// 获取原始颜色分量int red qRed(pixel);int green qGreen(pixel);int blue qBlue(pixel);// 调整颜色分量red qBound(0, red value, 255);green qBound(0, green value, 255);blue qBound(0, blue value, 255);// 设置调整后的颜色adjustedImage.setPixel(x, y, qRgb(red, green, blue));}}// 显示调整后的图像ui.imageLabel-setPixmap(QPixmap::fromImage(adjustedImage)); }运行结果 ScrollBar控制对比度 2.ScrollBar控制STL图像切割面 这个项目我是接着前面的博客13. VTK采集点法向量标记、平面切割-CSDN博客的平面切割项目以及VS2022联合Qt5开发学习7QT5.12.3联合VTK在VS2022上开发医学图像项目2——十字叉标注_qt vs开发-CSDN博客中的STL显示项目做的用的VTK版本是VTK7也就是说显示图像我用的是QVTKWidget这个控件。如果是用的VTK9或者其他更高版本的VTK解决方案参考VS2022联合Qt5开发学习5QT5.12.3联合VTK在VS2022上开发医学图像项目_vs2022 qt5.12-CSDN博客里面我有详细写怎么用哈这里就不赘述了。之前博客里介绍的平面切割项目是一个纯粹的VTK项目这里我加入了Qt界面以及Qscroll控件用于控制切割面的相关参数主体设计参考了前面博客里的STL显示项目。 步骤一双击.ui文件。如图所示在界面上拖拽一个qvtkWidget插件两个ScrollBar插件调整到合适大小。 ​ 步骤二回到VS窗口在VS解决方案中选中方案右键-Qt-Refresh intelliSense进行刷新。 步骤三在VS解决方案中右键 .ui 文件 - 编译会生成对应的 ui_mainwindow_ScrollBar.h 头文件。 步骤四打开STLshowtest_vtk7.h、STLshowtest_vtk7.cpp两个文件添加相关功能。 STLshowtest_vtk7.h #pragma once#include QtWidgets/QMainWindow #include ui_STLshowtest_vtk7.h#include vtkAutoInit.h #include vtkBMPReader.h #include vtkFloatArray.h #include vtkImageActor.h #include vtkImageChangeInformation.h #include vtkImageData.h #include vtkImageImport.h #include vtkImageViewer2.h #include vtkInteractorStyleImage.h #include vtkJPEGReader.h #include vtkLookupTable.h #include vtkMetaImageReader.h #include vtkNamedColors.h #include vtkNew.h #include vtkPointData.h #include vtkPolyDataMapper.h #include vtkProperty.h #include vtkRenderWindow.h #include vtkRenderWindowInteractor.h #include vtkRenderer.h #include vtkSTLReader.h #include vtkSmartPointer.h #include vtkXMLImageDataWriter.h #include vtkCutter.h #include vtkPlane.h #include vtkProbeFilter.h #include vtkDataSetMapper.h#include vtkAutoInit.h VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle);class STLshowtest_vtk7 : public QMainWindow {Q_OBJECTpublic:STLshowtest_vtk7(QWidget *parent nullptr);~STLshowtest_vtk7();private:Ui::STLshowtest_vtk7Class ui;private:vtkSmartPointervtkSTLReader obj;vtkSmartPointervtkPlane plane;vtkSmartPointervtkPolyData polyData;vtkSmartPointervtkCutter planeCut;vtkSmartPointervtkProbeFilter probe;vtkSmartPointervtkDataSetMapper cutMapper;vtkSmartPointervtkPointData pData;vtkSmartPointervtkActor cutActor;vtkSmartPointervtkRenderer renderer;vtkSmartPointervtkRenderWindow window;};STLshowtest_vtk7.cpp #include STLshowtest_vtk7.h#include QDebug #include QFileDialog#include vtkImageBlend.h #include vtkImageCanvasSource2D.h #include vtkImageChangeInformation.h #include vtkImageData.h #include vtkImageIterator.h #include vtkImageLuminance.h #include vtkImageStencil.h #include vtkImageStencilData.h #include vtkImageViewer.h #include vtkInteractorStyleImage.h #include vtkPNGReader.h #include vtkRenderWindow.h #include vtkRenderWindowInteractor.h #includevtkLine.h #include vtkCutter.h #include vtkPlane.h #include vtkProbeFilter.h #include vtkDataSetMapper.hSTLshowtest_vtk7::STLshowtest_vtk7(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);// 创建vtkRenderer对象renderer vtkSmartPointervtkRenderer::New();// 创建vtkRenderWindow对象window vtkSmartPointervtkRenderWindow::New();// 设置vtkRenderWindow对象的背景色renderer-SetBackground(.0, .0, .0);// 将vtkRenderer对象添加到vtkRenderWindow对象中window-AddRenderer(renderer);// 设置qvtkWidget对象的渲染窗口ui.qvtkWidget-SetRenderWindow(window);// 创建vtkSTLReader对象obj vtkSmartPointervtkSTLReader::New();// 设置vtkSTLReader对象的文件名obj-SetFileName(D:\\ct\\20201102113826651_3d\\femur.stl);// 更新vtkSTLReader对象obj-Update();// 获取vtkSTLReader对象输出的vtkPolyData对象polyData obj-GetOutput();// 创建vtkPlane对象plane vtkSmartPointervtkPlane::New();// 设置vtkPlane对象的原点和法线向量plane-SetOrigin(polyData-GetCenter());plane-SetNormal(-0.287, 0, 0.9579);// 创建vtkCutter对象planeCut vtkSmartPointervtkCutter::New();// 设置vtkCutter对象的参数planeCut-SetInputConnection(obj-GetOutputPort());planeCut-SetCutFunction(plane);planeCut-SetValue(0, 50);planeCut-GenerateValues(20, 0, 500);// 创建vtkProbeFilter对象probe vtkSmartPointervtkProbeFilter::New();// 设置vtkProbeFilter对象的参数probe-SetInputConnection(planeCut-GetOutputPort());probe-SetSourceConnection(obj-GetOutputPort());// 创建vtkDataSetMapper对象cutMapper vtkSmartPointervtkDataSetMapper::New();// 设置vtkDataSetMapper对象的参数cutMapper-SetInputConnection(probe-GetOutputPort());cutMapper-ScalarVisibilityOn();// 创建vtkActor对象cutActor vtkSmartPointervtkActor::New();// 设置vtkActor对象的参数cutActor-SetMapper(cutMapper);// 将vtkActor对象添加到vtkRenderer对象中renderer-AddActor(cutActor);// 设置QScrollBar对象的范围ui.scrollbar-setRange(0, 50);// 将QScrollBar对象与vtkCutter对象的切割平面数量连接起来QObject::connect(ui.scrollbar, QScrollBar::valueChanged, [](int value) {// 设置vtkCutter对象的切割平面数量planeCut-GenerateValues(value, 0, 500);// 更新vtkRenderWindow对象window-Render();});ui.h_scrollBar-setRange(0, 500);// 将QSlider对象与vtkCutter对象的切割平面位置连接起来QObject::connect(ui.h_scrollBar, QScrollBar::valueChanged, [](int value) {// 设置vtkCutter对象的切割平面位置planeCut-SetValue(0, value);// 更新vtkRenderWindow对象window-Render();});}STLshowtest_vtk7::~STLshowtest_vtk7() {}运行结果 scrollbar控制切面形状及数量 备注 我这里的代码因为是直接从我之前的项目搬过来加的人比较懒。。。所以有一些代码冗余比较明显的我都删掉了要是用的的时候还发现有一些多余的就动动你们的爪爪把不必要的代码删掉就好了。 最后如果你觉得这篇文对你有帮助请给博主点赞收藏评论三连hhh
http://www.zqtcl.cn/news/802936/

相关文章:

  • 网站毕业设计开题报告wordpress账户密码忘记
  • 做网站学费多少钱0基础学app程序开发
  • 忻州建站公司辽宁省建设执业信息网官网
  • 北京网站建设 云智互联集安网站建设
  • 无锡市建设培训中心网站私人订制软件平台
  • 宁波网站设计推荐荣盛网络招远网站制作
  • 网站开发维护运维室内设计师怎么找
  • 网站建设如何增加二级页面学网络工程好找工作吗
  • 网站设计的研究方法有哪些wordpress样式路径
  • 网站建设与网页设计...南通网站seo报价
  • 网站开发毕业设计说明书范文关键词排名代做
  • 本地环境建设网站南通网站制作怎样
  • 注册公司多少钱不用交税南昌seo网站推广费用
  • 网站建设与运营的论文的范本wordpress弹框登陆
  • 阿里云做的网站空间动画制作器
  • 徐州企业网站建设做视频网站需要多少上传
  • 记事本做网站怎么加背景图网站开发需要哪些人怎么分工
  • 南宁网站建设找哪家网站被k换域名
  • spring mvc 网站开发网站开发与管理所对应的职位及岗位
  • 国内做视频的网站有哪些宁波网站制作与推广
  • 织梦软件展示网站源码建设工程竣工验收消防备案网站
  • 网站里面的链接怎么做漳州建设网站
  • 有什么网站建设类岗位企业门户网站设计论文
  • 外贸公司如何做公司网站集团网站建设建站模板
  • 嘉兴云推广网站贵州毕节网站建设
  • 班级网站模板青岛哪里有做网站公司的
  • 建设工程设计招标信息网站.制作一个聊天软件需要多少钱
  • 校园网站建设的意见新闻聚合网站开发 技术
  • 网站推广公司兴田德润电话多少wordpress 弹框
  • 大连网站建设谁家好软件开发需要什么技术