|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Finding green/pink flags
Hi everyone,
I am trying to use the Axis Camera to locate green and pink flags. However, it fails when actually finding the colors. Here's the relevant portion of my code so far: Code:
int i = StartCameraTask();
StartImageAcquisition();
while (IsOperatorControl())
{
double timestamp;
Image *img = frcCreateImage(IMAQ_IMAGE_HSL);
int getImage = GetImage(img,×tamp);
TrackingThreshold tdata = GetTrackingData(GREEN, PASSIVE_LIGHT);
ParticleAnalysisReport par;
int findcolor = FindColor(IMAQ_HSL, &tdata.hue, &tdata.saturation,&tdata.luminance, &par);
}
StopImageAcquisition();
StopCameraTask();
I've tried it with PINK as well with the pink flag, and I've tried changing PASSIVE_LIGHT to FLORESCENT (neither work). Has anyone had any success with getting the camera to recognize the flags/know what I'm doing wrong? Thanks, Kevin |
|
#2
|
||||
|
||||
|
Re: Finding green/pink flags
I have had the same problem. I also tried.
Code:
if (StartCameraTask(10, 0, k160x120, ROT_0) == -1){
printf("Failed to spawn camera task: %s\n",GetVisionErrorText(GetLastVisionError()));
}
// Set up camera tracking parameters.
tdata = GetTrackingData(GREEN, PASSIVE_LIGHT);
tdata.hue.minValue = 67;
tdata.hue.maxValue = 114;
tdata.saturation.minValue = 161;
tdata.saturation.maxValue = 255;
tdata.luminance.minValue = 24;
tdata.luminance.maxValue = 101;
Code:
ParticleAnalysisReport par;
if (FindColor(IMAQ_HSL, &tdata.hue, &tdata.saturation, &tdata.luminance, &par)
&& par.particleToImagePercent < MAX_PARTICLE_TO_IMAGE_PERCENT
&& par.particleToImagePercent > MIN_PARTICLE_TO_IMAGE_PERCENT) {
int lightX = (int)(par.center_mass_x_normalized * 1000.0);
int lightY = (int)(par.center_mass_y_normalized * 1000.0);
printf("Light found: x: %i y: %i\n", lightX, lightY);
} else {
if (err)
printf("Failed to spawn camera task: %s\n", GetVisionErrorText(GetLastVisionError()));
else
printf("light not found\n");
}
Last edited by nickmagus : 04-01-2009 at 21:26. |
|
#3
|
||||
|
||||
|
Re: Finding green/pink flags
Try this,
1. Log into the camera 2. Goto Advanced Settings and set White Balance to Hold 3. Goto Settings and turn down the brightness 20% of what it's set too 4. Goto Live video settings and take a screen shot (Alt + Print Screen) 5. Open MSPaint and Paste in the Picture, save as a JPG 6. Open Labview Vision Assistant, Open the file, and 7. Select Color, then Color Threshold, and then Color Model:HSL 8. Play with the Hue, Sat, Lum levels until most of the target is high lighted red 9. Set the new levels by updating tdata parameters, here is the list, these worked for me. You only need to set the values you changed in Vision Assistant. //tdata.hue.minValue = 60; //tdata.hue.maxValue = 80; //tdata.saturation.minValue = 34; //tdata.saturation.maxValue = 200; //tdata.luminance.minValue = 128; //tdata.luminance.maxValue = 240; Edit: Also, it's a really good idea to start with the simple tracker demo 100% unmodified. Then you can tell if it's you or the camera values. Last edited by Kingofl337 : 04-01-2009 at 21:32. |
|
#4
|
||||
|
||||
|
Re: Finding green/pink flags
My friends and I are trying to get the Axis Camera to find the green/pink flags, but we are having a problem getting the camera to recognize anything and it didn't say it failed to recognize the camera, so what could help make it work?
The camera is just not working all together, but it is connected and on so we are in a jam. any Ideas? |
|
#5
|
||||
|
||||
|
Re: Finding green/pink flags
Did you run the Camera Configuration Utility? Are you using the orange CAT-5 cable? Are you using the example? Does it work connected to your PC?
|
|
#6
|
|||
|
|||
|
Re: Finding green/pink flags
There will be example code posted soon that will do the detection of the two color targets. The code will be able to differentiate between the red and blue alliances.
|
|
#7
|
||||
|
||||
|
Re: Finding green/pink flags
Alright thanks very much for the help
|
|
#8
|
||||
|
||||
|
Re: Finding green/pink flags
Actually it is still not working we used the CAT-5 and still are getting no feedback.
So the programmer and I are at a loss. also the utility isn't working so any ideas what to do? |
|
#9
|
|||||
|
|||||
|
Re: Finding green/pink flags
Hey all-
I'm running WindRiver, and I'm running the SimpleTracker example code. I've used the NI Vision Assistant to get color values for my green vision target, and put those into the WindRiver code. Code:
tdata = GetTrackingData(GREEN, FLUORESCENT);
tdata.luminance.maxValue = 187;
tdata.luminance.minValue = 103;
tdata.hue.minValue = 71;
tdata.hue.maxValue = 98;
tdata.saturation.minValue = 56;
tdata.saturation.maxValue = 111;
Help, please? |
|
#10
|
||||
|
||||
|
Re: Finding green/pink flags
Have you updated all the firmware? Are you using all the most current software?
|
|
#11
|
|||
|
|||
|
Re: Finding green/pink flags
can someone help me program the camera to track colors in labview? i can get it to recognize a color but i dont know how to get motors/servos to move when it sees a color
|
|
#12
|
||||
|
||||
|
Re: Finding green/pink flags
the simple tracker demo 100% unmodified did not find anything...
|
|
#13
|
||||
|
||||
|
Re: Finding green/pink flags
Quote:
Dave D |
|
#14
|
||||
|
||||
|
Re: Finding green/pink flags
Oh ok that's good to know. Thanks. Any ideas as to when the code with those functions fixed will be posted. I looked through the functions but couldn't find the error (though I didn't spend that much time since you said its already fixed). The sooner its up the better. On that note I just wanna thank all the people who wrote and are writing this library (it makes all our lives much easier).
|
|
#15
|
||||
|
||||
|
Re: Finding green/pink flags
Quote:
If you're a team that simply can't wait, you can look at GetLargestParticle and FindColor in TrackApi.cpp. Notice that GetLargestParticle never actually returns the largest particle index to the 2nd parameter. The code to return isn't there, and in the 2nd line of the function it actually blows away the pointer value so it becomes impossible to return the largest particle index. Since it's probably not a good idea to go fiddling with the supplied code unless you know what you're doing, I'll leave it as an exercise to the reader to figure out what to do. Further, in the full-size version of FindColor, its check for success is incorrect. Rather than "if(largestParticleIndex == 0), it seems that it should be if(largestParticleIndex >= 0) in case the largest particle is not the first one. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Flags???? | cprogrammer | Programming | 4 | 25-07-2005 20:21 |
| Flags | trdragons204 | General Forum | 2 | 23-03-2005 10:29 |
| Concerns regarding the green paneling/green shirts | Petey | General Forum | 127 | 15-01-2005 10:35 |
| 6 Flags | Raven_Writer | Chit-Chat | 12 | 30-07-2004 23:01 |
| Six Flags? | Hermione692 | Championship Event | 29 | 29-04-2003 21:12 |