4

imread() コマンドで読み取られ、マトリックス A に保存された白黒画像があるとします。

この行列A画像を円柱状に出力・グラフ化したい。MATLAB で円柱を描画する方法は知っていますが、円柱に画像を配置したり、円柱形状で画像を描画したい場合はどうすればよいかわかりません。どんな助けでも大歓迎です。ありがとうございました。

グーグルからこのサイトを見つけました。 http://www.flashandmath.com/advanced/rolls/cylin.html これはまさに私がやりたいことですが、MATLAB でこれを行う必要があります。

4

1 に答える 1

9

この手法はテクスチャ マッピングと呼ばれます。これは、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);
于 2013-05-10T04:56:43.987 に答える