image - 将图像映射成圆柱体或球体形状?

标签 image matlab image-processing

假设我有黑白图像,使用 imread() 命令读取并保存到矩阵 A 中。

我想以圆柱形输出/绘制此矩阵 A 图像。我知道如何在 MATLAB 中绘制圆柱体,但我不知道如果我想将图像放在圆柱体上或绘制圆柱体形状的图像,我应该怎么做。任何帮助将不胜感激。谢谢。

我通过谷歌搜索找到了这个网站。 http://www.flashandmath.com/advanced/rolls/cylin.html 这正是我想要做的,但我需要在 MATLAB 中完成。

最佳答案

该技术称为纹理映射。这是来自 surface 函数 (R2011b) 的代码示例:

load clown
surface(peaks,flipud(X),...
   'FaceColor','texturemap',...
   'EdgeColor','none',...
   'CDataMapping','direct')
colormap(map)
view(-35,45)

此示例从“peppers.png”加载 RGB 图像并将其映射到圆柱体上:

imgRGB = imread('peppers.png');
[imgInd,map] = rgb2ind(imgRGB,256);
[imgIndRows,imgIndCols] = size(imgInd);
[X,Y,Z] = cylinder(imgIndRows,imgIndCols);
surface(X,Y,Z,flipud(imgInd),...
    'FaceColor','texturemap',...
    'EdgeColor','none',...
    'CDataMapping','direct')
colormap(map)
view(-35,45)

natan 所建议的那样,使用 warp 函数(图像处理工具箱附带),事情变得更加简单:

imgRGB = imread('peppers.png');
[imgRows,imgCols,imgPlanes] = size(imgRGB);
[X,Y,Z] = cylinder(imgRows,imgCols);
warp(X,Y,Z,imgRGB);

关于image - 将图像映射成圆柱体或球体形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16475044/

相关文章:

java - 将字节数组转换为图像

java - 调整图像大小时出现问题

matlab - matlab中的非线性平方优化任务

matlab - imnoise 高斯噪声澄清

c++ - 从 OpenGL 着色器获取数据?

c# - 我们可以以编程方式比较具有相同分辨率的不同图像吗?

javascript - 如何在javascript中添加具有多个源标签的图片元素

Java - 创建图像

matlab - 这是与 sub2ind/ind2sub 相关的错误吗?

Matlab:对图像求导有困难吗?