matlabのドキュメントで、rgb2hsvがm x n x 3の画像配列を返すことを読んでいますが、それを呼び出すと、1x3のベクトルが得られます。私は何かを誤解していますか?サンプルコードは次のとおりです。
image_hsv = rgb2hsv('filepath')
および出力として
image_hsv =
0.7108 0.3696 92.0000
matlabのドキュメントで、rgb2hsvがm x n x 3の画像配列を返すことを読んでいますが、それを呼び出すと、1x3のベクトルが得られます。私は何かを誤解していますか?サンプルコードは次のとおりです。
image_hsv = rgb2hsv('filepath')
および出力として
image_hsv =
0.7108 0.3696 92.0000
ファイルパスでrgb2hsvを呼び出すことはできません。MATLABイメージマトリックスで呼び出す必要があります。試す:
image_rgb = imread('filepath'); % load the image array to MATLAB workspace
image_hsv = rgb2hsv(image_rgb); % convert this array to hsv
これらのマトリックスは次のように表示されます。
>> whos image* % display all variables whose name begins with 'image'
Name Size Bytes Class Attributes
image_hsv 480x640x3 7372800 double
image_rgb 480x640x3 921600 uint8
元のコードが行っていたのは、ファイルパス文字列をASCII数値に変換し、この配列の最初の3つの値をRGB値として取得し、これらをHSVに変換することでした。
注:この例では、データ型が1つの型から別の型にサイレントに変換されるMATLABの弱い型付けシステムの危険性を強調しています。また、関数への正しい入力チェックが不足している可能性もありrgb2hsv
ます。