2012-04-04 172 views
0

我在閱讀matlab文檔中的rgb2hsv將返回一個m乘n乘3的圖像數組,但是當我調用它時,我得到一個1乘3的矢量。我誤解了什麼嗎? 下面是一個示例代碼:Matlab rgb2hsv尺寸

image_hsv = rgb2hsv('filepath') 

和輸出

image_hsv = 

     0.7108 0.3696 92.0000 

回答

2

不能調用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碼,服用此數組的前三個值的RGB值和將其轉換爲HSV。

注意:本示例重點介紹了MATLAB弱輸入系統的危險性,其中數據類型從一種類型靜默轉換爲另一種類型。也可能缺少對rgb2hsv函數的正確輸入檢查。