Dividing an image into blocks of 64*64
1 次查看(过去 30 天)
显示 更早的评论
I want to divide an image of size into blocks of 64*64 non-overlapping blocks and then apply a user defined function to calculate the ratio between highest pixel value and total pixel values. So how to divide the image into non-overlapping blocks ?
0 个评论
采纳的回答
Walter Roberson
2018-6-16
aux_fun = @(block_info) YourFunction(block_info.block);
result = blockproc(aux_fun, [64 64], 'TrimBorder', false);
YourFunction should take in a 64 x 64 block and return the ratio or a vector of information.
Note: more work is needed if the image is not an exact multiple of 64 on each side.
8 个评论
Walter Roberson
2018-6-17
I = imread('cameraman.tif'); %for example
aux_fun = @(block_info) YourFunction(block_info.data);
result = blockproc(I, [64 64], aux_fun, 'TrimBorder', false)
with
function result = YourFunction(block_of_image)
result = double(max(block_of_image(:))) ./ sum(double(block_of_image(:)));
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!