Accessing elements of a block
5 次查看(过去 30 天)
显示 更早的评论
Please help me soon with this! Thanks a ton!
I need to divide an image of size 72x72 into 64 blocks of size 9x9 each. Then, I need to perform some sort of processing on each block by accessing each value within each block. Should I use blockproc or mat2cell? How do I access each element within a block? If I use blockproc, how do I use the third parameter to create my own function that will be called for each block?
The following code threw this error
??? Cell contents reference from a non-cell array object.
Error in ==> module2 at 21 x=myCell{1,1}{j,k};
[final_img]=module1;
myCell = mat2cell(final_img,[9 9 9 9 9 9 9 9], [9 9 9 9 9 9 9 9]);
% C={myCell};
y=1; %initial previous value
w=1;
o=1; %o-output vector index
p=1;
rx = zeros(64,1);
ry = zeros(64,1);
rx(1)=0;
ry(1)=0;
for i=1:8
for l=1:8
[m,n]=size(myCell{1,1}); %m-rows n-column m=n=9
for j=1:m
for k=1:n
x=myCell{1,1}{j,k};
z=myCell{1,1}{k,j};
if x~=y %compare with previous value
rx(o)=rx(o)+1; %horizontalcount++
end
if z~=w
ry(p)=ry(p)+1; %verticalcount++
end
y=x;
w=z;
end
end
end
o=o+1;
p=p+1;
end
So, how do I get the value of x and z?
0 个评论
采纳的回答
Walter Roberson
2012-6-26
All of your myCell{1,1} should instead be myCell{i,l} and the indexing after that should be in () instead of in {}
myCell{i,l}(j,k)
3 个评论
Walter Roberson
2012-6-26
Your "y" and "w" do not change at all, so you are not comparing against the "previous" values, only against fixed values.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!