Matlab image spatial resolution, change pixel
7 views (last 30 days)
Show older comments
Hi, how can ı change 8 bit image's pixel numbers like these? Help please


0 Comments
Accepted Answer
Image Analyst
on 19 Mar 2022
Try this. It will make sure the output image is exactly the same size as the input image.
inputImage = imread('peppers.png');
[inputRows, inputColumns, numColors] = size(inputImage)
for ii = 1:6
subplot(2,3,ii);
outputImage = imresize(inputImage,2^-(ii-1));
[rows, columns, numColors] = size(outputImage);
fprintf('After resizing once it is %d rows by %d columns\n', rows, columns);
% Resize output image again to match the input.
outputImage = imresize(outputImage, [inputRows, inputColumns], 'nearest');
% Update size.
[rows, columns, numColors] = size(outputImage);
fprintf(' After resizing twice it is again %d rows by %d columns\n', rows, columns);
imshow(outputImage);
% Show title with new size.
caption = sprintf('%d rows by %d columns', rows, columns);
axis('on', 'image')
title(caption)
end
0 Comments
More Answers (2)
Voss
on 19 Mar 2022
You can try imresize()
im = imread('image_1.png');
for ii = 1:6
subplot(2,3,ii);
imshow(imresize(im,2^-(ii-1)));
end
9 Comments
DGM
on 20 Mar 2022
Or you could just do
inpict = imread('peppers.png');
k = 16;
outpict = imresize(imresize(inpict,1/k,'bilinear'),k,'nearest');
imshow(outpict)
[size(inpict); size(outpict)]
Which is far simpler and much faster than using blockproc() for any moderately large image.
Of course, it depends how much control one wants over exactly which pixels are contributing to each block and how exactly they're being weighted. I'm assuming that the goal here has no technical requirements, as none were given.
See Also
Categories
Find more on Convert Image Type in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




