|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
GRIP and Java Code Not Agreeing
I'm new to vision processing and I've run into a problem. I currently have my Java code set up to process the reflective tape from the gear pegs using OpenCV. When I run this code, often only one of the two vision targets is identified. I saved the images that were failing and then fed them through GRIP. GRIP consistently finds both targets.
Here is a picture of my GRIP program with one of the failed images: http://imgur.com/iGsEQeK Here is the processing part of the code I am running in Java: Code:
Imgproc.cvtColor(bgr, hsvConvert, Imgproc.COLOR_BGR2HSV);
Core.inRange(hsvConvert, new Scalar (0, 0, 0), new Scalar (180, 255, 64), hsv); //those two Scalar values are the the max and min HSV values respectively. Those were determined in GRIP.
Imgproc.findContours(hsv, contours, mhierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE); //first enum lets you control things about hierarchy, I chose option with no hierarchy
Imgproc.drawContours(bgr, contours,0,new Scalar (0,255,0),1);
int idex=0;
int size = contours.size();
for (idex=0; idex < contours.size(); idex++)
{
test = contours.get(idex);
nums = findCenterXYDistance(test.toList());
System.out.println("MaxX: " +nums[0]+ "; Width: " + nums[1] + "; MaxY: " + nums[2] + "; Height: " + nums[3]);
targetRatio = nums[3]/nums[1];
System.out.println("Ratio: " + targetRatio + "; Area: " + Imgproc.contourArea(test));
if (Imgproc.contourArea(test)>100)
{
finalContours.add(test);
}
idex++;
}
|
|
#2
|
||||
|
||||
|
Re: GRIP and Java Code Not Agreeing
You're doing idex++ twice.
And why are you copying the GRIP pipeline by hand? GRIP can generate code right into your program so you don't have to. Generating code Using it in a robot program |
|
#3
|
|||
|
|||
|
Re: GRIP and Java Code Not Agreeing
Good catch! Hopefully that's the problem, I'll retest the code this afternoon.
I should have explained more completely, I am running this code on a raspberry pi so I didn't want to use GRIP. |
|
#4
|
||||
|
||||
|
Re: GRIP and Java Code Not Agreeing
You can still use GRIP to generate code to use in a raspberry pi program.
|
|
#5
|
|||
|
|||
|
Re: GRIP and Java Code Not Agreeing
When I first looked into vision processing over Christmas break, I was originally hoping to use GRIP. However, when I looked at the then-current version of GRIP's instructions for install, it did not seem to be supported for the Raspberry pi. Therefore, I went ahead and learned to use OpenCV. I have not looked at more recent versions of GRIP, so this might have changed. Or I may have misunderstood originally.
|
|
#6
|
||||
|
||||
|
Re: GRIP and Java Code Not Agreeing
GRIP doesn't officially support the pi. Java doesn't have the UI libraries for the pi, but there was a community effort to get it running in headless mode with the deploy functionality. But we've added code generation since then to replace it.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|