如何使用opencv获得红外/热视觉

How to obtain infra red / heat vision using opencv

我想实现红外视觉效果(电影中外星人通常使用的视觉),就像铁血战士2[=25]中使用的那样=] - 使用 OpenCV。

我已经搜索过了,但有人指出红外滤镜是使用支持它的网络摄像头硬件制作的。

有什么方法可以用OpenCV实现上述图片接近的效果吗?我不确定自己到底要搜索什么功能。需要来自 OpenCV / Image Processing Expertise 的建议和指导。谢谢

正如 @Wojciech Frohmberg 在评论中指出的那样,从光源 (RGB) 中提取红外线通道是不可能的,除非你有一个可以检测红外线的相机只。更多信息可以阅读 this forum and wiki.

为了达到最接近的效果,我使用了 HSV ColorMap 正如 @berak 在评论中指出的那样,感谢他。

cv::applyColorMap (InputArray src, OutputArray dst, int colormap)

效果:

代码:

-(cv::Mat) convertIntoAlienVision:(cv::Mat)inputImage
{
    cv::Mat grayMat;

    if(inputImage.channels() == 1)
        grayMat = inputImage;
    else{
        grayMat = cv::Mat(inputImage.rows, inputImage.cols, CV_8UC3);
        cv::cvtColor(inputImage, grayMat, CV_BGR2GRAY);
    }

    cv::Mat coloredImage;
    cv::applyColorMap(grayMat, coloredImage, cv::COLORMAP_HSV);
    return coloredImage;
}