问题
简单的RGB<—>HSV几乎花了整整一个下午
另外还有些编译错误:
VS命令行必须指定头文件目录,即 /I
OpenCV_DIR
/include/, 否则奇怪的错误:
error LNK2019: unresolved external symbol "private: char * __thiscall cv::String::allocate(unsigned int)" (?allocate@String@cv@@AAEPADI@Z) referenced in function "public: __thiscall cv::String::String(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0String@cv@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
cv::error
等
Fixing mixed STL implementation with OpenCV
Visual Studios 2013 - C++ Linker Error with openCV 3.0 Libs
参考链接
Convert a single color with cvtColor
How to get value of specific pixel after converting to hsv?
需要注意的地方是:
- cvtColor 函数,输入类型不一样,取值范围也是不一样的!
- 以前都是[0,255] BGR–>HSV,转换出来的也是[0,180], [0,255], [0,255]。在计算直方图时range一般取[0,180],[0,255], [0,255]。
- 注意
如果RGB 输入范围是[0 - 255], Hue 的范围则是[0 - 180]
- 如果HSV输入是[0,360], [0,1],[0,1],RGB输出也是[0,1]
- The conventional ranges for R, G, and B channel values are:
0 to 255 for CV_8U images
0 to 65535 for CV_16U images
0 to 1 for CV_32F images