我想实现红外视觉效果(通常用于电影中的外星人的视觉效果),就像 Predator 2 中使用的那种-使用OpenCV。
我进行了搜索,但我已经指出,红外滤镜是使用支持它的网络摄像头硬件制成的。
有什么方法可以使用OpenCV接近上述图片?我不确定自己要确切搜索什么功能。需要OpenCV /图像处理专家的建议和指南。谢谢。
最佳答案
正如 @Wojciech Frohmberg 在评论中指出的那样,除非您拥有一台可以专门检测红外线的摄像机,否则无法从光源(RGB)提取红外线通道。可以从this forum和wiki中读取更多信息。
为了获得最接近的效果,感谢他,我使用了 @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;
}