调整图像大小时像素会发生什么变化?

时间:2015-06-29 04:48:24

标签: python image opencv image-processing filter

我有800 x 600px的原始图像

enter image description here

我要做的是将图像大小调整为625 x 480px并过滤掉所有陆地区域。我发现陆地部分的BGR值是(95,155,212)。这是我用来过滤所有区域的代码:

image[np.where((image == [95,155,212]).all(axis = 2))] = [0,0,0]

如果我先调整大小,然后过滤,这是输出:

enter image description here

如果我先过滤然后调整大小,我会得到我想要的输出:

enter image description here

所以我的第一个问题是调整大小后图像的像素会发生什么?

我有这张尺寸为712 x 480px的原始图片

enter image description here

当我应用过滤来移除平台区域时,我得到的输出类似于顶部的第二个图像。第二个问题,我有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

最有可能的是,调整大小会将边框颜色更改为地面颜色和黑色轮廓之间的颜色。

  • 这会搞砸你的过滤器,因为你需要更高的地面颜色范围
  • 并且边框线颜色(黑色)也可能有颜色瑕疵
  • 这些工件是在您的示例中过滤后留下的内容
  • 如果你选择他们的颜色,他们应该超出你选择的范围

如何修理?

  1. 使用最近邻居调整大小

    • 这将使颜色保持原样
    • 但调整后的图片并不漂亮......
  2. 更改过滤器以处理近距离颜色而不仅仅是颜色范围

    • 所以换成洪水填充
    • 并填充所有彼此没有太大差异的像素
    • 需要2个阈值
    • 绝对(颜色范围总计大)
    • 相对(相邻像素的最大变化小)
    • 现在只需重新调整已调整大小的图像或将过滤器功能更改为此...

答案 1 :(得分:0)

屏幕上和印刷品中的图片尺寸

在屏幕上查看图像时,图像的大小与打印时的图像大小不同。如果您了解这些差异,则可以更好地了解在调整图像大小时要更改的设置。

屏幕尺寸

显示器的屏幕分辨率是它可以显示的像素数。例如,屏幕分辨率为640 x 480像素的显示器宽度为640像素,高度为480像素。您可以使用多种不同的屏幕分辨率,显示器屏幕的物理尺寸通常决定了可用的分辨率。例如,大型显示器通常显示比小型显示器更高的分辨率,因为它们具有更多像素。

屏幕上的图片尺寸

图像在显示器上显示时具有固定的像素大小。屏幕分辨率决定了图像在屏幕上显示的大小。设置为640 x 480像素的显示器显示的像素少于显示1024 x 768像素的显示器。因此,640 x 480像素监视器上的每个像素都大于1024 x 768像素监视器上显示的每个像素。

一个100 x 100像素的图像使用大约六分之一的屏幕,640 x 480,但它仅占用屏幕的十分之一,1024 x 768.因此,图像看起来更小,为1024 x 768像素比640 x 480像素

调整图片大小时,以下参数会发生变化 像素尺寸:图像的宽度和高度。 图片尺寸 : 文档大小:打印时图像的物理大小,包括宽度和高度。 打印时的图像分辨率:此值以每英寸像素数或每厘米像素数显示。

在Photoshop中,图像的物理尺寸,分辨率和像素尺寸计算如下:

  1. 物理尺寸=分辨率x像素尺寸
  2. 分辨率=物理尺寸/像素尺寸
  3. 像素尺寸=物理尺寸/分辨率
  4. 有关详细信息,请查看Adobe's Document on Image resizing