看板 MATLAB 關於我們 聯絡資訊
我要將影像切割成每塊為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
sunev: img=squeeze(mean(mean(reshape(X,[m nh m nw 3]),2),4)); 04/22 02:43
YoursEver: help blkproc 04/22 10:44
at01076172: 我印象中是blockproc, 可能有誤 04/22 12:54
YoursEver: 兩個都有,都可用. 04/22 13:31
kobenein: 直接用median filter不就好了 04/22 22:50
YoursEver: 中位數 != 平均值... 04/23 06:43
kobenein: 對齁 用im2col 04/23 12:58
at01076172: 請問這種mxm取平均的作法,跟影像resize的概念是一樣 04/23 13:13
at01076172: 的嗎?如果是的話,不曉得是否能夠用imresize? 04/23 13:13
YoursEver: imresize這個function的本質類似resample,所以會用到 04/23 14:14
YoursEver: interpolation,與這個case所需不同. 這個case看起來是 04/23 14:14
YoursEver: 比較接近(以常見演算法舉例)LBP的第一步,求local patch 04/23 14:16
YoursEver: center的mean. 04/23 14:16
at01076172: 喔喔…剛剛去edit imresize果真有interpolation,感謝 04/24 10:55
at01076172: 回答。 04/24 10:55