0

让我们说我有一个灰度图像(640×480的大小)与最小像素强度= 23和最大强度= 245。OpenCV cv :: resize()可以改变图像的最小值和最大值吗? (使用方法INTER_LINEAR)

如果我调整它使用与cv::resize()INTER_LINEAR 1920×1080,最小和最大强度可以改变吗?我的最小强度已经变为25,最大强度为247.任何可能导致这种情况的错误用法?

是否可以限制cv::resize只调整最小最大值?

我试过用NORM_MINMAX和原始最小值最大值调整图像后正常化图像,但结果看起来不一样。我没有选择使用INTER_NEAREST。它看起来非常模糊。

我想保留原始最小值最大值,但使用INTER_LINEAR调整大小。可能吗?

回答

1

不,在我看来,使用任何插值方法不可能保留最小/最大值。有关更多信息,请参阅Bilinear interpolation以了解为什么在调整大小的图像中最小/最大值可能不再存在。

如果你想保留原来的最小/最大,你将不得不手动后处理没有任何保证视觉效果会很好。

可能的解决方案:

  • 一个图像尺寸调整与INTER_LINEAR
  • 另一个与INTER_NEAREST
  • 保险丝两个图像:
    • I_res(i,j)=I_near(i,j)I_near(i,j)==min or max
    • I_res(i,j)=I_linear(i,j)否则

但这样一来,你惹用来做线性内插公式。

+1

Thanks @Catree如果我调整图像大小,然后在原始minmax值之间对新图像进行规范化处理,我是否会遇到任何无法预料的问题?这似乎现在工作。 – user2880062

+1

是的,范围标准化应该可行(应该优先于我的方法)。 – Catree

+0

非常感谢。 – user2880062

相关问题