我碰到這個代碼部分:這段代碼的含義是什麼?
file = imread(files(i).name);
file = file(1:1800, 520:2000, :);
什麼是秒線想告訴我們什麼?它試圖分配「紅色」,「綠色」和「藍色」值嗎?這裏最後的:
代表什麼?
謝謝。
我碰到這個代碼部分:這段代碼的含義是什麼?
file = imread(files(i).name);
file = file(1:1800, 520:2000, :);
什麼是秒線想告訴我們什麼?它試圖分配「紅色」,「綠色」和「藍色」值嗎?這裏最後的:
代表什麼?
謝謝。
對第二行賦值後,文件的值將被替換爲:
- 第一個單元的「文件」的第一個單元格的上一個定義的第1個單元格到第1800個單元格的值
從第五百二十零到所述第二小區OK「文件」爲第二小區
從「文件」的先前定義值的 - 所有的先前定義的用於THRID第2000細胞-The值細胞。
的:
裝置的所有數據,而1:1800
手段「從1至1800」
imread
返回由n x m x 3
陣列表示的圖像。
file(1:1800, 520:2000, :)
提取矩形出該陣列中,即第一行1800和具有索引的最後:
告訴MATLAB來選擇用於所提取的矩形的所有信道520和2000
之間
列。嘗試用例如1
,當您通過
file
到
imshow
時,您會看到一張黑色的&白色圖片。
調用imread
後,變量file
是3D陣列,其中每個3個維度的代表:
1:高度
2:寬
3:顏色波段數。
因此調用此:
file = file(1:1800, 520:2000, :);
實際裁剪圖像,以便它現在是1800×(2000 - 520 + 1)×不管。
最後的:
(colon)表示您希望獲取與該維度對應的所有值,即紅色,綠色和藍色(如果這是RGB圖像)。
https://en.wikipedia.org/wiki/Array_slicing#1970s:_MATLAB – rayryeng