作者su3cl3 (:))
看板MATLAB
标题[讨论] 影像切割运算 不用回圈
时间Fri Apr 22 02:40:31 2016
我要将影像切割成每块为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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1461264034.A.0DF.html
1F:推 sunev: img=squeeze(mean(mean(reshape(X,[m nh m nw 3]),2),4)); 04/22 02:43
2F:推 YoursEver: help blkproc 04/22 10:44
3F:推 at01076172: 我印象中是blockproc, 可能有误 04/22 12:54
4F:→ YoursEver: 两个都有,都可用. 04/22 13:31
5F:推 kobenein: 直接用median filter不就好了 04/22 22:50
6F:→ YoursEver: 中位数 != 平均值... 04/23 06:43
7F:推 kobenein: 对齁 用im2col 04/23 12:58
8F:→ at01076172: 请问这种mxm取平均的作法,跟影像resize的概念是一样 04/23 13:13
9F:→ at01076172: 的吗?如果是的话,不晓得是否能够用imresize? 04/23 13:13
10F:→ YoursEver: imresize这个function的本质类似resample,所以会用到 04/23 14:14
11F:→ YoursEver: interpolation,与这个case所需不同. 这个case看起来是 04/23 14:14
12F:→ YoursEver: 比较接近(以常见演算法举例)LBP的第一步,求local patch 04/23 14:16
13F:→ YoursEver: center的mean. 04/23 14:16
14F:推 at01076172: 喔喔…刚刚去edit imresize果真有interpolation,感谢 04/24 10:55
15F:→ at01076172: 回答。 04/24 10:55