我是Opencv的新手。我想做的是使用单个数码相机测量液位。经过大量搜索后,我得到了一份研究论文,其中包含了以下链接的算法和步骤。
http://personnel.sju.edu.tw /改善师资研究成果/ 98年度/著作/22.pdf
但是这个算法有一个步骤,我需要在捕获的图像上应用色度过滤。 Opncv没有这种内置功能。那么如何实现色度过滤,有没有办法做到这一点。请帮助我,谢谢。
答案 0 :(得分:0)
我没有设法访问你提供的链接,但我想你想要的是根据颜色(色度)分割你的图像。为此,您必须首先将BGR图像(RGB,但红色和蓝色通道交换,这是OpenCV的自然顺序)转换为基于色度的空间。您可以使用cv::cvtColor()
函数和CV_BGR2YUV
或CV_BGR2YCrCb
这样的参数来执行此操作。
请参阅转化函数here的完整文档。
之后,您可以使用cv::split()
分割图像的频道,例如。 :
cv::Mat yuvImage;
std::vector<cv::Mat> yuvChannels;
cv::split(yuvImage, yuvChannels);
然后处理包含您感兴趣的通道的结果向量的图像。