【发布时间】:2011-12-18 13:00:02
【问题描述】:
您好,我正在尝试构建简单的颜色识别程序。我已经拍摄了一张图像(黄色和粉红色)并将其转换为 HSV 颜色空间。然后使用阈值来识别黄色区域。我得到输出(黑色图像)。我希望黄色区域被填充而颜色和黑色。
IplImage *imgRead= cvLoadImage("yellow.jpeg",CV_LOAD_IMAGE_COLOR);
if(!imgRead) {
fprintf(stderr, "Error in reading image\n");
exit(1);
}
IplImage *imgHsv = cvCreateImage(cvGetSize(imgRead),8, 3);
cvCvtColor(imgRead, imgHsv,CV_BGR2HSV);
IplImage *imgThreshold = cvCreateImage(cvGetSize(imgRead),8, 1);
cvInRangeS(imgHsv, cvScalar(25, 80, 80,80), cvScalar(34, 255, 255,255), imgThreshold);
cvShowImage("image",imgThreshold);
cvWaitKey(0);
在上面的代码中,我计算出黄色的 HSV 值为 30。(在 gimp 中黄色的 hsv 值为 60)。在cvInRangeS 中,除了色调值我不确定如何为cvScalar 指定其他值。
我需要输入什么值?我错过了什么吗?
【问题讨论】: