关于识别不同颜色的错误
ERROR about identify different colors
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
/*IplImage* GetThresholdedImage(IplImage* imgHSV){
IplImage* imgThresh=cvCreateImage(cvGetSize(imgHSV),IPL_DEPTH_8U, 1);
cvInRangeS(imgHSV, cvScalar(170,160,60), cvScalar(180,256,256), imgThresh);
return imgThresh;
} */
IplImage* GetThresholdedImage(IplImage* imgHSV, CvScalar lower, CvScalar upper)
{
IplImage* imgThresh=cvCreateImage(cvGetSize(imgHSV),IPL_DEPTH_8U, 1);
cvInRangeS(imgHSV, lower, upper, imgThresh);
return imgThresh;
}
IplImage* hsv;
CvScalar blue_upper = cvScalar(120,256,256);
CvScalar green_lower = cvScalar(40,60,10);
CvScalar green_upper = cvScalar(71,256,256);
IplImage* blue_mask = GetThresholdedImage(hsv, blue_lower, blue_upper);
IplImage* green_mask = GetThresholdedImage(hsv, green_lower, green_upper);
int main(){
CvCapture* capture =0;
capture = cvCaptureFromCAM(0);
if(!capture){
printf("Capture failuren");
return -1;
}
IplImage* frame=0;
cvNamedWindow("Video");
cvNamedWindow("Ball");
while(true){
frame = cvQueryFrame(capture);
if(!frame) break;
frame=cvCloneImage(frame);
cvSmooth(frame, frame, CV_GAUSSIAN,3,3);
IplImage* imgHSV = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 3);
cvCvtColor(frame, imgHSV, CV_BGR2HSV);
IplImage* imgThresh = GetThresholdedImage(imgHSV);
cvSmooth(imgThresh, imgThresh, CV_GAUSSIAN,3,3);
cvShowImage("Ball", imgThresh);
cvShowImage("Video", frame);
cvReleaseImage(&imgHSV);
cvReleaseImage(&imgThresh);
cvReleaseImage(&frame);
int c = cvWaitKey(10);
if((char)c==27 ) break;
}
cvDestroyAllWindows() ;
cvReleaseCapture(&capture);
return 0;
}
上面是我告诉不同颜色的代码,但事实证明 main 函数有问题。 基本上,主要功能只是激活凸轮。 错误是:"GetThresholdedImage 不接受 1 个参数"。 有人可以给我一些提示吗?
行
IplImage* imgThresh = GetThresholdedImage(imgHSV);
是导致错误的原因。函数的接口
GetThresholdedImage
有三个参数,如
IplImage* blue_mask = GetThresholdedImage(hsv, blue_lower, blue_upper);
IplImage* green_mask = GetThresholdedImage(hsv, green_lower, green_upper);
您必须添加其他两个参数,例如:
IplImage* imgThresh = GetThresholdedImage(imgHSV, blue_lower, blue_upper);
取决于您要对图像执行的操作。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- PPM 颜色显示错误
- 10'000 行后控制台中的 C++ 背景颜色错误
- BitBlt从剪贴板复制位图会给出错误的颜色
- 笔颜色错误
- 自由图像报告图像颜色类型错误
- 获取颜色距离结果的积分图像(逻辑错误)
- OpenCV cvtColor() 更改了我的图像尺寸并具有错误的颜色
- 关于识别不同颜色的错误
- GCC给出有关颜色的错误
- BGL depth_first_search错误与颜色映射