在Ubuntu中使用OpenCV进行编译警告
Compile warning using Opencv in ubuntu
亲爱的社区,我一直在研究一些openCV,我发现了有趣的吸引人跟踪内容,所以我找到了一个入门的源代码,但是当我尝试编译它时我得到了此警告:
ojos2.cpp:15:5:警告:" int main(int*,char **)"的第一个论点应为" int" [-wmain]
更清楚地清楚我是从Ubuntu终端编译的,这是代码
#include "cv.h"
#include"highgui.h"
IplImage* GetThresholdedImage(IplImage* img)
{
IplImage *imgHSV=cvCreateImage(cvGetSize(img),8,3);
cvCvtColor(img,imgHSV,CV_BGR2HSV);
IplImage *imgThresh=cvCreateImage(cvGetSize(img),8,1);
cvInRangeS(imgHSV,cvScalar(0, 84, 0, 0),cvScalar(179, 256, 11, 0),imgThresh);
cvReleaseImage(&imgHSV);
return imgThresh;
}
int main(int *argv,char **argc)
{
IplImage *imgScribble= NULL;
char c=0;
CvCapture *capture;
capture=cvCreateFileCapture("main.avi");
if(!capture)
{
printf("Camera could not be initialized");
exit(0);
}
cvNamedWindow("Simple");
cvNamedWindow("Thresholded");
while(c!=32)
{
IplImage *img=0;
img=cvQueryFrame(capture);
if(!img)
break;
if(imgScribble==NULL)
imgScribble=cvCreateImage(cvGetSize(img),8,3);
IplImage *timg=GetThresholdedImage(img);
CvMoments *moments=(CvMoments*)malloc(sizeof(CvMoments));
cvMoments(timg,moments,1);
double moment10 = cvGetSpatialMoment(moments, 1, 0);
double moment01 = cvGetSpatialMoment(moments, 0, 1);
double area = cvGetCentralMoment(moments, 0, 0);
static int posX = 0;
static int posY = 0;
int lastX = posX;
int lastY = posY;
posX = moment10/area;
posY = moment01/area;
// Print it out for debugging purposes
printf("position (%d,%d)n", posX, posY);
// We want to draw a line only if its a valid position
if(lastX>0 && lastY>0 && posX>0 && posY>0)
{
// Draw a yellow line from the previous point to the current point
cvLine(imgScribble, cvPoint(posX, posY), cvPoint(lastX, lastY), cvScalar(0,255,255), 5);
}
// Add the scribbling image and the frame...
cvAdd(img, imgScribble, img);
cvShowImage("Simple",img);
cvShowImage("Thresholded",timg);
c=cvWaitKey(3);
cvReleaseImage(&timg);
delete moments;
}
//cvReleaseImage(&img);
cvDestroyWindow("Simple");
cvDestroyWindow("Thresholded");
}
任何帮助都会有用
预先感谢
原型应该是 int main (int argv, char *argc[])
,主要是错误的是argv
的指针-char **argc
和char *argc[]
是两种说话的方法指向字符数组的指针,而不是作为指针指向指针。
int main(int argv,char ** argc)警告消失了。
相关文章:
- 关于std::move的使用,是否有编译警告
- 示例C++项目编译中的警告
- Steam 回调在 Linux / GCC 编译期间触发警告
- C++警告:编译指示在主文件中一次
- 如何在类成员函数中获得类似printf中的编译警告
- 编译按位 OR 时出现警告 C4805
- 窄转换编译警告.如何解决它
- C++就地析构函数编译警告
- 如何在 ubuntu 12.10 中隐藏 g++ c++11 编译警告
- 在Ubuntu中使用OpenCV进行编译警告
- 收到有关压缩结构的意外编译警告
- 在OpenCV中编译警告,并且没有输出
- 每个g++的minGW编译警告
- 在linux服务器(u2)上编译警告long-long
- 由于函数指针类型定义与具有正确const逻辑的指定函数不匹配,导致编译警告
- 分段错误,没有详细的编译警告
- 编译警告不存在(GCC 和 g++)
- c++ 11类型检查代码的奇怪编译警告
- 包含不可复制对象的对象的编译警告是不可读的
- 长类型Max等于int Max error + math.h pow()编译警告:隐式常量转换溢出