Is it possible to resize image without changing its total number of pixels?

6 次查看(过去 30 天)
I want to reduce each pixel size upto 0.5 but I want the total number of pixels to be the same. Is this possible ?. Kindly Advise.
  4 个评论
Abdul Hannan Qureshi
@Rik thank you for response. I really took the concept of pixel in a wrong way. I realized that now. My aim was to relate 1 pixel = 1 Unit (cm or m) and use "imdistline" as distance measure tool on the image. I was wrong though.
Thank you for correcting me.
Abdul Hannan Qureshi
@Adam Danz Thank you for advise. I am working on grayscale images. I will follow ur guideline to see the outcomes. Thanks again for your time. I dont have a programming background and sometimes it is lil difficult to understand such basic concepts.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2022-4-19
编辑:Image Analyst 2022-4-19
@Abdul Hannan Qureshi if you resize the image matrix variable, it will have a different number of elements, not the same.
You can display the tick marks in real world units, such as cm or m, if you use the 'XData' and 'YData' options for imshow().
However regionprops() always measures in pixels so to get from pixels into cm you'd have to multiply by a cmPerPixel scaling/calibration factor that you computer. The attached demo walks you through that process.

更多回答(1 个)

DGM
DGM 2022-4-19
编辑:DGM 2022-4-19
Maybe something like:
A = imread('cameraman.tif');
[h w] = size(A); % [256 256]
imshow(A,'xdata',[1 w]/2,'ydata',[1 h]/2)
hold on
plot(64,64,'yo','linewidth',2) % just for demonstration
Note that while the image is still 256x256, the image is plotted on a half-size grid. The NW pixel is now at [0.5 0.5] instead of [1 1], and the center of the image is now at [64 64]. The same can be done with image()/imagesc(). I can't really demonstrate imdistline() in the forum editor, but you should be able to use it just fine.

产品


版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by