Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 统一两幅图像的亮度_Python_Opencv_Brightness - Fatal编程技术网

Python 统一两幅图像的亮度

Python 统一两幅图像的亮度,python,opencv,brightness,Python,Opencv,Brightness,我想要一种方法或步骤来统一两个图像的亮度,或者换句话说,使它们的亮度相同,但不指定它们。我知道如何使用PIL获得图像的亮度,代码如下: from PIL import Image imag = Image.open("test.png") # Convert the image te RGB if it is a .gif for example imag = imag.convert('RGB') # coordinates of the pixel X, Y = 0, 0 # Get RG

我想要一种方法或步骤来统一两个图像的亮度,或者换句话说,使它们的亮度相同,但不指定它们。我知道如何使用PIL获得图像的亮度,代码如下:

from PIL import Image

imag = Image.open("test.png")
# Convert the image te RGB if it is a .gif for example
imag = imag.convert('RGB')
# coordinates of the pixel
X, Y = 0, 0
# Get RGB
pixelRGB = imag.getpixel((X, Y))
R, G, B = pixelRGB
brightness = sum([R, G, B]) / 3  ##0 is dark (black) and 255 is bright (white)
print(brightness)

有人知道如何使两幅图像具有相同的亮度吗。谢谢

您可以使用Python/OpenCV中的平均/标准偏差颜色转移技术,如中所述。但是,要强制它不修改颜色,只调整亮度/对比度,请将图像转换为HSV。使用该参考中描述的方法仅处理V通道。然后将新的V、旧的S和H通道组合起来,并将其转换回BRG。

请参见@fmw42是的,我看到了它并自己实现了它,但我不清楚该代码是改变亮度还是只与颜色有关!Cz分析结果时,我的图像颜色完全变为不同的颜色(即绿色变为粉色)。我希望我的结果会更加光明,两者都有。它分别匹配图像每个通道的两幅图像(对应于亮度和对比度)的平均值和标准偏差。通过将图像转换为HSV或LAB,并在处理过程中仅使用V或L通道,可以强制其仅进行亮度和对比度,而不改变颜色。然后转换回RGB。@fmw42哦,好的,明白了!这真是个好主意,谢谢你的帮助@fmw42如果您愿意,您可以添加您的答案,这样我就可以接受它作为正确答案。我认为最好直接调整RGB中的亮度/对比度。参见示例
@markransem
。如果你按照我的参考资料一个频道一个频道地做,你会改变颜色。OP希望保留颜色,只更改亮度/对比度。如果将所有3个通道乘以相同的因子,则不会更改颜色。是的,确实如此。但是你如何得到相同的因子呢。一种方法是将所有通道堆叠到一个图像中。另一种方法是从每个通道获取平均统计数据。所以这当然是一种方法。