[問題] sliding window double for loop已回收

看板MATLAB作者 (vincentpan)時間15年前 (2010/04/17 13:52), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
想要取得一張影像以每個 pixel 為中心點的 30*30 影像大小。 原來影像大小為 400 * 400 的 RGB image I = imread('xxx.jpg'); [m n k] = size(I); cut_size = 30; for i = 1:m for j = 1:n I2 = imcrop( I, [ j i cut_size-1 cut_size-1 ] ); .......... .......... end end 上面的程式剪出來的 I2 為 30*30*3 的彩色影像。 取得 I2 影像後,才能做後續的處理。 當然如果 pixle 位於影像的邊界,剪不出來 30*30 大小的話,就不做。 也是就一次移動一個 pixel 30*30 的sliding window 大小。 但是程式這樣寫,很花時間。 不知道有沒有辦法向量化,一次取得多個 30*30*3 大小的 RGB 影像? 謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.102.158

04/23 20:35, , 1F
我提供我個人的給你參考
04/23 20:35, 1F

04/23 20:35, , 2F
我想說我不不會用imcrop這個指令下手
04/23 20:35, 2F

04/23 20:36, , 3F
而是迴圈的設定i=1:30:m
04/23 20:36, 3F

04/23 20:37, , 4F
j=1:30:n
04/23 20:37, 4F
文章代碼(AID): #1BoKoCln (MATLAB)