不知道大家有没有注意到OpenCV(包括C和C++版本,根据本人的熟悉程度,以下只对C接口的OpenCV做叙述)中没有表示颜色的数据结构,而其他的库如Qt中就有QColor和QRgb,GDI中也有COLORREF和RGBQUAD。不过OpenCV中只是没有明确的颜色数据结构而已(即无CvColor,CvRgb或CvHsv等),但可以用CvScalar表示颜色,也可以用CV_RGB宏来定义颜色,实际上CV_RGB也是由CvScalar来实现的。
为什么OpenCV不设计一个单独CvColor类(CvPixel,Color或Pixel)呢?其可以附件许多的功能,比如可以有如下的成员函数:
此外还注意到OpenCV中对颜色属性的一些特点: