【问题标题】:How do i create images with specified resolution?如何创建具有指定分辨率的图像?
【发布时间】:2017-03-08 21:33:42
【问题描述】:

我想创建一个分辨率为 56 像素/直径的图像(例如:50、100 和 150 像素的不同直径),首先指定其高度和宽度,然后使用 meshgrid 函数将图像数字化(请参阅下面的示例代码)。其次,如何将分辨率提高 2 倍(例如:112 和 224 像素/直径)?

例子:

RowSize = 400;
ColSize = 400;

[gridRow, gridCol] = meshgrid(1:RowSize, 1:ColSize);

%specify the diameter
d = 100;

% create the image
I       = (gridRow - 200).^2 + (gridCol - 200).^2 <= (d/2).^2;
figure, imshow(I, []);

我会想到的主要问题是如何确定 Row 和 Col 大小,以便获得所需的分辨率。

非常感谢任何帮助/建议。谢谢!

【问题讨论】:

    标签: matlab image-processing resolution


    【解决方案1】:

    我想这就是你所追求的:

    %specify the diameter
    d = 100;
    
    RowSize = d;
    ColSize = d;
    
    %Subtract 0.5 to get the center correclty
    [gridRow, gridCol] = meshgrid((1:RowSize)-0.5, (1:ColSize)-0.5);
    
    % create the image
    I = (gridRow - d/2).^2 + (gridCol - d/2).^2 <= (d/2).^2;
    figure, imshow(I, []);
    

    结果:

    【讨论】:

    • 感谢@Rotem。它以这种方式工作,但我实际上想通过指定高度和宽度从头开始创建图像。我已经相应地编辑了这个问题。请看一看。感谢您的宝贵时间!
    • 现在我真的迷路了……gridRow 和gridCol 的分辨率都是RowSize x ColSize。如何从gridRow 和gridCol 创建图像?
    • 请在此处查看其余代码:centerY = RowSizeY/2; centerX = ColSizeX/2; diameter = 100; Img = (gridRow - centerY).^2 + (gridCol - centerX).^2 &lt;= (diameter/2).^2; figure, imshow(Img, [], 'InitialMagnification','fit')。该代码在图像的中心创建了一个光盘(没有添加它们,因为我不确定您是否需要这些)。请让我知道你的想法。非常感谢!
    • 谢谢@Rotem,我们快到了。 56像素/直径的指定分辨率是不是意味着直径为100像素的整幅图像总共会有5600像素?
    • 不,56 像素/直径表示 1 直径为 56 像素(如心率 60 次/分钟表示 1 分钟有 60 次)。 56 像素/直径意味着圆的直径正好是 56 像素。由于 1 直径以平方图像为界,因此图像大小为 56x56 像素。
    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多