ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VTK渲染 灰度图的像素值曲面点图

2022-07-08 11:32:33  阅读:175  来源: 互联网

标签:render VTK poly vtkSmartPointer 灰度 render2 点图 New lum


效果如下:

 

 

 

 

代码如下:

double leftview[4] = {0,0, 0.5,1};
//    double midview[4] = {0.33,0, 0.66,1};
    double rightview[4] = {0.5,0, 1.0,1};
    vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
    reader->SetFileName("d:/lena.jpg");
    reader->Update();
    vtkSmartPointer<vtkImageLuminance> lum = vtkSmartPointer<vtkImageLuminance>::New();
    lum->SetInputConnection(reader->GetOutputPort());
    lum->Update();
    vtkImageData* idata = lum->GetOutput();
    int ndims[3] = {0};
    idata->GetDimensions(ndims);
    vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
    vtkSmartPointer<vtkCellArray> cells = vtkSmartPointer<vtkCellArray>::New();
    vtkIdType idtype;
    qDebug() <<ndims[0] <<ndims[1] <<ndims[2];
    for(int x = 0; x < ndims[0]; x++){
        for(int y = 0; y < ndims[1]; y++){
            uchar* pixel = (uchar*)idata->GetScalarPointer(x,y,0);
            idtype = points->InsertNextPoint(x, y, *pixel);
            cells->InsertNextCell(1, &idtype);
        }
    }
    vtkSmartPointer<vtkPolyData> poly = vtkSmartPointer<vtkPolyData>::New();
    poly->SetPoints(points);
    poly->SetVerts(cells);
    vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    mapper->SetInputData(poly);
    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(mapper);

    vtkSmartPointer<vtkImageActor> actor1 = vtkSmartPointer<vtkImageActor>::New();
    actor1->SetInputData(lum->GetOutput());
    vtkSmartPointer<vtkRenderer> render = vtkSmartPointer<vtkRenderer>::New();
    render->AddActor(actor1);
    render->SetViewport(leftview);

    vtkSmartPointer<vtkRenderer> render2 = vtkSmartPointer<vtkRenderer>::New();
    render2->AddActor(actor);
    render2->SetViewport(rightview);

    pRenderWindow->AddRenderer(render);
    pRenderWindow->AddRenderer(render2);
    pRenderer = render;

 

标签:render,VTK,poly,vtkSmartPointer,灰度,render2,点图,New,lum
来源: https://www.cnblogs.com/larkin-cn/p/16457652.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有