(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读取并显示保存图像的更多相关文章

  1. opencv-python教程学习系列2-读取/显示/保存图像

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的读取.显示以及保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: ...

  2. 用python简单处理图片(1):打开\显示\保存图像

    一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此, ...

  3. Emgu学习之(二)——图像读取、显示、保存

    visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...

  4. Opencv-Python:图像尺寸、图像的读取、显示、保存与复制

    Opencv-Python:图像尺寸.图像的读取.显示.保存与复制 原创 2017年11月23日 21:30:49 4440 在使用opencv的方法时,首先必须导入opencv包.新的opencv导 ...

  5. 图像的读取,显示与保存(基于skimage模块)

    一 skiamge模块 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能.它 ...

  6. OpenCV中图像的读取,显示与保存

      图像的读取,显示与保存 相关函数:cv2.imread().cv2.imshow().cv2.imwrite() 1.读入图像: 用cv2.imread()函数来读取图像,cv2.imread(路 ...

  7. 使用C#+EmguCV处理图像入门(图像读取_显示_保存)二

    上个随笔已经介绍EmguCV的一些常用库和程序安装以及环境变量的配置,这次写的是如何使用这个类库对图像进行操作. EmguCV图像处理系统组成(个人见解): 图像的基本操作: 贴个代码: using ...

  8. matlab数字图像处理-冈萨雷斯-读取,显示,保存图像

    图像读取:imread(filename) 显示图像‘ 显示多幅图像 保存图像 b 计算压缩比

  9. 第十二节,OpenCV学习(一)图像的读取、显示、保存

    一.读取图像 所谓的图像就是一个数组,对图像的处理就是对数字的处理 import cv2 import numpy as np img = cv2.imread('dog.jpg') print(im ...

随机推荐

  1. GDI 映射模式(11)

    概述 调用 SetMapMode 函数可以设置映射模式: int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 G ...

  2. 51nod1134 最长递增子序列【动态规划】

    给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10. Input 第1行:1个数N ...

  3. cd:切换目录

    cd命令 1.命令详解 [功能说明] cd命令是“change directory”中每个单词的首字母缩写,其功能是从当前工作目录切换到指定的工作目录. [语法格式] cd    [option]   ...

  4. Hexo系列(四) NexT主题配置

    Hexo 框架允许我们更换合适的主题,以便于构建不同风格的网站,这里介绍目前最常使用的一款主题之一 -- NexT 一.NexT 安装 在正式开始讲解 NexT 安装之前,我们必须明确以下几个概念: ...

  5. ip代理池学习

    代理的作用 网上有许多售卖代理的网站,也有免费的,不过其功效性会能影响.通过代理网站,我们可以向访问的目标访问器隐藏自己的真实ip,避免ip地址以访问频率过高等原因被封. 步骤 1.搜集一个免费的代理 ...

  6. Python-Pandas数据处理

  7. svn_精简版【极速安装】

    1.进入官网下载:http://tortoisesvn.net/ 2.进行安装. 3.官方下载汉化包 [32 位,64位] 4.安装完汉化包后,右键->Settings 5.选择语言包,确定就o ...

  8. 组合数性质求K个数选取i*j个数分成j组的方案数

    分析:设方案数为ANS,C代表组合数: ANS=(C[K,I]*C[K-I,I][K-2*I,I]*...*C[K-(J-1)*I,I])/(J!); 也即: ANS=C[K,I*J]*(C[I*J, ...

  9. myquant平台搭建及使用

    1.主页 http://myquant.cn/ 点击“我要申请试用”,进入如下页面:http://myquant.cn/news/2015/03/25/try-gmsdk-v2.0/ 点击“试用注册” ...

  10. JavaScript向window onload添加加载函数

    有时候我们需要在页面加载事件后完成一些函数操作,对于函数比较多的情况下可以写一个统一的加载函数 .本函数来自于JavaScript DOM 编程艺术: function addLoadEvent(fu ...