如何在opencv中实现色度过滤?

时间:2012-05-13 11:25:14

标签: image image-processing opencv

我是Opencv的新手。我想做的是使用单个数码相机测量液位。经过大量搜索后,我得到了一份研究论文,其中包含了以下链接的算法和步骤。

http://personnel.sju.edu.tw /改善师资研究成果/ 98年度/著作/22.pdf

但是这个算法有一个步骤,我需要在捕获的图像上应用色度过滤。 Opncv没有这种内置功能。那么如何实现色度过滤,有没有办法做到这一点。请帮助我,谢谢。

1 个答案:

答案 0 :(得分:0)

我没有设法访问你提供的链接,但我想你想要的是根据颜色(色度)分割你的图像。为此,您必须首先将BGR图像(RGB,但红色和蓝色通道交换,这是OpenCV的自然顺序)转换为基于色度的空间。您可以使用cv::cvtColor()函数和CV_BGR2YUVCV_BGR2YCrCb这样的参数来执行此操作。

请参阅转化函数here的完整文档。

之后,您可以使用cv::split()分割图像的频道,例如。 :

cv::Mat yuvImage;
std::vector<cv::Mat> yuvChannels;
cv::split(yuvImage, yuvChannels);

然后处理包含您感兴趣的通道的结果向量的图像。