Opencv 有可能使两个灰度图像在统计上相等吗?

Opencv 有可能使两个灰度图像在统计上相等吗?,opencv,image-processing,Opencv,Image Processing,我有两张灰度图,分别是G1和G2。我还有统计数据(最小值、最大值、平均值和标准差)。我想更改G2,以便G2的统计数据(最小值、最大值、平均值和标准差)与G1匹配。我尝试了算术缩放,得到了G1和G2的最小值和最大值以匹配,但平均值和标准差仍然不同。我也尝试过G1中G2的直方图拟合,但也没有达到我想要的效果。我正在使用一个名为SPIDER的软件,这是一个适用于图像处理的问题,可以使用不同的软件包(OpenCV MATLABetc)执行。任何想法和建议都将不胜感激 最简单的方法是对两幅图像应用直方图均

我有两张灰度图,分别是G1和G2。我还有统计数据(最小值、最大值、平均值和标准差)。我想更改G2,以便G2的统计数据(最小值、最大值、平均值和标准差)与G1匹配。我尝试了算术缩放,得到了G1和G2的最小值和最大值以匹配,但平均值和标准差仍然不同。我也尝试过G1中G2的直方图拟合,但也没有达到我想要的效果。我正在使用一个名为SPIDER的软件,这是一个适用于图像处理的问题,可以使用不同的软件包(OpenCV MATLABetc)执行。任何想法和建议都将不胜感激

最简单的方法是对两幅图像应用直方图均衡化(
histeq
,在MATLAB中)。如果您不想同时更改两个图像,那么您可以这样做,但这有点复杂。

您可以基于简单曲线生成输入到输出的映射。从没有任何依赖关系的值开始,最小值和最大值-这些值将设置曲线的端点。现在绘制平均值,在曲线中间创建一个点。为了修正标准差,你改变了平均值和终点之间的曲线形状——在中间平坦的曲线将给出较少的偏差,曲线对两端的平坦,但中间的陡峭的曲线会放大它。< /P>
编辑:我还没有充分考虑这个问题,改变曲线的形状也会改变平均值。但是我认为它可以变成有用的东西。

我将直方图均衡化的答案标记为正确的,因为它给了我最好的结果,但是我无法使这两张图像在统计上完全相等,因此

任何事情都是可能的。你已经试过什么了?你能显示你正在进行的工作代码吗?你有更具体的编程问题吗?我提到的软件(SPIDER)执行操作并转换图像。我在寻找方法,而不是代码。我已经提到我尝试过的(即直方图拟合、算术缩放)直方图匹配将最接近您想要做的,但我认为没有办法使两个任意灰度图像在统计上完全相同。考虑一个灰度值分布在一个范围内的图像:<代码> 0…255 /代码>,另一个像素值等于<代码> 3 < /代码>。使平均数相同很容易,但其他统计数据永远不会相同。有人会想做什么呢?这样做你会得到什么?这可能有助于回答这个问题@烧杯-这应该是答案。同意。似乎直方图匹配是尝试将图像的全局统计数据与另一个尽可能好地匹配的最佳方法。我也会这样做。。。虽然我没有看到任何约束阻止简单地用第一个图像替换第二个图像;-)用第一个图像替换第二个图像有一个限制。在进一步的图像处理步骤中,我正在使用另一个软件。如果我成功地以某种方式使两个图像等效,它基本上大大简化了我的问题。谢谢你@Mark Ransom我会帮你的