Vtk读取并显示保存图像
(1):Vtk读取并显示图像:三种方法
转载:未知出处
转载:用VTK显示平面图片:http://blog.csdn.net/tonylk/article/details/464881
用到vtkJPEGReader类。
包含的头文件:
- #include "vtkActor.h" #include "vtkRenderer.h"
- #include "vtkRenderWindow.h"
- #include "vtkRenderWindowInteractor.h" #include "vtkImageViewer.h" #include "vtkJPEGReader.h" #include "vtkImageActor.h"
- #include "vtkInteractorStyleImage.h" #include "vtkActor2D.h"
方法一:
使用vtkImageMapper和vtkAcotor2D来实现
- int main(int argc, char **argv)
- {
- int extent[6];
- vtkJPEGReader *m_reader = vtkJPEGReader::New();
- m_reader->SetFileName("C:\\Users\\igst\\Documents\\美图图库\\叶.jpg");
- m_reader->SetDataByteOrderToLittleEndian();
- m_reader->SetDataScalarTypeToUnsignedChar();
- m_reader->SetFileDimensionality(3);
- vtkImageMapper *mapper=vtkImageMapper::New();
- mapper->SetInput(m_reader->GetOutput());
- mapper->SetColorLevel(128); mapper->SetColorWindow(256);
- vtkActor2D *actor=vtkActor2D::New();
- actor->SetMapper(mapper);
- vtkRenderer *m_Renderer = vtkRenderer::New();
- vtkRenderWindow *m_RenWin = vtkRenderWindow::New();
- m_RenWin->AddRenderer(m_Renderer);
- vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
- iren->SetRenderWindow(m_RenWin);
- vtkInteractorStyleImage *interactor = vtkInteractorStyleImage::New();
- iren->SetInteractorStyle(interactor); m_Renderer->AddActor(actor);
- m_Renderer->SetBackground(0.1, 0.2, 0.4); m_RenWin->Render();
- m_reader->GetDataExtent(extent);//如果把这条命令放在Render()的前面则无效
- m_RenWin->SetSize(extent[1],extent[3]);
- iren->Initialize();
- iren->Start();
- return 0;
- }
结果:
方法二:
使用vtkImageActor类,不需要用vktImageMaper
- int main(int argc, char **argv)
- {
- vtkJPEGReader *m_reader = vtkJPEGReader::New();
- m_reader->SetFileName("C:\\Users\\igst\\Documents\\美图图库\\荷叶.jpg");
- m_reader->SetDataByteOrderToLittleEndian();
- m_reader->SetDataScalarTypeToUnsignedChar();
- m_reader->SetFileDimensionality(3);
- vtkImageActor *m_Actor = vtkImageActor::New();
- m_Actor->SetInput(m_reader->GetOutput()); vtkRenderer *m_Renderer = vtkRenderer::New();
- vtkRenderWindow *m_RenWin = vtkRenderWindow::New();
- m_RenWin->AddRenderer(m_Renderer);
- vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
- iren->SetRenderWindow(m_RenWin);
- vtkInteractorStyleImage *interactor = vtkInteractorStyleImage::New();
- iren->SetInteractorStyle(interactor); m_Renderer->AddActor(m_Actor);
- m_Renderer->SetBackground(0.1, 0.2, 0.4);
- m_RenWin->Render();
- iren->Initialize();
- iren->Start();
- return 0;
- }
- 方法三:简便快速
- 使用ImageViewer,需要调节窗宽窗位
- ImageViewer将 vtkRenderWindow, vtkRenderer, vtkActor2D and vtkImageMapper集成在了一起,
- 不需要再对vtkRenderWindow, vtkRenderer, vtkActor2D and vtkImageMapper定义。
- int main() {
- vtkJPEGReader *image=vtkJPEGReader::New();
- image->SetFileName("C:\\Users\\igst\\Documents\\美图图库\\竹林.jpg");
- image->SetDataByteOrderToLittleEndian();
- image->SetDataScalarTypeToUnsignedChar();
- vtkImageViewer *pViewer = vtkImageViewer::New();//显示二维图形
- pViewer->SetColorLevel(128);//设置窗宽窗位,
- pViewer->SetColorWindow(256);
- pViewer->SetInput(image->GetOutput());
- pViewer->Render();
- vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
- iren->SetRenderWindow(pViewer->GetRenderWindow());
- iren->Initialize();
- iren->Start();
- return 0;
- }
(2):VTK保存图片
Vtk读取并显示保存图像的更多相关文章
- opencv-python教程学习系列2-读取/显示/保存图像
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的读取.显示以及保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: ...
- 用python简单处理图片(1):打开\显示\保存图像
一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此, ...
- Emgu学习之(二)——图像读取、显示、保存
visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...
- Opencv-Python:图像尺寸、图像的读取、显示、保存与复制
Opencv-Python:图像尺寸.图像的读取.显示.保存与复制 原创 2017年11月23日 21:30:49 4440 在使用opencv的方法时,首先必须导入opencv包.新的opencv导 ...
- 图像的读取,显示与保存(基于skimage模块)
一 skiamge模块 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能.它 ...
- OpenCV中图像的读取,显示与保存
图像的读取,显示与保存 相关函数:cv2.imread().cv2.imshow().cv2.imwrite() 1.读入图像: 用cv2.imread()函数来读取图像,cv2.imread(路 ...
- 使用C#+EmguCV处理图像入门(图像读取_显示_保存)二
上个随笔已经介绍EmguCV的一些常用库和程序安装以及环境变量的配置,这次写的是如何使用这个类库对图像进行操作. EmguCV图像处理系统组成(个人见解): 图像的基本操作: 贴个代码: using ...
- matlab数字图像处理-冈萨雷斯-读取,显示,保存图像
图像读取:imread(filename) 显示图像‘ 显示多幅图像 保存图像 b 计算压缩比
- 第十二节,OpenCV学习(一)图像的读取、显示、保存
一.读取图像 所谓的图像就是一个数组,对图像的处理就是对数字的处理 import cv2 import numpy as np img = cv2.imread('dog.jpg') print(im ...
随机推荐
- 360 基于 Prometheus的在线服务监控实践
转自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Promethe ...
- [vuejs短文]使用vue-transition制作小小轮播图
提示 本文是个人的一点小笔记,用来记录开发中遇到的轮播图问题和vue-transition问题. 会不断学习各种轮播图添加到本文当中 也有可能会上线,方便看效果 开始制作 超简易呼吸轮播 简单粗暴的使 ...
- delphi主i窗口中实现多页面管理效果
MainForm上加Panel,把Panel的DockSite设为True, 把窗口FB_orderManage的DragKind设为dkDock, DragMode设为dmAuromatic 在M ...
- Fleury算法 求欧拉回路
Fleury算法 #include <iostream> #include <cstdio> #include <cstring> #include <cma ...
- 简述synchronized和java.util.concurrent.locks.Lock的异同
1.synchronized 用在方法和代码块的区别? a. 可以只对需要同步的使用 b.与wait(),notify()和notifyall()方法使用比较方便 2.wait() a.释放持有的对象 ...
- 【ACM】hdu_zs2_1005_Problem E _201308030747
Problem E Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Subm ...
- 我要带徒弟学JAVA架构 ( 写架构,非用架构 )
80元,当然我不觉得我带的徒弟比花了1万多在培训班学习的学生差,你努力了.会比他们出色的多.等你学有所成.相同能够成为jeecg核心成员之中的一个.一起构建Java学习平台.你也能够成为非常好的师傅. ...
- [Cypress] Wait for XHR Responses in a Cypress Test
When testing interactions that require asynchronous calls, we’ll need to wait on responses to make s ...
- BS程序怎样通过浏览器了解点击响应时间
原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- jquery非文本框复制
function selectText(x) { if (document.selection) { var range = document.body.createTextRange();//ie ...