[討論] 影像切割運算 不用迴圈

看板MATLAB作者 (:))時間8年前 (2016/04/22 02:40), 編輯推噓6(609)
留言15則, 4人參與, 最新討論串1/1
我要將影像切割成每塊為mxm的大小, 然後計算每一塊內每一點RGB的平均 並儲存到img nh:影像高度(m的倍數) nw:影像寬度(m的倍數) X為影像nhxnwx3 程式如下: for x=1:m:nh for y=1:m:nw x1=ceil(x/m); x2=ceil(y/m); img(x1,x2,1)=mean(mean(X(x:x+m-1,y:y+m-1,1))); img(x1,x2,2)=mean(mean(X(x:x+m-1,y:y+m-1,2))); img(x1,x2,3)=mean(mean(X(x:x+m-1,y:y+m-1,3))); end end 請問大家有辦法可以把迴圈去掉, 不用迴圈的做法嗎? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.68.167 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1461264034.A.0DF.html

04/22 02:43, , 1F
img=squeeze(mean(mean(reshape(X,[m nh m nw 3]),2),4));
04/22 02:43, 1F

04/22 10:44, , 2F
help blkproc
04/22 10:44, 2F

04/22 12:54, , 3F
我印象中是blockproc, 可能有誤
04/22 12:54, 3F

04/22 13:31, , 4F
兩個都有,都可用.
04/22 13:31, 4F

04/22 22:50, , 5F
直接用median filter不就好了
04/22 22:50, 5F

04/23 06:43, , 6F
中位數 != 平均值...
04/23 06:43, 6F

04/23 12:58, , 7F
對齁 用im2col
04/23 12:58, 7F

04/23 13:13, , 8F
請問這種mxm取平均的作法,跟影像resize的概念是一樣
04/23 13:13, 8F

04/23 13:13, , 9F
的嗎?如果是的話,不曉得是否能夠用imresize?
04/23 13:13, 9F

04/23 14:14, , 10F
imresize這個function的本質類似resample,所以會用到
04/23 14:14, 10F

04/23 14:14, , 11F
interpolation,與這個case所需不同. 這個case看起來是
04/23 14:14, 11F

04/23 14:16, , 12F
比較接近(以常見演算法舉例)LBP的第一步,求local patch
04/23 14:16, 12F

04/23 14:16, , 13F
center的mean.
04/23 14:16, 13F

04/24 10:55, , 14F
喔喔…剛剛去edit imresize果真有interpolation,感謝
04/24 10:55, 14F

04/24 10:55, , 15F
回答。
04/24 10:55, 15F
文章代碼(AID): #1N6HwY3V (MATLAB)