块内像素循环的一段小代码理解

块内像素循环的一段小代码理解_第1张图片ze

这小段代码开始看到时候一直看不明白,自己编程功底实在是太差了,后面经过仔细的研究终于搞明白了:

1.将原来图像的数据,从从左到右,自上而下存取的数据,现在按照小块的大小,分别存入到小块的数据中。图示举列子就是存成2*2的小块像素。

2.代码的理解,最外层从i开始,然后从j开始,左边的小块比较好理解,就是一个0,1,2,3这4个数组的存取,右边就有点难以理解,主要它还不是二维的形式,非要存成一维的数组,搞得我一直想不明白,j就是第j列,后面x乘以匹配块的大小,就是把当前所处行前几个数据去掉,然后i+y*h可以是指到达第几行了,这几行之前的数据也是被去掉的,但是还要乘以原始图像的宽度,这样才是去掉完整的数据,就能够得到当前以(x,y)为坐标的2*2存储的数据,这里的2*2只是个例子,具体的应该是8*8的,看具体使用时候确定。

3.代码的记忆,就是一种数组的一种处理关系,先去掉行前,再去掉列前,先处理坐标位置,再处理内部的关系。

你可能感兴趣的:(块内像素循环的一段小代码理解)