2017-02-16 9 views
0

状況:インデックス付きイメージを出力したり、操作したりしようとしています。インデックス付きイメージを表示/操作する方法Octave

問題:ind2rgb(image, colormap(x))を使用している場合、我々はindexed image contains colors outside of colormapxはカラーマップオプションであるというエラーを受信しました。

質問:これを回避するには?

追加情報:私はimshow(image, colormap(x))を使用しました。ここでは、Octaveで利用可能なすべてのカラーマップをxの代わりに使用しました。

答えて

1

これは、カラーマップよりも多くのインデックスがあるためです。ちょうど大きなカラーマップを作成してください。あなたは、colormap(x(size_of_cmap))

ind2rgb(image, colormap(viridis(max(image(:)))) 

またsysntaxでそれを行うカラーマップを作成し、それを補間することができます。注意:これは、HSVの循環動作による色のアーチファクトを引き起こす可能性があります。

m=max(image(:)); 
cm=colormap(x); 

hsv=rgb2hsv(cm); 
cm=interp1(linspace(0,1,size(cm,1)),hsv,linspace(0,1,m)); 
cm=hsv2rgb(cm); 

ind2rgb(image,cm); 

可能であれば、最初の解決策を使用することをお勧めします。

関連する問題