Error : Incomplete or misformed expression or statement.
5 次查看(过去 30 天)
显示 更早的评论
Error : Incomplete or misformed expression or statement. Line: 4 Column: 6
CODE : A function that creates overlapping blocks of same size from an image
function [blocks,val1,val2]=frame2OverlappingBlocks(I,blockSize,shift)
if blockSize(1)>=shift
[n_row,n_col] = size(I);
%check the dimension consistency
[~,pos1,val1]=find((((1:shift:n_row) + blockSize(1)-1)>=n_row).*((1:shift:n_row) + blockSize(1)-1),1);
[~,pos2,val2]=find((((1:shift:n_col) + blockSize(2)-1)>=n_col).*((1:shift:n_col) + blockSize(2)-1),1);
I = imresize(I,[val1 val2]);
%[n_row_new,n_col_new] = size(I);
blocksPerRow = pos2;
howManyRows = pos1;
blocks = cell(howManyRows,blocksPerRow);
for i=1:howManyRows
for j=1:blocksPerRow
topLeftPel = [shift*i-(shift-1) shift*j-(shift-1)];
blocks{i,j}.intensity = I(topLeftPel(1):topLeftPel(1)+blockSize(1)-1,topLeftPel(2):topLeftPel(2)+blockSize(2)-1);
blocks{i,j}.topLeftPixel = topLeftPel;
end
end
else
display('Amount of shift is greater than the Block size!!');
end
end
2 个评论
Walter Roberson
2014-1-26
Which MATLAB version are you using? If you are using R2008b or earlier, try replacing the ~ with the name of an otherwise unused variable.
采纳的回答
Walter Roberson
2014-1-27
Change
[~,pos1,val1]=find((((1:shift:n_row) + blockSize(1)-1)>=n_row).*((1:shift:n_row) + blockSize(1)-1),1);
[~,pos2,val2]=find((((1:shift:n_col) + blockSize(2)-1)>=n_col).*((1:shift:n_col) + blockSize(2)-1),1);
to
[UnusedVariable1,pos1,val1]=find((((1:shift:n_row) + blockSize(1)-1)>=n_row).*((1:shift:n_row) + blockSize(1)-1),1);
clear UnusedVariable1
[UnusedVariable2,pos2,val2]=find((((1:shift:n_col) + blockSize(2)-1)>=n_col).*((1:shift:n_col) + blockSize(2)-1),1);
clear UnusedVariable2
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!