VTK图像处理之vtkImageMapToColors

05-VTK在图像处理中的应用(3) 5.6 图像颜色映射 5.6.1 图像灰度映射 vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下: luminance = 0.3*R + 0.59*G + 0.11*B 该公式中,R为输入图像的第一分量(红色),G为第二分量(绿色),B为第三分量(蓝色)。这个计算结果计算一个RGB颜色的亮度。该类的使用也比较简单,用户无须设置参数,代码如 阅读详情

图像彩色映射

  图像彩色映射的原理是:先生成一个颜色查询表,然后根据图像像素的一个标量值在颜色查询表中查找对应的颜色,并用新颜色值替代原来的像素值。VTK中以vtkImageMapToColors实现图像彩色映射,以vtkLookupTable生成颜色查找表。vtkLookupTable是一个用来将标量值映射为RGBA (red-green-blue-alpha transparency)或者将RGBA映射为标量值的类。

CMakeLists.txt文件代码如下:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(Gray2ColorImageExample)
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
ADD_EXECUTABLE(Gray2ColorImageExample   Gray2ColorImageExample.cpp)
TARGET_LINK_LIBRARIES(Gray2ColorImageExample ${VTK_LIBRARIES})

ImageCanvasSource2D.cpp文件代码如下:

#include <vtkSmartPointer.h>
#include <vtkImageData.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleImage.h>
#include <vtkRenderer.h>
#include <vtkImageActor.h>
#include <vtkJPEGReader.h>
#include <vtkImageLuminance.h>
#include <vtkLookupTable.h>
#include <vtkImageMapToColors.h>

//测试图像:lena-gray.jpg
int main(int argc, char* argv[])
{
    vtkSmartPointer<vtkJPEGReader> reader =
        vtkSmartPointer<vtkJPEGReader>::New();
    reader->SetFileName ( "E:\\TestData\\lena-gray.jpg" );

    vtkSmartPointer<vtkLookupTable> colorTable = 
        vtkSmartPointer<vtkLookupTable>::New(); 
    colorTable->SetRange( 0.0, 255.0 );
    colorTable->SetHueRange( 0.1, 0.5 );
    colorTable->SetValueRange( 0.6, 1.0 );
    colorTable->Build();

    vtkSmartPointer<vtkImageMapToColors> colorMap = 
        vtkSmartPointer<vtkImageMapToColors>::New();
    colorMap->SetInputConnection( reader->GetOutputPort() );
    colorMap->SetLookupTable( colorTable );
    colorMap->Update();

    vtkSmartPointer<vtkImageActor> originalActor =
        vtkSmartPointer<vtkImageActor>::New();
    originalActor->SetInputData(reader->GetOutput());

    vtkSmartPointer<vtkImageActor> shiftscaleActor =
        vtkSmartPointer<vtkImageActor>::New();
    shiftscaleActor->SetInputData(colorMap->GetOutput());

    double originalViewport[4] = {0.0, 0.0, 0.5, 1.0};
    double shiftscaleViewport[4] = {0.5, 0.0, 1.0, 1.0};

    vtkSmartPointer<vtkRenderer> originalRenderer =
        vtkSmartPointer<vtkRenderer>::New();
    originalRenderer->SetViewport(originalViewport);
    originalRenderer->AddActor(originalActor);
    originalRenderer->ResetCamera();
    originalRenderer->SetBackground(1.0, 1.0, 1.0);

    vtkSmartPointer<vtkRenderer> shiftscaleRenderer =
        vtkSmartPointer<vtkRenderer>::New();
    shiftscaleRenderer->SetViewport(shiftscaleViewport);
    shiftscaleRenderer->AddActor(shiftscaleActor);
    shiftscaleRenderer->ResetCamera();
    shiftscaleRenderer->SetBackground(1.0, 1.0, 0.8);

    vtkSmartPointer<vtkRenderWindow> renderWindow =
        vtkSmartPointer<vtkRenderWindow>::New();
    renderWindow->AddRenderer(originalRenderer);
    renderWindow->AddRenderer(shiftscaleRenderer);
    renderWindow->SetSize(900, 300);
    renderWindow->Render();
    renderWindow->SetWindowName("Gray2ColorImageExample");

    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
        vtkSmartPointer<vtkRenderWindowInteractor>::New();
    vtkSmartPointer<vtkInteractorStyleImage> style =
        vtkSmartPointer<vtkInteractorStyleImage>::New();

    renderWindowInteractor->SetInteractorStyle(style);
    renderWindowInteractor->SetRenderWindow(renderWindow);
    renderWindowInteractor->Initialize();
    renderWindowInteractor->Start();

    return EXIT_SUCCESS;
}

运行结果:

这里写图片描述

示例先读取了一幅灰度图像,然后生成vtkLookupTable颜色查找表。构造颜色查找表有两种方法:
一种是直接添加颜色;另一种是设置HSV颜色空间变化范围,然后自动生成颜色表。这里采用的是第二种方法。最后用vtkImageMapToColors实现图像彩色映射。

VTK API 详解(93):vtkImageMapToWindowLevelColors - 基于窗宽窗位映射DICOM图像 是 VTK 中用于根据窗宽(Window Width)和窗位(Window Level)对图像进行灰度映射的滤波器,广泛应用于医学图像显示,尤其是DICOM格式的CT和MRI图像。通过调节窗宽窗位,可以增强图像的对比度和亮度,突出感兴趣的结构。输入输出:输入标量图像,输出RGB颜色图像( 阅读详情

相关推荐

VTK编程指南<十四>:VTK图像颜色映射

VTK编程指南<十四>:VTK图像颜色映射

欧特GO 1322

VTK-图像切面提取

切片(Slice)或切面是三维图像比较常用的概念,尤其在医学图像中。通过提取切面可以方便地浏览和分析图像内部组织结构。VTK中vtkImageReSlice类可以实现图像切面的提取。在实际开发中,四视图中冠状视面、矢状面和横断面(显示过图像内部一点且平行于XY、YZ、XZ平面的平面),需要用到此类。 #include <vtkSmartPointer.h> #include <v...

小可爱的博客 2706

VTK实战:图像权重调整与使用

上述代码中,我们通过调用SetShift()和SetScale()函数来设置线性变换的参数,从而实现对图像权重的调整。通过改变这两个参数,我们就可以对图像进行不同程度的权重调整了。那么,我们可以使用vtkImageShiftScale类对图像进行线性变换,从而实现图像权重的调整。而在使用VTK进行图像处理时,我们也需要掌握图像权重调整的方法。上述代码中,我们通过调用SetWindow()和SetLevel()函数来设置窗口宽度和居中位置,从而实现对图像灰度值到颜色的映射。最终,我们可以得到一个颜色图像。

Meta_C的博客 384

vtk 实现分割图像和原图叠加显示的两种方式

vtkLookupTable实现灰度图到彩色图的映射,vtkImageBlend叠加灰度图和彩色图。完整代码,使用了vtkImageViewer2显示。1.用vtkImageBlend实现。2.用vtkImageMask实现。

yinyiYi159的博客 1350

VTK:图像彩色映射的编程指南

图像彩色映射是一种在可视化和图像处理中常用的技术,它可以将灰度图像转换为彩色图像,以提供更丰富的视觉表现力。在本文中,我们将介绍如何使用VTK(Visualization Toolkit)库来实现图像的彩色映射,并提供相应的源代码示例。通过上述代码,我们可以实现图像的彩色映射。你可以根据自己的需求调整窗宽和窗位的数值,从而获得不同的视觉效果。现在,我们已经完成了彩色映射的过程。接下来,我们将加载输入的图像数据。确保你已经正确安装了VTK,并且在你的编译环境中配置了相关的头文件和库文件。

YOLO_CODE的博客 211

vtk三个方向切片展示

实现vtk三个方向的切片 颜色展示有些问题,可不用设置vtkImageMapToColors的SetLookupTable则展示为灰度

VTK 的可视化方法:颜色映射

VTK 的可视化方法:颜色映射

ProgramNovice的博客 2367

vtkImageData转为RGBA类

1、将vtkImageData转为RGBA 2、获取vtkImageData的QImage类型缩略图

【VTK手册014】vtkImageMapToColors深入解析

vtkImageMapToColors是医学图像处理中的关键过滤器,用于将高动态范围标量数据映射到RGB/RGBA颜色空间。本文详细解析了其工作原理,重点探讨了vtkLookupTable的配置方法及其在窗宽窗位调整、伪彩增强中的作用。通过结合vtkImageBlend,构建了多模态图像融合管线,实现了PET-CT等医学图像的高效融合。文章还深入分析了并行执行策略和工程实践中的注意事项,为医学影像可视化提供了专业的技术指导。

weixin_43160093的博客 759

大麦APP抢票协议分析:从‘掌密网络’代码看移动端API安全防护

本文深度解析了大麦APP抢票协议的安全防护体系,重点分析了'掌密网络'代码中体现的动态签名、设备指纹和人机验证等关键技术。文章详细介绍了大麦APP如何通过多层次API安全防护应对抢票压力,包括参数加密、请求头部设计和异常处理机制,为移动应用开发者提供了安全实践建议。

weixin_28740299的博客 290

MagicDraw小白必看:BDD图中模块的5种属性详解(含SysML v1.6最新端口配置指南)

本文面向MagicDraw初学者,详细解析SysML BDD图中模块的五种核心结构属性,包括组成部分、引用、值、约束属性及端口。重点阐述了SysML v1.6中端口设计的范式转移,对比了完整端口与代理端口的区别与应用场景,并通过实战案例指导如何利用代理端口进行清晰的接口定义与系统架构设计。

rum55的博客 373

vtk平面交互

#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2); #include <vtkSmartPointer.h> #include <vtkMetaImageReader.h> #include <vtkDicomImageReader.h> #include <vtkMatrix4x4.h> #include <vtkLookupTable.h> #include

weixin_42237615的博客 1957

C#实战:通过ZPL指令与斑马打印机交互及状态监控全解析

本文全面解析了在C#中通过ZPL指令与斑马打印机进行交互及状态监控的实战方法。文章详细介绍了TCP/IP网络打印和Windows Raw打印两种核心连接方式,并深入讲解了ZPL指令的构建。重点阐述了通过SGD命令和斑马官方SDK实现实时打印状态监控的策略,为工业自动化场景下的可靠打印提供了完整解决方案。

weixin_29294395的博客 117

学习笔记2

Vtk: 05-VTK在图像处理中的应用(1) 数字图像文件内容由两个部分组成:图像头信息和数据 图像数据即为图像像素的像素值(灰度值) 在VTK中图像数据结构由vtkImageData类表示。利用vtkImageData,我们可以方便的创建、读写、和访问图像数据 VTK中内置了多个创建图像的Source,利用这些Source可以快速的创建图像,其中以vtkImageCanvasSource2D为代表。该Source功能是创建一个画布(空白图像),并提供了多种几何图形(点、线段、圆、矩形以及图像等)的

qq_41904390的博客 342

GPS从入门到放弃(一) --- GPS基础原理

GPS从入门到放弃(一) — GPS基础原理 GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机 里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。 整个GPS系统分三大部分: 地面站 卫星 接收机 地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨...

tyst08的专栏 2万+

海康视觉通讯配置实战:TCP与Modbus协议深度解析

本文深度解析海康视觉系统与PLC通讯的实战配置,聚焦TCP与Modbus两大核心协议。详细阐述了TCP协议如何实现精准触发拍照,包括服务器端配置、数据转换(字符串与十六进制)的关键技巧与避坑指南;同时详解了Modbus协议用于读写PLC寄存器的配置方法、变量绑定及数据类型匹配。文章结合典型应用场景与高级调试技巧,旨在帮助工程师快速打通视觉系统与自动化设备间的数据通道。

m2n3o4p5的博客 826

VTK_Learning_灰度图像映射成伪彩色图像(查表法)

1.查表法伪彩图映射 图像彩色映射的原理是首先生成一个颜色查找表,然后根据图像的一个标量值向颜色查找表中查找对应的颜色,并用新颜色值替代原来的像素值。VTK中vtkImageMapToColors负责图像彩色映射,vtkLookUpTable负责生成颜色查找表。 下面代码说明了怎样进行彩色映射: #include <vtkAutoInit.h> VTK_MODULE_INIT...

weixin_38293453的博客 1292

【100%通过率】华为od机试C卷【小朋友来自多少小区】JS 实现

幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个.我们将这些数量汇总到数组 garden 中。请根据这些小朋友给出的信息,计算班级小朋友至少来自几个小区?

MISAYAONE的博客 2007

VTK 读取JPEG图像 灰度化 彩色映射

VTK6.1.0  闲来无事,敲段小代码 #include "stdafx.h" #include VTK_MODULE_INIT(vtkRenderingOpenGL); VTK_MODULE_INIT(vtkInteractionStyle); VTK_MODULE_INIT(vtkRenderingFreeType); #include #inc

Jane_yuhui的专栏 1102

DeepSeek与YOLO融合技术的微信小程序实现方案

本文介绍了一个基于微信小程序和Flask后端的智能图像检测系统。系统采用DeepSeek-7B进行自然语言理解,YOLOv8执行目标检测,并通过融合验证模块确保结果准确性。核心流程包括:用户通过小程序上传图片和文本需求,后端解析意图后执行目标检测,最后验证并返回结果。关键技术包括DeepSeek的指令理解、动态阈值调整和模型优化(ONNX、TensorRT)。系统适用于工业质检等场景,如"检测表面划痕",能自动识别目标并验证结果。部署需GPU服务器,并包含安全机制保障系统稳定运行。

老郑的博客 273

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

5.6 图像颜色映射

5.6 图像颜色映射 5.6.1 图像灰度映射vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下:luminance = 0.3*R 0.59*G 0.11*B该公式中,R为输入图像的第一分量(红色),G为第二分量(绿色),B为第三分量(蓝色)。这个计算结果计算一个RGB颜色的亮度。该类的使用也比较简单,用户无须设置参数,代码如下:1:

yu132563的专栏 1158

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VTK011_vtk-图像基础处理_下

7、灰色图转彩色图像(查表映射): 灰色图转化成彩色图,实际上是将灰色图的不同黑白程度对应到不同的其他颜色,是一种颜色一一对应的方法,在实际中,有的图片保存也有这种方式,里面保存了一张表,像素点保存的是索引值。 #include &lt;vtkSmartPointer.h&gt; #include &lt;vtkJPEGReader.h&gt; #include &lt;vtkImageLu...

蒲公英的博客 497

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

5.3_ImageResliceExample2.exe : fatal error LNK1120: 2 unresolved externals问题解决方法

5.3_ImageResliceExample2.exe : fatal error LNK1120: 2 unresolved externals问题解决方法 最近在学习VTK,在运行《VTk图形图像开发进阶》中的5.3_ImageResliceExample2实例时出现了如下问题: ![build error](https://img-blog.csdnimg.cn/201910...

千里追风的博客 317

VTK知识学习(27)- 图像基本操作(二)

合成的效果为三个图像中对应的三个像素点的像素值合成一个RGB 像素值,如三个图像中第100个像素的像素值分别为255、0和 0,那么该点在输出图像中的像素值为(255.0.0),显示为红色。指定偏移和比例参数来对输入图像数据进行操作,例如一幅double 类型的图像,其数值范围为[-1,1],如果将其转换为 unsigned char 类型,需要设置 shif值为+1,比例系数设置为 127.5,那么输入数据-1映射为(-1+1)x127.5=0,而+1 则会映射为(+1+1)x127.5=255。

weixin_45114627的博客 1345

vtk ImageInfo

//测试 #include <vtkSmartPointer.h> #include <vtkImageData.h> #include <vtkMetaImageReader.h> #include <vtkMatrix4x4.h> // #include <vtkImageReslice.h> #include <vtkLookupTable.h> #include <vtkImageMapToColors.h> #i.

weixin_38293453的博客 214
上一篇: VTK图像处理之图像数据结构
下一篇: VTk显示样式设置
暮-成-雪
博客等级 码龄12年 5328粉丝 319原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值