我正在使用旧版opencv的C ++代码,使用它来将BGR转换为HSV -
cvCvtColor(frame, imgHSV, CV_BGR2HSV);
cvReleaseImage(&imgHSV);
其中frame和imgHSV是IplImage *对象
较新版本的opencv没有这种方法,我发现imgproc中的cvtColor()也是如此。但是这个方法使用cv :: InputArray和cv :: OutputAray格式代替IplImage *。如何将IplImage *格式转换并转换回这些新格式?还有其他方法可以将BGR转换为HSV for IplImage *我不知道吗?
答案 0 :(得分:2)
在这里使用cv :: Mat而不是IplImage,一般来说,更喜欢c ++ api到弃用的c-api:
cv::Mat img = cv::imread("my.png");
cv::Mat hsv;
cv::cvtColor(frame, hsv, CV_BGR2HSV);
cv::imshow("hsv",hsv);
cv::waitKey();