2015-07-28 146 views
-1

我碰到這個代碼部分:這段代碼的含義是什麼?

file = imread(files(i).name); 
file = file(1:1800, 520:2000, :); 

什麼是線想告訴我們什麼?它試圖分配「紅色」,「綠色」和「藍色」值嗎?這裏最後的:代表什麼?

謝謝。

+1

https://en.wikipedia.org/wiki/Array_slicing#1970s:_MATLAB – rayryeng

回答

0

對第二行賦值後,文件的值將被替換爲:
- 第一個單元的「文件」的第一個單元格的上一個定義的第1個單元格到第1800個單元格的值

從第五百二十零到所述第二小區OK「文件」爲第二小區

從「文件」的先前定義值的 - 所有的先前定義的用於THRID第2000細胞-The值細胞。

:裝置的所有數據,而1:1800手段「從1至1800」

3

imread返回由n x m x 3陣列表示的圖像。

file(1:1800, 520:2000, :)提取矩形出該陣列中,即第一行1800和具有索引的最後:告訴MATLAB來選擇用於所提取的矩形的所有信道520和2000

之間

列。嘗試用例如 1,當您通過 fileimshow時,您會看到一張黑色的&白色圖片。

1

調用imread後,變量file是3D陣列,其中每個3個維度的代表:

1:高度

2:寬

3:顏色波段數。

因此調用此:

file = file(1:1800, 520:2000, :); 

實際裁剪圖像,以便它現在是1800×(2000 - 520 + 1)×不管。

最後的:colon)表示您希望獲取與該維度對應的所有值,即紅色,綠色和藍色(如果這是RGB圖像)。