what to do to solve these errors

The Errors i got here are:
blob\blob.cpp(194) : error C2062: type 'void' unexpected
blob\blob.cpp(195) : error C2143: syntax error : missing ';' before '{'
blob\blob.cpp(237) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

blob.exe - 3 error(s), 0 warning(s)

The code for program is as follows:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <stdio.h>
#include <iostream>
#include "Blob.h"
#include "BlobResult.h"
#include "BlobExtraction.h"
#include "BlobLibraryConfiguration.h"
using namespace std;
void blobdetect(IplImage*,IplImage*);
void thresholder(IplImage*, IplImage*, IplImage*, IplImage*, double, double, double);
  
int main()
{
	//Camera Stuff
	CvCapture* capture = cvCaptureFromCAM(0);
	if (!capture) {
		fprintf( stderr, "ERROR: capture is NULL \n" );
		getchar();
		return -1; }
	cvNamedWindow("test",CV_WINDOW_AUTOSIZE);
 	
        while(1){
		IplImage* frame = cvQueryFrame(capture);
		if( !frame ) {
			fprintf( stderr, "ERROR: frame is null...\n" );
			cvWaitKey(0);    }
		cvShowImage( "test", frame );
		if((cvWaitKey(10) & 255) == 27) break;
	}
	cvReleaseCapture( &capture );
	cvDestroyWindow( "test" );
	return 0;

//	IplImage* frame=0;	
	IplImage* img=0;
	cvNamedWindow( "Original", CV_WINDOW_AUTOSIZE );
	cvNamedWindow( "Binary Image", CV_WINDOW_AUTOSIZE );
	cvNamedWindow( "Red", CV_WINDOW_AUTOSIZE );
	cvNamedWindow( "Green", CV_WINDOW_AUTOSIZE );
	cvNamedWindow( "Luminance", CV_WINDOW_AUTOSIZE );
 	CvSize imageSize = cvSize( 1024, 768 );
 	IplImage * pRedImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pBlueImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pGreenImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pTestImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pRedComp = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pGreenComp = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pBlueComp = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pRedImageL = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pRedImageU = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pGreenImageL = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pGreenImageU = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pBlueImageL = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pBlueImageU = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pLuminanceImageU = cvCreateImage( imageSize, IPL_DEPTH_8U,1);
	IplImage * pLuminanceImageL = cvCreateImage( imageSize, IPL_DEPTH_8U,1);
	IplImage * pLuminanceComp = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pBinImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * prgyImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
      IplImage * pLuminanceImage32bit=cvCreateImage(imageSize,IPL_DEPTH_32F, 1);
	IplImage * pLuminanceImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pRGBSumImage32bit =cvCreateImage(imageSize,IPL_DEPTH_32F, 1);
	IplImage * pRedImage32bit = cvCreateImage( imageSize, IPL_DEPTH_32F, 1);
	IplImage * pBlueImage32bit =cvCreateImage( imageSize, IPL_DEPTH_32F, 1);
	IplImage * pGreenImage32bit =cvCreateImage(imageSize, IPL_DEPTH_32F, 1);
	IplImage * pThreesImage32bit =cvCreateImage(imageSize,IPL_DEPTH_32F, 1);
	IplImage * pGreenNormImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pRedNormImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pZerosImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pZeros2Image = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pTempNormImage = cvCreateImage( imageSize, IPL_DEPTH_8U, 1);
	IplImage * pRedNormImage32bit=cvCreateImage(imageSize,IPL_DEPTH_32F, 1);
      IplImage * pGreenNormImage32bit=cvCreateImage(imageSize,IPL_DEPTH_32F, 1);
 	
 do{
	IplImage* frame = cvQueryFrame( capture );
	if( !frame ){
			fprintf( stderr, "ERROR: frame is null...\n" );
			cvWaitKey(0);
                     }	
	//Create Red channel only image, in 32bit(scaled) and 32bit(not scaled)
	cvSetImageCOI( frame, 3 );
	cvCopy(frame, pRedImage );
	cvConvertScale(pRedImage, pRedImage32bit, 1, 0);
 	double temper;
	temper = cvGetReal2D(pRedImage32bit, 575,575);
	std::cout<<" Red32bitvalue: "<<temper<<std::endl;
 	//Create Green channel only image,in 32bit(scaled) and 32bit(not scaled)
	cvSetImageCOI( frame, 0 );
	cvSetImageCOI( frame, 2 );
	cvCopy(frame, pGreenImage );
	cvConvertScale(pGreenImage, pGreenImage32bit, 1, 0);
 	double temperg;
	temperg = cvGetReal2D(pGreenImage32bit, 575,575);
	std::cout<<" pGreenImage32bit: "<<temperg<<std::endl;
 	//Create Blue channel only image, in 32bit(not scaled)
	cvSetImageCOI( frame, 0 );
	cvSetImageCOI( frame, 1 );
	cvCopy(frame, pBlueImage );
	cvConvertScale(pBlueImage, pBlueImage32bit, 1, 0);
 	double temperb;
	temperb = cvGetReal2D(pBlueImage32bit, 575,575);
	std::cout<<" pBlueImage32bit: "<<temperb<<std::endl;
 	cvSetImageCOI( frame, 0 );
	//Combine RGB
	cvAdd(pRedImage32bit, pGreenImage32bit, pRGBSumImage32bit);
	cvAdd(pRGBSumImage32bit, pBlueImage32bit, pRGBSumImage32bit);
 	double tempers;
	tempers = cvGetReal2D(pRGBSumImage32bit, 575,575);
	std::cout<<" pRGBSumImage32bit: "<<tempers<<std::endl;
	cvDiv(pRedImage32bit, pRGBSumImage32bit, pRedNormImage32bit);
	cvDiv(pGreenImage32bit, pRGBSumImage32bit, pGreenNormImage32bit);
	double temperrn;
	temperrn = cvGetReal2D(pRedNormImage32bit, 575,575);
	std::cout<<" pRedNormImage32bit: "<<temperrn<<std::endl;
 	double tempergn;
	tempergn = cvGetReal2D(pGreenNormImage32bit, 575,575);
	std::cout<<" pGreenNormImage32bit: "<<tempergn<<std::endl;
 	//average Normalized red color values and std. deviation
	double stdevR=0.022671177, stdevG=0.011369128, stdevY=28.78144861,      Rval=0.467060477, Gval=0.230188387, Yval=306.1904, multiR=6, multiG=7, multiL=4;

thresholder(pRedNormImage32bit,pRedComp,pRedImageU,pRedImageL,Rval,stdevR,multiR);
thresholder(pGreenNormImage32bit,pGreenComp,pGreenImageU,pGreenImageL,Gval, stdevG, multiG);
thresholder(pRGBSumImage32bit,pLuminanceComp,pLuminanceImageU,pLuminanceImageL, Yval, stdevY, multiL);

	cvAnd(pRedComp, pGreenComp, pBinImage);
	cvAnd(pLuminanceComp, pBinImage, pBinImage);
	cvShowImage("Red", pRedComp);
	cvShowImage("Green", pGreenComp);
	cvShowImage("Luminance", pLuminanceComp);
	cvShowImage("Binary Image", pBinImage);
 	blobdetect(pBinImage,frame);
	blobdetect(pGreenComp,frame);
	cvWaitKey(0);

cvShowImage( "Original", frame );
cvDestroyWindow("Original" );
cvDestroyWindow("Red");
cvDestroyWindow("Green");
cvDestroyWindow("Luminance");
cvDestroyWindow("Binary Image");
return 0; 
}

void blobdetect(IplImage* img,IplImage* frame) // here comes first error
{                                              // here second error
		CBlobResult blobs;
	blobs = CBlobResult( img, NULL, 128, true);
	blobs.Filter(blobs, B_INCLUDE, CBlobGetArea(), B_GREATER, 3000);
	blobs.Filter(blobs,B_INCLUDE,CBlobGetArea(),B_LESS,10000);
	for  (int i=0; i<blobs.GetNumBlobs(); ++i){
		CBlob temper = blobs.GetBlob(i);
		double iMaxx, iMinx, iMaxy, iMiny;
		int ixavg,iyavg;
		iMaxx=temper.MaxX();
		iMinx=temper.MinX();
		iMaxy=temper.MaxY();
		iMiny=temper.MinY();

		if (iMiny<480){		
    if (((iMaxx-iMinx)/(iMaxy-iMiny)>.8) && ((iMaxx-iMinx)/(iMaxy-iMiny))<1.2)  {
  if (temper.Area()/((iMaxx-iMinx)*(iMaxy-iMiny))	>.50)
  {
	std::cout<<"Area:"<<temper.Area()<<" Area of Box: "<<(iMaxx-iMinx)*(iMaxy-iMiny);
	std::cout<<" Maxx: "<<iMaxx<<" Minx: "<<iMinx<<" Maxy: "<<iMaxy<<" iMiny: "<<iMiny<<std::endl;
	cvRectangle( img, cvPoint(iMinx , iMiny ), cvPoint ( iMaxx, iMaxy ), CV_RGB(255,255 , 0), 2, 8, 0);  }
			}
		}
	}
	cvShowImage( "Original", img );
	
}        // here is the third error 


Please help to solve these errors.

Thank You

Last edited on
In the code as posted:
Line 78: - You started a do ... while loop.
The loop is not closed because the while bit is missing.

Thanks Man,

I have removed the program lines 78 to 83. and then run the program again.
I got the following linking error message. i have already linked the opencv\lib folder in project->settings->link option.
error message:
1
2
3
4
5
6
7
8
9
Linking...
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in LIBCD.lib(fclose.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fprintf already defined in LIBCD.lib(fprintf.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _realloc already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in LIBCD.lib(dbgheap.obj)
LINK : warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library
Debug/blob.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

You are obviously using microsoft visial studio.
Go help->search and put in Linker Tools Warning LNK4098 there is a page of information in the help about this problem.

There is a clash of libraries.
You can try and do what the error message suggests and set the
linker - input - Ignore all Default Libraries to YES as it suggests.
(but I find that that sometimes causes even more errors).

Another alternative is to set the linker - input - Ignore specific library to include one of the two libraries listed in the error message MSVCRTD.lib or LIBCD.lib
Topic archived. No new replies allowed.