Open GoogleCodeExporter opened 8 years ago
Thanks for the feedback.
Please, could you change the compilers language?
We cannot understand the error from the output, because only weird characters
are appearing
(g++ -LC:\OpenCV2.1\lib -LC:\MinGW\ehci -oGetBounds.exe Headbounds.o -lcv210
-lml210 -lcvaux210 -lcxcore210 -lhighgui210
Headbounds.o:在函数‘main’ä¸ï¼š
C:/Users/Bluefrared/workspace/GetBounds/Debug/../Headbounds.cpp:23:对â
€˜ehciLoop(int, int)’未定义的引用
C:/Users/Bluefrared/workspace/GetBounds/Debug/../Headbounds.cpp:24:对â
€˜getHeadBounds(int*, int*, int*,
int*)’未定义的引用)
But either way, it seems to be a linker error. It seems you are not including
.lib files.
We are creating a simpler CMake based build and windows binaries. We'll have
that uploaded this week, could you please check it out?
Thanks for your feedback,
Daniel
Original comment by danielba...@gmail.com
on 15 Jun 2010 at 2:32
Maybe you could copy and paste the compiler output to some Google Language
Tools and translate it to English.
Kind regards,
Daniel
Original comment by danielba...@gmail.com
on 15 Jun 2010 at 2:33
[deleted comment]
I saw the windows binaries and tried to run them but got the following error
with the .exe files
The application has failed to start because it's side-by-side configuration is
incorrect.
That error was present with all three .exe files. All I did was try to run the
files directly from the folder after unzipping.
Original comment by itachi.r...@gmail.com
on 15 Jun 2010 at 9:15
In case I simply made an error in initializing and linking everything,
This is how I set it up:
#include "ehci.h"
#include <stdio.h>
#include <vector>
#include <cv.h>
#include <cxcore.h>
#include <cvaux.h>
#include <highgui.h>
// This demonstration shows how to use the simple getHeadBounds function
int main(){
int upperX,upperY,headWidth,headHeight;
//this function creates a window to see debug information
//about capturing image and face detection
while(1){
//this is the main ehciLoop
//every application should call this function in a realtime loop
//so that the frame could be grabbed and processed
//the EHCI2DFACEDETECT parameter tells ehci that only 2d detection will be
//made
ehciLoop(EHCI2DFACEDETECT,0);
getHeadBounds(&upperX,&upperY,&headWidth,&headHeight);
printf("Head Coordinates %3d %3d head width %3d height %3d (Press Ctrl+C to finish)\n",
upperX,upperY,headWidth,headHeight);
}
}
with the libraries cv, cvaux, cxcore and highgui, and include paths pointing to
opencv includes and the ehci/lib folder containing the ehci.cpp and ehci.h
files.
I attached images showing my project properties
Original comment by itachi.r...@gmail.com
on 15 Jun 2010 at 9:30
Attachments:
[deleted comment]
Actually, I think my issue is that I don't have and .lib files for the ehci
project. How do I make them in Windows Vista? I've been trying to use the
command prompt with mingw32-make but I am having some trouble with that.
BTW, my compiler is set to English. That garbage from the console is not a
human language issue. It just gives me that for some unknown reason.
Original comment by itachi.r...@gmail.com
on 16 Jun 2010 at 10:18
Hi Mr. Ricky,
I'm very glad for your effort trying to make everything work.
Seeing that the current build system isn't very good, I'm trying to updated it
to CMake. I'm almost finishing and I hope everything will work so it will be
nice to have some feedback from you.
Well, firstly I'd like to reply to your comment #4.
I think that embedding visual studio runtimes wasn't a good idea, so please,
delete the msvc*.dll (3 files) and try to run again. Can you tell me if the
error is gone?
Now, about the other comments, I see that's no compiler output language
problem, hehe. And I also made a mistake telling you about the .lib files,
because this version of ehci doesn't generate any .lib. What I really think
about your error is that it's related to not including ehci.cpp in your build
tree. Try to add this file to your project, because it shows errors to the only
2 functions implemented in ehci.cpp (ehciLoop and getHeadBounds).
And by the way, I'm almost finishing CMake project. It should work out of the
box with Eclipse. I intend to upload it until the end of the day.
Kind regards and thanks a lot for your nice feedback,
Daniel
Original comment by danielba...@gmail.com
on 16 Jun 2010 at 11:38
Removing the msvc files did the trick, but now simple 2d and 3d cut abruptly a
few seconds in and boxView3d is working but has no escape feature that I
noticed and was a little buggy.
Now that I included the .cpp and .h ehci files into my project root, I get some
errors, which is better than before with no problems and still not working. I
am getting errors with multiple definitions for
chosencamera
ehcifocus
ehcimodelscale
gltexture
moviefile
ransac_distance_threshold
ransac_iterations
ransan_samples
texturecreated
use_ransac
the issue is that the multiple definitions point to locale_facets.tcc and that
file does not even mention those constants. I went through and slowly
commented out the instantiations of ehcimodelscale, ehci, and the others listed
above and in the ehci.c file and it seemed to be reducing the problems.
The problem is that when I have all of these uncommented, it states multiple
definition errors. When I comment them all out, it gives me not declare in
this scope errors. Partial commenting out ends up with one of these two errors.
When I move the declarations of those 10 constants from the header file to the
.cpp file, the code compiles and gives binaries but the .exe crashes when I try
to run.
I'll play with the CMake when you manage to get it out and see how well it
works.
Thanks for the help!
-Ricardo
Original comment by itachi.r...@gmail.com
on 17 Jun 2010 at 7:14
The debugger indicated the exit occurs here
if( !(*cascade) ){
printf( "ERROR: Could not load classifier cascade. The required file '%s' should be in a 'data' subdirectory under the directory in which the application is being run.\n"
, fileName);
exit(1);
}
in the ehci.cpp file.
Original comment by itachi.r...@gmail.com
on 17 Jun 2010 at 10:00
I got it fixed for the simple2d. Apparently, the issue was that the
haarcascade and aGest .xml files included with OpenCV were not being found or
simply weren't already in OpenCV so I just tossed those into the project.
I'll test out the rest of the code
simple3d works but crashes if one moves too quickly and also is not able to
re-find the head if it loses track.
6dofhead is having trouble with the constants I had listed previously, but I'll
play with it to find out why.
Original comment by itachi.r...@gmail.com
on 17 Jun 2010 at 11:15
[deleted comment]
I have not been able to get 6dofhead and 6dofhand working yet. There are many
different errors that, I think, are masking one underlying error.
**** Build of configuration Debug for project 6dofhead ****
**** Internal Builder is used for build ****
g++ -LC:\OpenCV2.1\lib -o6dofhead.exe main.o ehci.o -lcv -lcxcore -lcvaux
-lhighgui
ehci.o:在函数‘ZSt24__uninitialized_copy_auxIN9__gnu_cxx
17__normal_iteratorIP12CvPoint2D32fSt6vectorIS2_SaIS2_EEEES7_ET0_T_S9_S8_12__fal
se_type’ä¸ï¼š
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_alg
obase.h:(.data+0x0): multiple definition of `EHCIMODELSCALE'
main.o:C:/Users/Bluefrared/workspace/6dofhead/Debug/../main.cpp:(.data+0x0)�
�第一次在æ¤å®šä¹‰
main.o:在函数‘glutInit_ATEXIT_HACK’ä¸ï¼š
C:/MinGW/include/GL/freeglut/GL/include/GL/freeglut_std.h:611:对‘
_imp____glutInitWithExit@12’未定义的引用
main.o:在函数‘glutCreateWindow_ATEXIT_HACK’�
�:
C:/MinGW/include/GL/freeglut/GL/include/GL/freeglut_std.h:613:对‘
_imp____glutCreateWindowWithExit@8’未定义的引ç”
¨
main.o:在函数‘glutCreateMenu_ATEXIT_HACK’�
�¼š
C:/MinGW/include/GL/freeglut/GL/include/GL/freeglut_std.h:615:对‘
_imp____glutCreateMenuWithExit@8’未定义的引用
main.o:在函数‘Z12drawHelpTextv’ä¸ï¼š
(more garbage)
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 2689 ms.
Any idea?
Original comment by itachi.r...@gmail.com
on 24 Jun 2010 at 9:25
Never mind. The issue was solved so far. Apparently, as the EHCI files come
with the constants included and defined in the header file, there is a problem
with definition conflict with the EHCI.cpp file and anything else that uses it.
This is solved by using the extern initialization in the header file without
defining a value, and then defining the value in the .cpp file only.
Now my issue lies with the .exe crashing everytime the GLUT library is referred
to for glutinit or anything related. I assume it incorrectly installed though
I've followed steps very thoroughly to ensure it was done correct, so hopefully
that is resolved soon.
Original comment by itachi.r...@gmail.com
on 30 Jun 2010 at 7:45
The other problem was that freeglut.h was being used at the same time as
glut.h, glu.h and gl.h, and, since freeglut is larger and encompasses the GLUT
project, it was conflicting. After I commented out that and removed those
libraries and used only freeglut, the whole thing worked.
Original comment by itachi.r...@gmail.com
on 2 Jul 2010 at 5:47
Itachi Ricky, thanks for your feedback, couldn't be more valuable.
Making the software compile in every platform is very hard since each library
may have different dependencies... I'm glad you've been able to make it work
with only freeglut. I intend to upload a new version with CMake pretty soon, as
you might find some execution error in the current release.
Best regards, and really thanks for making all your error reports and solutions
available for the whole community.
Daniel
Original comment by danielba...@gmail.com
on 2 Jul 2010 at 8:33
I have a question about getting the face direction. Which values create the
direction vector on the screen? This is what I am trying to make use of, and I
wanted to make sure I was referencing the correct variables with my code.
Original comment by itachi.r...@gmail.com
on 9 Jul 2010 at 6:24
Hi Ricky,
please, check the drawCentralAxis() function on 6dofhead. The red value goes in
the x negative direction, so, it's pretty much a vector from
(CenterX,CenterY,CenterZ) to (CenterX -1000, CenterY, CenterZ). There's a
snippet below:
void drawCentralAxis(){
float deltaX,deltaY,deltaZ;
getReferenceCoordinate(&deltaX,&deltaY,&deltaZ);
float cx,cy,cz;
cx = .5 - deltaX;
cy = -.25 - deltaY;
cz = 1.0 - deltaZ;
glLineWidth(4.0);
glBegin(GL_LINES);
glColor3f(1.0f,0.0f,0.0);
glVertex3f( cx,cy,cz);
glVertex3f( cx+1000,cy,cz);
glEnd();
glBegin(GL_LINES);
glColor3f(0.9f,0.3f,0.0);
glVertex3f( cx,cy,cz);
glVertex3f( cx -1000,cy,cz);
glEnd();
....
King regards
Original comment by danielba...@gmail.com
on 9 Jul 2010 at 11:15
I've got a feel for that part of the code now, but how would I know the pixel
position on the screen of where the axis is centered at and the pixel points of
along the way of each of the axis. I am trying to draw a dot on the screen
that estimates where I am facing using the direction vector and 3-D position.
What variables would I use to accomplish that?
Thanks!
Original comment by itachi.r...@gmail.com
on 12 Jul 2010 at 10:05
Well, you should use glPositMatrix and project point 0,0,0:
double glPositMatrix[16];
//returns translation and rotation matrix in openGl format
getGlPositMatrix(glPositMatrix);
In order to project point 0,0,0 in glPositMatrix, just multiply them:
glPositMatrix (4x4) * point (0;0;0;1) (4x1) = projectedCenterPoint(4x1)
Now you'll need to project the projectedCenterPoint to your perspective, which
will require the projection matrix... check this:
http://www.songho.ca/opengl/gl_projectionmatrix.html#perspective
The easiest way is to let OpenGL handle it for you through projection matrix,
but you can also make it as the link says.
Kind regards,
Daniel
Original comment by danielba...@gmail.com
on 13 Jul 2010 at 1:25
Just as a side note, I've just committed the CMake version to the head trunk.
Original comment by danielba...@gmail.com
on 16 Jul 2010 at 8:22
Hi Ricky,
Firs of all, thank you for your contribution.
I tried to compile 6dofhead by copying and pasting it in my root file
HeadTracking.cpp. And I copied 2 dependency files ehci.h, ehci.cpp to my
project. Though I did not follow your installation instruction, I think it
should work.
but i got this kind of errors - -"
error LNK2005: "int USE_RANSAC" (?USE_RANSAC@@3HA) already defined in
ehci.obj HeadTracking.obj HeadTracking
error LNK2005: "int RANSAC_SAMPLES" (?RANSAC_SAMPLES@@3HA) already defined in
ehci.obj HeadTracking.obj HeadTracking
..
I have no idea why, these variables are not defined in my HeadTracking.cpp.
I think my problem is similar with comment 13. But I do not understand your
reply on comment 14. Could you help me?
Regards
Nirin
Original comment by tos...@gmail.com
on 23 Aug 2010 at 6:38
Hi Tosent,
can you show your HeadTracking.cpp?
It seems it's somehow including the headers twice. Are you using the latest SVN
source codes? These errors should be gone.
Although this could work, I highly recommend using CMake, it's easier and more
flexible.
Best regards,
Daniel
Original comment by danielba...@gmail.com
on 23 Aug 2010 at 9:59
Hi Daniel, thank for your reply.
Finally it works well. The problem is that i forgot to use the lastest svn
source code. - -" Sorry.
many thanks
Original comment by tos...@gmail.com
on 28 Aug 2010 at 8:48
Original issue reported on code.google.com by
itachi.r...@gmail.com
on 14 Jun 2010 at 10:31