假设我有一个灰度图像(640×480尺寸),最小像素强度= 23,最大强度= 245。
如果我使用cv::resize()
和INTER_LINEAR
将其大小调整为1920×1080,最小和最大强度可以改变吗?我的最小强度变成了25,最大强度变成了247。任何可能的错误用法导致此?
是否可以将cv::resize
限制为仅在最小最大值内调整大小?
我尝试用NORM_MINMAX
和原始最小最大值调整大小后对图像进行归一化,但结果看起来并不相同。我没有选择使用INTER_NEAREST
。它看起来非常模糊。
我想保留原始的最小最大值,但使用INTER_LINEAR调整大小。可能吗?
最佳答案
不,我认为使用插值法的任何方法都无法保持最小值/最大值。有关更多信息,请参见Bilinear interpolation并了解为什么在调整大小后的图像中不再存在最小值/最大值。
如果要保留原始的最小值/最大值,则必须手动过帐,而不保证视觉效果良好。
可能的解决方案:
INTER_LINEAR
调整大小的一幅图像INTER_NEAREST
一起I_res(i,j)=I_near(i,j)
I_near(i,j)==min or max
否则但是,这样一来,您就会迷惑用于线性插值的公式。
关于opencv - OpenCV cv::resize()可以更改图像的最小值和最大值吗? (使用INTER_LINEAR方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625873/