我想实现红外视觉效果(通常用于电影中的外星人的视觉效果),就像 Predator 2 中使用的那种-使用OpenCV。



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

有什么方法可以使用OpenCV接近上述图片?我不确定自己要确切搜索什么功能。需要OpenCV /图像处理专家的建议和指南。谢谢。

最佳答案

正如 @Wojciech Frohmberg 在评论中指出的那样,除非您拥有一台可以专门检测红外线的摄像机,否则无法从光源(RGB)提取红外线通道。可以从this forumwiki中读取更多信息。

为了获得最接近的效果,感谢他,我使用了 @berak 在评论中指出的HSV ColorMap

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;
}

10-04 13:26