我想用Numpy和OpenCV在Python中实现Krešimir Matkovic、LászlóNeumann、Attila Neumann、Thomas Psik和Werner Purgathofer的论文《全局对比度因子-图像对比度的新方法》中详细介绍的过程。然而,有一步我正在努力。你知道吗
这个过程基本上涉及到灰度图像像素的一些基本乘法和加法,这可以通过Numpy矢量化操作轻松完成。但是,对于分辨率越来越小的图像,需要重复此过程,其中较小图像中的超像素根据本文提供的特定公式进行组合。
从原始图像开始,每次尺寸减半,“超级像素值作为平均线性亮度计算,并且 然后将其转换为感知亮度,公式如下:
其中gamma=2.2,k是原始像素值[0,255]。我假设这意味着每次缩小图像时,我都需要一次计算四个像素的第一个公式(按正方形排列),求它们的平均值,然后应用第二个公式作为较小图像的灰度值。你知道吗
我的问题是,我不知道如何有效地缩小图像,使其像素值的计算方式与这些公式相对应。OpenCV已经有了一些内置的调整大小算法,但我真的不确定哪种算法(如果有的话)会提供与本文中详细介绍的类似的结果。你知道吗
如果较小图像中的像素值由这些公式确定,如何有效地调整灰度图像的大小?
OpenCV
resize
不执行这些操作。必须显式计算图像中每个像素的线性亮度值,然后使用线性插值(INTER_LINEAR
)应用resize
。线性插值将计算平均值。请参见下面的示例。它计算非重叠2x2块的平均值。你知道吗据我所知,您只计算原始图像的线性亮度(l),然后依次降低分辨率(如果我错了,请纠正我)。你知道吗
可以使用查找表(LUT)加速线性亮度计算,因为如果图像是8位(8U),则最多只能有256个不同的像素值。你知道吗
相关问题 更多 >
编程相关推荐