均衡光学系统的图像亮度

时间:2017-12-11 12:19:26

标签: opencv camera-calibration

200x显微镜上安装有相机。图像显示了由相机矩阵或闪电或两者引起的亮度不均匀分布。

image diagonal profile

我想均衡像素亮度。找到一种可以用于校准的材料并不容易。例如纸因为microscpe看起来像一个风景 - 表面不相等。我的想法是在设备校准过程中将显微镜移开焦点并制作图像。使用该分布,应该可以计算每个像素的校正值。不幸的是,看起来这些因素会因曝光而异。但它仍然可行。

对我而言,它看起来像是一个非常常见的问题。 OpenCV是否提供了处理它的东西?

P.S。在单个图像上,这种不均匀的亮度分布不是问题。当扫描和缝合大表面时,它变得可见。

1 个答案:

答案 0 :(得分:2)

我不得不在一段时间内解决类似的问题。所有颜色通道都一样吗?你可以:

  1. Blur the image with cv::blur(...)
  2. 缩小模糊图像的最小值,因此最小值为零
  3. Subtract that blurred image from all input images with cv::subtract(...)
  4. 完整代码如下所示:

    // Input matrix
    // Image with "nothing"
    Mat colorProfile = ...;
    
    // Blur
    blur(colorProfile, colorProfile, Size( 3, 3), Point(-1,-1));
    
    // Translate the pixels down
    double min, max;
    minMaxLoc(colorProfile, &min, &max);
    colorProfile = colorProfile - min
    
    // Then for every image:
    Mat inputImage = ...;
    
    subtract(inputImage, colorProfile, inputImage);