Matlab image spatial resolution, change pixel
7 ビュー (過去 30 日間)
古いコメントを表示
Hi, how can ı change 8 bit image's pixel numbers like these? Help please


0 件のコメント
採用された回答
Image Analyst
2022 年 3 月 19 日
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 件のコメント
その他の回答 (2 件)
Voss
2022 年 3 月 19 日
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 件のコメント
DGM
2022 年 3 月 20 日
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.
参考
カテゴリ
Help Center および File Exchange で Convert Image Type についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





